blob: e831e84672048e5ed8cc8dd6cdb498f8b5e050e2 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: github.com/luci/luci-go/deploytool/api/deploy/component.proto
package deploy
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/duration"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
type Duration_Unit int32
const (
Duration_MILLISECONDS Duration_Unit = 0
Duration_SECONDS Duration_Unit = 1
Duration_MINUTES Duration_Unit = 2
Duration_HOURS Duration_Unit = 3
Duration_DAYS Duration_Unit = 4
)
var Duration_Unit_name = map[int32]string{
0: "MILLISECONDS",
1: "SECONDS",
2: "MINUTES",
3: "HOURS",
4: "DAYS",
}
var Duration_Unit_value = map[string]int32{
"MILLISECONDS": 0,
"SECONDS": 1,
"MINUTES": 2,
"HOURS": 3,
"DAYS": 4,
}
func (x Duration_Unit) String() string {
return proto.EnumName(Duration_Unit_name, int32(x))
}
func (Duration_Unit) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 0} }
// * Generic instance class types.
type AppEngineModule_ClassicParams_InstanceClass int32
const (
// * Default for this scaling type.
AppEngineModule_ClassicParams_IC_DEFAULT AppEngineModule_ClassicParams_InstanceClass = 0
// 1-core
AppEngineModule_ClassicParams_IC_1 AppEngineModule_ClassicParams_InstanceClass = 1
// 2-core
AppEngineModule_ClassicParams_IC_2 AppEngineModule_ClassicParams_InstanceClass = 2
// 4-core
AppEngineModule_ClassicParams_IC_4 AppEngineModule_ClassicParams_InstanceClass = 3
// 4-core, 1G memory
AppEngineModule_ClassicParams_IC_4_1G AppEngineModule_ClassicParams_InstanceClass = 4
// 8-core instance class. Only available with basic/manual scaling.
AppEngineModule_ClassicParams_IC_8 AppEngineModule_ClassicParams_InstanceClass = 5
)
var AppEngineModule_ClassicParams_InstanceClass_name = map[int32]string{
0: "IC_DEFAULT",
1: "IC_1",
2: "IC_2",
3: "IC_4",
4: "IC_4_1G",
5: "IC_8",
}
var AppEngineModule_ClassicParams_InstanceClass_value = map[string]int32{
"IC_DEFAULT": 0,
"IC_1": 1,
"IC_2": 2,
"IC_4": 3,
"IC_4_1G": 4,
"IC_8": 5,
}
func (x AppEngineModule_ClassicParams_InstanceClass) String() string {
return proto.EnumName(AppEngineModule_ClassicParams_InstanceClass_name, int32(x))
}
func (AppEngineModule_ClassicParams_InstanceClass) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 2, 0}
}
// * Option for "login" handler field.
type AppEngineModule_Handler_LoginOption int32
const (
AppEngineModule_Handler_LOGIN_OPTIONAL AppEngineModule_Handler_LoginOption = 0
AppEngineModule_Handler_LOGIN_REQUIRED AppEngineModule_Handler_LoginOption = 1
AppEngineModule_Handler_LOGIN_ADMIN AppEngineModule_Handler_LoginOption = 2
)
var AppEngineModule_Handler_LoginOption_name = map[int32]string{
0: "LOGIN_OPTIONAL",
1: "LOGIN_REQUIRED",
2: "LOGIN_ADMIN",
}
var AppEngineModule_Handler_LoginOption_value = map[string]int32{
"LOGIN_OPTIONAL": 0,
"LOGIN_REQUIRED": 1,
"LOGIN_ADMIN": 2,
}
func (x AppEngineModule_Handler_LoginOption) String() string {
return proto.EnumName(AppEngineModule_Handler_LoginOption_name, int32(x))
}
func (AppEngineModule_Handler_LoginOption) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 4, 0}
}
// * Option for "secure" handler field.
type AppEngineModule_Handler_SecureOption int32
const (
AppEngineModule_Handler_SECURE_ALWAYS AppEngineModule_Handler_SecureOption = 0
AppEngineModule_Handler_SECURE_OPTIONAL AppEngineModule_Handler_SecureOption = 1
AppEngineModule_Handler_SECURE_NEVER AppEngineModule_Handler_SecureOption = 2
)
var AppEngineModule_Handler_SecureOption_name = map[int32]string{
0: "SECURE_ALWAYS",
1: "SECURE_OPTIONAL",
2: "SECURE_NEVER",
}
var AppEngineModule_Handler_SecureOption_value = map[string]int32{
"SECURE_ALWAYS": 0,
"SECURE_OPTIONAL": 1,
"SECURE_NEVER": 2,
}
func (x AppEngineModule_Handler_SecureOption) String() string {
return proto.EnumName(AppEngineModule_Handler_SecureOption_name, int32(x))
}
func (AppEngineModule_Handler_SecureOption) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 4, 1}
}
// Property sort direction.
type AppEngineResources_Index_Direction int32
const (
// Ascending order (default).
AppEngineResources_Index_ASCENDING AppEngineResources_Index_Direction = 0
// Descending order.
AppEngineResources_Index_DESCENDING AppEngineResources_Index_Direction = 1
)
var AppEngineResources_Index_Direction_name = map[int32]string{
0: "ASCENDING",
1: "DESCENDING",
}
var AppEngineResources_Index_Direction_value = map[string]int32{
"ASCENDING": 0,
"DESCENDING": 1,
}
func (x AppEngineResources_Index_Direction) String() string {
return proto.EnumName(AppEngineResources_Index_Direction_name, int32(x))
}
func (AppEngineResources_Index_Direction) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{4, 0, 0}
}
type KubernetesPod_RestartPolicy int32
const (
KubernetesPod_RESTART_ALWAYS KubernetesPod_RestartPolicy = 0
KubernetesPod_RESTART_ON_FAILURE KubernetesPod_RestartPolicy = 1
KubernetesPod_RESTART_NEVER KubernetesPod_RestartPolicy = 2
)
var KubernetesPod_RestartPolicy_name = map[int32]string{
0: "RESTART_ALWAYS",
1: "RESTART_ON_FAILURE",
2: "RESTART_NEVER",
}
var KubernetesPod_RestartPolicy_value = map[string]int32{
"RESTART_ALWAYS": 0,
"RESTART_ON_FAILURE": 1,
"RESTART_NEVER": 2,
}
func (x KubernetesPod_RestartPolicy) String() string {
return proto.EnumName(KubernetesPod_RestartPolicy_name, int32(x))
}
func (KubernetesPod_RestartPolicy) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0}
}
type KubernetesPod_Container_Type int32
const (
// *
// A Go container.
//
// The image for this container will be built in a
// directory containing all of the immediate contents of "path" and
// the contents of GOPATH at "_gopath/src".
KubernetesPod_Container_GO KubernetesPod_Container_Type = 0
)
var KubernetesPod_Container_Type_name = map[int32]string{
0: "GO",
}
var KubernetesPod_Container_Type_value = map[string]int32{
"GO": 0,
}
func (x KubernetesPod_Container_Type) String() string {
return proto.EnumName(KubernetesPod_Container_Type_name, int32(x))
}
func (KubernetesPod_Container_Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 0}
}
type KubernetesPod_Container_ContainerPort_Protocol int32
const (
KubernetesPod_Container_ContainerPort_TCP KubernetesPod_Container_ContainerPort_Protocol = 0
KubernetesPod_Container_ContainerPort_UDP KubernetesPod_Container_ContainerPort_Protocol = 1
)
var KubernetesPod_Container_ContainerPort_Protocol_name = map[int32]string{
0: "TCP",
1: "UDP",
}
var KubernetesPod_Container_ContainerPort_Protocol_value = map[string]int32{
"TCP": 0,
"UDP": 1,
}
func (x KubernetesPod_Container_ContainerPort_Protocol) String() string {
return proto.EnumName(KubernetesPod_Container_ContainerPort_Protocol_name, int32(x))
}
func (KubernetesPod_Container_ContainerPort_Protocol) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 0, 0}
}
// * Resource unit granularity.
type KubernetesPod_Container_Resources_Unit int32
const (
KubernetesPod_Container_Resources_BYTE KubernetesPod_Container_Resources_Unit = 0
// * 1000
KubernetesPod_Container_Resources_KILOBYTE KubernetesPod_Container_Resources_Unit = 1
// * 1000^2
KubernetesPod_Container_Resources_MEGABYTE KubernetesPod_Container_Resources_Unit = 2
// * 1000^3
KubernetesPod_Container_Resources_GIGABYTE KubernetesPod_Container_Resources_Unit = 3
// * 1000^4
KubernetesPod_Container_Resources_TERABYTE KubernetesPod_Container_Resources_Unit = 4
// * 1000^5
KubernetesPod_Container_Resources_PETABYTE KubernetesPod_Container_Resources_Unit = 5
// * 1000^6
KubernetesPod_Container_Resources_EXABYTE KubernetesPod_Container_Resources_Unit = 6
// * 1024
KubernetesPod_Container_Resources_KIBIBYTE KubernetesPod_Container_Resources_Unit = 7
// * 1024^2
KubernetesPod_Container_Resources_MEBIBYTE KubernetesPod_Container_Resources_Unit = 8
// * 1024^3
KubernetesPod_Container_Resources_GIBIBYTE KubernetesPod_Container_Resources_Unit = 9
// * 1024^4
KubernetesPod_Container_Resources_TEBIBYTE KubernetesPod_Container_Resources_Unit = 10
// * 1024^5
KubernetesPod_Container_Resources_PEBIBYTE KubernetesPod_Container_Resources_Unit = 11
// * 1024^6
KubernetesPod_Container_Resources_EXBIBYTE KubernetesPod_Container_Resources_Unit = 12
)
var KubernetesPod_Container_Resources_Unit_name = map[int32]string{
0: "BYTE",
1: "KILOBYTE",
2: "MEGABYTE",
3: "GIGABYTE",
4: "TERABYTE",
5: "PETABYTE",
6: "EXABYTE",
7: "KIBIBYTE",
8: "MEBIBYTE",
9: "GIBIBYTE",
10: "TEBIBYTE",
11: "PEBIBYTE",
12: "EXBIBYTE",
}
var KubernetesPod_Container_Resources_Unit_value = map[string]int32{
"BYTE": 0,
"KILOBYTE": 1,
"MEGABYTE": 2,
"GIGABYTE": 3,
"TERABYTE": 4,
"PETABYTE": 5,
"EXABYTE": 6,
"KIBIBYTE": 7,
"MEBIBYTE": 8,
"GIBIBYTE": 9,
"TEBIBYTE": 10,
"PEBIBYTE": 11,
"EXBIBYTE": 12,
}
func (x KubernetesPod_Container_Resources_Unit) String() string {
return proto.EnumName(KubernetesPod_Container_Resources_Unit_name, int32(x))
}
func (KubernetesPod_Container_Resources_Unit) EnumDescriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 2, 0}
}
// *
// Component represents a single deployable component.
//
// Deployment tool projects are composed of Components. Each Component is
// defined in a project's components directory, and describes a deployment
// Component that the project offers.
//
// Components are located under a Source's components directory, and are
// named "<component-name>.cfg". The internal name for a given component is
// "<component-name>".
//
// Components themselves are source-relative links to actual Component
// configuration files, which define various component types.
type Component struct {
Build []*Component_Build `protobuf:"bytes,1,rep,name=build" json:"build,omitempty"`
// *
// Source-relative path to other Build message files to build with this
// component.
BuildPath []string `protobuf:"bytes,2,rep,name=build_path,json=buildPath" json:"build_path,omitempty"`
// * The Component that this file describes.
//
// Types that are valid to be assigned to Component:
// *Component_AppengineModule
// *Component_GkePod
Component isComponent_Component `protobuf_oneof:"component"`
}
func (m *Component) Reset() { *m = Component{} }
func (m *Component) String() string { return proto.CompactTextString(m) }
func (*Component) ProtoMessage() {}
func (*Component) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
type isComponent_Component interface {
isComponent_Component()
}
type Component_AppengineModule struct {
AppengineModule *AppEngineModule `protobuf:"bytes,10,opt,name=appengine_module,json=appengineModule,oneof"`
}
type Component_GkePod struct {
GkePod *ContainerEnginePod `protobuf:"bytes,11,opt,name=gke_pod,json=gkePod,oneof"`
}
func (*Component_AppengineModule) isComponent_Component() {}
func (*Component_GkePod) isComponent_Component() {}
func (m *Component) GetComponent() isComponent_Component {
if m != nil {
return m.Component
}
return nil
}
func (m *Component) GetBuild() []*Component_Build {
if m != nil {
return m.Build
}
return nil
}
func (m *Component) GetBuildPath() []string {
if m != nil {
return m.BuildPath
}
return nil
}
func (m *Component) GetAppengineModule() *AppEngineModule {
if x, ok := m.GetComponent().(*Component_AppengineModule); ok {
return x.AppengineModule
}
return nil
}
func (m *Component) GetGkePod() *ContainerEnginePod {
if x, ok := m.GetComponent().(*Component_GkePod); ok {
return x.GkePod
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*Component) 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 _Component_OneofMarshaler, _Component_OneofUnmarshaler, _Component_OneofSizer, []interface{}{
(*Component_AppengineModule)(nil),
(*Component_GkePod)(nil),
}
}
func _Component_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*Component)
// component
switch x := m.Component.(type) {
case *Component_AppengineModule:
b.EncodeVarint(10<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.AppengineModule); err != nil {
return err
}
case *Component_GkePod:
b.EncodeVarint(11<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.GkePod); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("Component.Component has unexpected type %T", x)
}
return nil
}
func _Component_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*Component)
switch tag {
case 10: // component.appengine_module
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule)
err := b.DecodeMessage(msg)
m.Component = &Component_AppengineModule{msg}
return true, err
case 11: // component.gke_pod
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(ContainerEnginePod)
err := b.DecodeMessage(msg)
m.Component = &Component_GkePod{msg}
return true, err
default:
return false, nil
}
}
func _Component_OneofSizer(msg proto.Message) (n int) {
m := msg.(*Component)
// component
switch x := m.Component.(type) {
case *Component_AppengineModule:
s := proto.Size(x.AppengineModule)
n += proto.SizeVarint(10<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *Component_GkePod:
s := proto.Size(x.GkePod)
n += proto.SizeVarint(11<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// *
// Build is a single build operation execution. It can be attached to a
// Component, and will be executed as a precondition to completing that
// Component.
//
// Any `dir_key` exposed through Build will become available to directory
// fields in the Component definition.
//
// Note that the source repository's `run_scripts` directive must be enabled.
type Component_Build struct {
// *
// The variable substitution key that the build directory for this directive
// can be substituted with.
DirKey string `protobuf:"bytes,1,opt,name=dir_key,json=dirKey" json:"dir_key,omitempty"`
// Types that are valid to be assigned to Operation:
// *Component_Build_PythonScript_
Operation isComponent_Build_Operation `protobuf_oneof:"operation"`
}
func (m *Component_Build) Reset() { *m = Component_Build{} }
func (m *Component_Build) String() string { return proto.CompactTextString(m) }
func (*Component_Build) ProtoMessage() {}
func (*Component_Build) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0, 0} }
type isComponent_Build_Operation interface {
isComponent_Build_Operation()
}
type Component_Build_PythonScript_ struct {
PythonScript *Component_Build_PythonScript `protobuf:"bytes,2,opt,name=python_script,json=pythonScript,oneof"`
}
func (*Component_Build_PythonScript_) isComponent_Build_Operation() {}
func (m *Component_Build) GetOperation() isComponent_Build_Operation {
if m != nil {
return m.Operation
}
return nil
}
func (m *Component_Build) GetDirKey() string {
if m != nil {
return m.DirKey
}
return ""
}
func (m *Component_Build) GetPythonScript() *Component_Build_PythonScript {
if x, ok := m.GetOperation().(*Component_Build_PythonScript_); ok {
return x.PythonScript
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*Component_Build) 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 _Component_Build_OneofMarshaler, _Component_Build_OneofUnmarshaler, _Component_Build_OneofSizer, []interface{}{
(*Component_Build_PythonScript_)(nil),
}
}
func _Component_Build_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*Component_Build)
// operation
switch x := m.Operation.(type) {
case *Component_Build_PythonScript_:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.PythonScript); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("Component_Build.Operation has unexpected type %T", x)
}
return nil
}
func _Component_Build_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*Component_Build)
switch tag {
case 2: // operation.python_script
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(Component_Build_PythonScript)
err := b.DecodeMessage(msg)
m.Operation = &Component_Build_PythonScript_{msg}
return true, err
default:
return false, nil
}
}
func _Component_Build_OneofSizer(msg proto.Message) (n int) {
m := msg.(*Component_Build)
// operation
switch x := m.Operation.(type) {
case *Component_Build_PythonScript_:
s := proto.Size(x.PythonScript)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// *
// A Python build script.
//
// The script will be run out of a directory generated specifically for it
// during the build phase of a Component.
// $ PYTHON PATH SOURCE-ROOT BUILD-DIR [EXTRA-ARGS...]
//
// - PYTHON is the deploy tool-resolved Python interpreter.
// - PATH is the absolute path of the script.
// - SOURCE-ROOT is the root of the source that is being initialized.
// - BUILD-DIR is the build output directory. Each build script invocation
// will be allocated a temporary output directory for its build artifacts.
// Note that this will also be the current working directory.
// - EXTRA_ARGS is any additional arguments supplied via the `extra_args`
// field.
type Component_Build_PythonScript struct {
// * The source-relative path of the Python script.
Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
// * Additional arguments supplied at the end of the script.
ExtraArgs []string `protobuf:"bytes,2,rep,name=extra_args,json=extraArgs" json:"extra_args,omitempty"`
}
func (m *Component_Build_PythonScript) Reset() { *m = Component_Build_PythonScript{} }
func (m *Component_Build_PythonScript) String() string { return proto.CompactTextString(m) }
func (*Component_Build_PythonScript) ProtoMessage() {}
func (*Component_Build_PythonScript) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{0, 0, 0}
}
func (m *Component_Build_PythonScript) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *Component_Build_PythonScript) GetExtraArgs() []string {
if m != nil {
return m.ExtraArgs
}
return nil
}
// *
// A BuildPath is a path that is relative to either a source root or, if
// specified, a Build `dir_key`.
type BuildPath struct {
// * The Build `dir_key` to use as a root instead of the source root.
DirKey string `protobuf:"bytes,1,opt,name=dir_key,json=dirKey" json:"dir_key,omitempty"`
// *
// The relative path. If `dir_key` is empty, this is relative to the source
// root. Otherwise, this is relative to `dir_key`'s directory root.
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
}
func (m *BuildPath) Reset() { *m = BuildPath{} }
func (m *BuildPath) String() string { return proto.CompactTextString(m) }
func (*BuildPath) ProtoMessage() {}
func (*BuildPath) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
func (m *BuildPath) GetDirKey() string {
if m != nil {
return m.DirKey
}
return ""
}
func (m *BuildPath) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
// *
// A Duration expression.
//
// This is preferred to google.protobuf.Duration since it is more easily
// expressed by a human.
type Duration struct {
// * The duration value, taken in units of "unit".
Value uint32 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
// * The unit for this duration value.
Unit Duration_Unit `protobuf:"varint,2,opt,name=unit,enum=deploy.Duration_Unit" json:"unit,omitempty"`
// * Additional duration units to append.
Plus []*Duration `protobuf:"bytes,3,rep,name=plus" json:"plus,omitempty"`
}
func (m *Duration) Reset() { *m = Duration{} }
func (m *Duration) String() string { return proto.CompactTextString(m) }
func (*Duration) ProtoMessage() {}
func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
func (m *Duration) GetValue() uint32 {
if m != nil {
return m.Value
}
return 0
}
func (m *Duration) GetUnit() Duration_Unit {
if m != nil {
return m.Unit
}
return Duration_MILLISECONDS
}
func (m *Duration) GetPlus() []*Duration {
if m != nil {
return m.Plus
}
return nil
}
// *
// Describes an AppEngine module.
type AppEngineModule struct {
// * The name of the module. Leave blank for default module.
ModuleName string `protobuf:"bytes,1,opt,name=module_name,json=moduleName" json:"module_name,omitempty"`
// * The module's runtime.
//
// Types that are valid to be assigned to Runtime:
// *AppEngineModule_GoModule_
// *AppEngineModule_StaticModule_
Runtime isAppEngineModule_Runtime `protobuf_oneof:"runtime"`
// Types that are valid to be assigned to Params:
// *AppEngineModule_Classic
// *AppEngineModule_ManagedVm
Params isAppEngineModule_Params `protobuf_oneof:"params"`
// * Module handlers.
Handlers *AppEngineModule_HandlerSet `protobuf:"bytes,20,opt,name=handlers" json:"handlers,omitempty"`
// * Source-relative paths to HandlerSet protobufs to include.
HandlerPath []string `protobuf:"bytes,21,rep,name=handler_path,json=handlerPath" json:"handler_path,omitempty"`
// *
// Module resources.
//
// All resources defined by this module are automatically configured to be
// handled by this module without explicit "handle_*" directives.
Resources *AppEngineResources `protobuf:"bytes,22,opt,name=resources" json:"resources,omitempty"`
// *
// Source-relative path of additional AppEngineResources text protobuf files
// to load and associate with this module.
//
// Resources imported here are treated the same as if they were declared in
// the "resources" field.
//
// Resource paths may include deployment parameters.
ResourcePath []string `protobuf:"bytes,23,rep,name=resource_path,json=resourcePath" json:"resource_path,omitempty"`
// *
// The source-relative path to an "index.yaml" file that can be imported.
//
// This is specifically useful since GAE development instances are capable
// of generating their own index data after observing module behavior. A user
// may want to use this behavior directly ratehr rather than translate it
// ininto an AppEngineResources protobuf.
//
// If this is not empty, an "index.yaml" file will be loaded from this path
// and appended to any other defined indexes.
IndexYamlPath string `protobuf:"bytes,24,opt,name=index_yaml_path,json=indexYamlPath" json:"index_yaml_path,omitempty"`
}
func (m *AppEngineModule) Reset() { *m = AppEngineModule{} }
func (m *AppEngineModule) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule) ProtoMessage() {}
func (*AppEngineModule) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
type isAppEngineModule_Runtime interface {
isAppEngineModule_Runtime()
}
type isAppEngineModule_Params interface {
isAppEngineModule_Params()
}
type AppEngineModule_GoModule_ struct {
GoModule *AppEngineModule_GoModule `protobuf:"bytes,2,opt,name=go_module,json=goModule,oneof"`
}
type AppEngineModule_StaticModule_ struct {
StaticModule *AppEngineModule_StaticModule `protobuf:"bytes,3,opt,name=static_module,json=staticModule,oneof"`
}
type AppEngineModule_Classic struct {
Classic *AppEngineModule_ClassicParams `protobuf:"bytes,10,opt,name=classic,oneof"`
}
type AppEngineModule_ManagedVm struct {
ManagedVm *AppEngineModule_ManagedVmParams `protobuf:"bytes,11,opt,name=managed_vm,json=managedVm,oneof"`
}
func (*AppEngineModule_GoModule_) isAppEngineModule_Runtime() {}
func (*AppEngineModule_StaticModule_) isAppEngineModule_Runtime() {}
func (*AppEngineModule_Classic) isAppEngineModule_Params() {}
func (*AppEngineModule_ManagedVm) isAppEngineModule_Params() {}
func (m *AppEngineModule) GetRuntime() isAppEngineModule_Runtime {
if m != nil {
return m.Runtime
}
return nil
}
func (m *AppEngineModule) GetParams() isAppEngineModule_Params {
if m != nil {
return m.Params
}
return nil
}
func (m *AppEngineModule) GetModuleName() string {
if m != nil {
return m.ModuleName
}
return ""
}
func (m *AppEngineModule) GetGoModule() *AppEngineModule_GoModule {
if x, ok := m.GetRuntime().(*AppEngineModule_GoModule_); ok {
return x.GoModule
}
return nil
}
func (m *AppEngineModule) GetStaticModule() *AppEngineModule_StaticModule {
if x, ok := m.GetRuntime().(*AppEngineModule_StaticModule_); ok {
return x.StaticModule
}
return nil
}
func (m *AppEngineModule) GetClassic() *AppEngineModule_ClassicParams {
if x, ok := m.GetParams().(*AppEngineModule_Classic); ok {
return x.Classic
}
return nil
}
func (m *AppEngineModule) GetManagedVm() *AppEngineModule_ManagedVmParams {
if x, ok := m.GetParams().(*AppEngineModule_ManagedVm); ok {
return x.ManagedVm
}
return nil
}
func (m *AppEngineModule) GetHandlers() *AppEngineModule_HandlerSet {
if m != nil {
return m.Handlers
}
return nil
}
func (m *AppEngineModule) GetHandlerPath() []string {
if m != nil {
return m.HandlerPath
}
return nil
}
func (m *AppEngineModule) GetResources() *AppEngineResources {
if m != nil {
return m.Resources
}
return nil
}
func (m *AppEngineModule) GetResourcePath() []string {
if m != nil {
return m.ResourcePath
}
return nil
}
func (m *AppEngineModule) GetIndexYamlPath() string {
if m != nil {
return m.IndexYamlPath
}
return ""
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*AppEngineModule) 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 _AppEngineModule_OneofMarshaler, _AppEngineModule_OneofUnmarshaler, _AppEngineModule_OneofSizer, []interface{}{
(*AppEngineModule_GoModule_)(nil),
(*AppEngineModule_StaticModule_)(nil),
(*AppEngineModule_Classic)(nil),
(*AppEngineModule_ManagedVm)(nil),
}
}
func _AppEngineModule_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*AppEngineModule)
// runtime
switch x := m.Runtime.(type) {
case *AppEngineModule_GoModule_:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.GoModule); err != nil {
return err
}
case *AppEngineModule_StaticModule_:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.StaticModule); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("AppEngineModule.Runtime has unexpected type %T", x)
}
// params
switch x := m.Params.(type) {
case *AppEngineModule_Classic:
b.EncodeVarint(10<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Classic); err != nil {
return err
}
case *AppEngineModule_ManagedVm:
b.EncodeVarint(11<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ManagedVm); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("AppEngineModule.Params has unexpected type %T", x)
}
return nil
}
func _AppEngineModule_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*AppEngineModule)
switch tag {
case 2: // runtime.go_module
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_GoModule)
err := b.DecodeMessage(msg)
m.Runtime = &AppEngineModule_GoModule_{msg}
return true, err
case 3: // runtime.static_module
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_StaticModule)
err := b.DecodeMessage(msg)
m.Runtime = &AppEngineModule_StaticModule_{msg}
return true, err
case 10: // params.classic
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_ClassicParams)
err := b.DecodeMessage(msg)
m.Params = &AppEngineModule_Classic{msg}
return true, err
case 11: // params.managed_vm
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_ManagedVmParams)
err := b.DecodeMessage(msg)
m.Params = &AppEngineModule_ManagedVm{msg}
return true, err
default:
return false, nil
}
}
func _AppEngineModule_OneofSizer(msg proto.Message) (n int) {
m := msg.(*AppEngineModule)
// runtime
switch x := m.Runtime.(type) {
case *AppEngineModule_GoModule_:
s := proto.Size(x.GoModule)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *AppEngineModule_StaticModule_:
s := proto.Size(x.StaticModule)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
// params
switch x := m.Params.(type) {
case *AppEngineModule_Classic:
s := proto.Size(x.Classic)
n += proto.SizeVarint(10<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *AppEngineModule_ManagedVm:
s := proto.Size(x.ManagedVm)
n += proto.SizeVarint(11<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// *
// A Go AppEngine module.
//
// The entry point must be declared here.
type AppEngineModule_GoModule struct {
// * The Go package path of the module's entry package.
EntryPackage string `protobuf:"bytes,1,opt,name=entry_package,json=entryPackage" json:"entry_package,omitempty"`
}
func (m *AppEngineModule_GoModule) Reset() { *m = AppEngineModule_GoModule{} }
func (m *AppEngineModule_GoModule) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_GoModule) ProtoMessage() {}
func (*AppEngineModule_GoModule) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3, 0} }
func (m *AppEngineModule_GoModule) GetEntryPackage() string {
if m != nil {
return m.EntryPackage
}
return ""
}
// *
// A module that is really hosting static content via handlers and uploads.
type AppEngineModule_StaticModule struct {
}
func (m *AppEngineModule_StaticModule) Reset() { *m = AppEngineModule_StaticModule{} }
func (m *AppEngineModule_StaticModule) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_StaticModule) ProtoMessage() {}
func (*AppEngineModule_StaticModule) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3, 1} }
// * Parameters for a classic AppEngine instance.
type AppEngineModule_ClassicParams struct {
InstanceClass AppEngineModule_ClassicParams_InstanceClass `protobuf:"varint,1,opt,name=instance_class,json=instanceClass,enum=deploy.AppEngineModule_ClassicParams_InstanceClass" json:"instance_class,omitempty"`
// * Instance scaling type.
//
// Types that are valid to be assigned to Scaling:
// *AppEngineModule_ClassicParams_AutomaticScaling_
// *AppEngineModule_ClassicParams_BasicScaling_
// *AppEngineModule_ClassicParams_ManualScaling_
Scaling isAppEngineModule_ClassicParams_Scaling `protobuf_oneof:"scaling"`
}
func (m *AppEngineModule_ClassicParams) Reset() { *m = AppEngineModule_ClassicParams{} }
func (m *AppEngineModule_ClassicParams) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_ClassicParams) ProtoMessage() {}
func (*AppEngineModule_ClassicParams) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 2}
}
type isAppEngineModule_ClassicParams_Scaling interface {
isAppEngineModule_ClassicParams_Scaling()
}
type AppEngineModule_ClassicParams_AutomaticScaling_ struct {
AutomaticScaling *AppEngineModule_ClassicParams_AutomaticScaling `protobuf:"bytes,10,opt,name=automatic_scaling,json=automaticScaling,oneof"`
}
type AppEngineModule_ClassicParams_BasicScaling_ struct {
BasicScaling *AppEngineModule_ClassicParams_BasicScaling `protobuf:"bytes,11,opt,name=basic_scaling,json=basicScaling,oneof"`
}
type AppEngineModule_ClassicParams_ManualScaling_ struct {
ManualScaling *AppEngineModule_ClassicParams_ManualScaling `protobuf:"bytes,12,opt,name=manual_scaling,json=manualScaling,oneof"`
}
func (*AppEngineModule_ClassicParams_AutomaticScaling_) isAppEngineModule_ClassicParams_Scaling() {}
func (*AppEngineModule_ClassicParams_BasicScaling_) isAppEngineModule_ClassicParams_Scaling() {}
func (*AppEngineModule_ClassicParams_ManualScaling_) isAppEngineModule_ClassicParams_Scaling() {}
func (m *AppEngineModule_ClassicParams) GetScaling() isAppEngineModule_ClassicParams_Scaling {
if m != nil {
return m.Scaling
}
return nil
}
func (m *AppEngineModule_ClassicParams) GetInstanceClass() AppEngineModule_ClassicParams_InstanceClass {
if m != nil {
return m.InstanceClass
}
return AppEngineModule_ClassicParams_IC_DEFAULT
}
func (m *AppEngineModule_ClassicParams) GetAutomaticScaling() *AppEngineModule_ClassicParams_AutomaticScaling {
if x, ok := m.GetScaling().(*AppEngineModule_ClassicParams_AutomaticScaling_); ok {
return x.AutomaticScaling
}
return nil
}
func (m *AppEngineModule_ClassicParams) GetBasicScaling() *AppEngineModule_ClassicParams_BasicScaling {
if x, ok := m.GetScaling().(*AppEngineModule_ClassicParams_BasicScaling_); ok {
return x.BasicScaling
}
return nil
}
func (m *AppEngineModule_ClassicParams) GetManualScaling() *AppEngineModule_ClassicParams_ManualScaling {
if x, ok := m.GetScaling().(*AppEngineModule_ClassicParams_ManualScaling_); ok {
return x.ManualScaling
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*AppEngineModule_ClassicParams) 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 _AppEngineModule_ClassicParams_OneofMarshaler, _AppEngineModule_ClassicParams_OneofUnmarshaler, _AppEngineModule_ClassicParams_OneofSizer, []interface{}{
(*AppEngineModule_ClassicParams_AutomaticScaling_)(nil),
(*AppEngineModule_ClassicParams_BasicScaling_)(nil),
(*AppEngineModule_ClassicParams_ManualScaling_)(nil),
}
}
func _AppEngineModule_ClassicParams_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*AppEngineModule_ClassicParams)
// scaling
switch x := m.Scaling.(type) {
case *AppEngineModule_ClassicParams_AutomaticScaling_:
b.EncodeVarint(10<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.AutomaticScaling); err != nil {
return err
}
case *AppEngineModule_ClassicParams_BasicScaling_:
b.EncodeVarint(11<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.BasicScaling); err != nil {
return err
}
case *AppEngineModule_ClassicParams_ManualScaling_:
b.EncodeVarint(12<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ManualScaling); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("AppEngineModule_ClassicParams.Scaling has unexpected type %T", x)
}
return nil
}
func _AppEngineModule_ClassicParams_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*AppEngineModule_ClassicParams)
switch tag {
case 10: // scaling.automatic_scaling
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_ClassicParams_AutomaticScaling)
err := b.DecodeMessage(msg)
m.Scaling = &AppEngineModule_ClassicParams_AutomaticScaling_{msg}
return true, err
case 11: // scaling.basic_scaling
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_ClassicParams_BasicScaling)
err := b.DecodeMessage(msg)
m.Scaling = &AppEngineModule_ClassicParams_BasicScaling_{msg}
return true, err
case 12: // scaling.manual_scaling
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_ClassicParams_ManualScaling)
err := b.DecodeMessage(msg)
m.Scaling = &AppEngineModule_ClassicParams_ManualScaling_{msg}
return true, err
default:
return false, nil
}
}
func _AppEngineModule_ClassicParams_OneofSizer(msg proto.Message) (n int) {
m := msg.(*AppEngineModule_ClassicParams)
// scaling
switch x := m.Scaling.(type) {
case *AppEngineModule_ClassicParams_AutomaticScaling_:
s := proto.Size(x.AutomaticScaling)
n += proto.SizeVarint(10<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *AppEngineModule_ClassicParams_BasicScaling_:
s := proto.Size(x.BasicScaling)
n += proto.SizeVarint(11<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *AppEngineModule_ClassicParams_ManualScaling_:
s := proto.Size(x.ManualScaling)
n += proto.SizeVarint(12<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// * Describes automatic scaling parameters.
type AppEngineModule_ClassicParams_AutomaticScaling struct {
// * Minimum number of idle instances.
MinIdleInstances uint32 `protobuf:"varint,1,opt,name=min_idle_instances,json=minIdleInstances" json:"min_idle_instances,omitempty"`
// * Maximum number of idle instances. 0 is automatic (default).
MaxIdleInstances uint32 `protobuf:"varint,2,opt,name=max_idle_instances,json=maxIdleInstances" json:"max_idle_instances,omitempty"`
// * Minimum pending latency.
MinPendingLatency *Duration `protobuf:"bytes,3,opt,name=min_pending_latency,json=minPendingLatency" json:"min_pending_latency,omitempty"`
// * Maximum pending latency. 0 is automatic (default).
MaxPendingLatency *Duration `protobuf:"bytes,4,opt,name=max_pending_latency,json=maxPendingLatency" json:"max_pending_latency,omitempty"`
// * Number of concurrent requests before respawning a new instance.
MaxConcurrentRequests uint32 `protobuf:"varint,5,opt,name=max_concurrent_requests,json=maxConcurrentRequests" json:"max_concurrent_requests,omitempty"`
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) Reset() {
*m = AppEngineModule_ClassicParams_AutomaticScaling{}
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) String() string {
return proto.CompactTextString(m)
}
func (*AppEngineModule_ClassicParams_AutomaticScaling) ProtoMessage() {}
func (*AppEngineModule_ClassicParams_AutomaticScaling) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 2, 0}
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) GetMinIdleInstances() uint32 {
if m != nil {
return m.MinIdleInstances
}
return 0
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) GetMaxIdleInstances() uint32 {
if m != nil {
return m.MaxIdleInstances
}
return 0
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) GetMinPendingLatency() *Duration {
if m != nil {
return m.MinPendingLatency
}
return nil
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) GetMaxPendingLatency() *Duration {
if m != nil {
return m.MaxPendingLatency
}
return nil
}
func (m *AppEngineModule_ClassicParams_AutomaticScaling) GetMaxConcurrentRequests() uint32 {
if m != nil {
return m.MaxConcurrentRequests
}
return 0
}
// * Describes basic scaling parameters.
type AppEngineModule_ClassicParams_BasicScaling struct {
// Time after last request when instance will be shut down.
IdleTimeout *Duration `protobuf:"bytes,1,opt,name=idle_timeout,json=idleTimeout" json:"idle_timeout,omitempty"`
// *
// The maximum number of instances to creaet for this version (required).
MaxInstances uint32 `protobuf:"varint,2,opt,name=max_instances,json=maxInstances" json:"max_instances,omitempty"`
}
func (m *AppEngineModule_ClassicParams_BasicScaling) Reset() {
*m = AppEngineModule_ClassicParams_BasicScaling{}
}
func (m *AppEngineModule_ClassicParams_BasicScaling) String() string {
return proto.CompactTextString(m)
}
func (*AppEngineModule_ClassicParams_BasicScaling) ProtoMessage() {}
func (*AppEngineModule_ClassicParams_BasicScaling) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 2, 1}
}
func (m *AppEngineModule_ClassicParams_BasicScaling) GetIdleTimeout() *Duration {
if m != nil {
return m.IdleTimeout
}
return nil
}
func (m *AppEngineModule_ClassicParams_BasicScaling) GetMaxInstances() uint32 {
if m != nil {
return m.MaxInstances
}
return 0
}
// * Describes manual scaling parameters.
type AppEngineModule_ClassicParams_ManualScaling struct {
// * The number of instances to assign.
Instances uint32 `protobuf:"varint,1,opt,name=instances" json:"instances,omitempty"`
}
func (m *AppEngineModule_ClassicParams_ManualScaling) Reset() {
*m = AppEngineModule_ClassicParams_ManualScaling{}
}
func (m *AppEngineModule_ClassicParams_ManualScaling) String() string {
return proto.CompactTextString(m)
}
func (*AppEngineModule_ClassicParams_ManualScaling) ProtoMessage() {}
func (*AppEngineModule_ClassicParams_ManualScaling) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 2, 2}
}
func (m *AppEngineModule_ClassicParams_ManualScaling) GetInstances() uint32 {
if m != nil {
return m.Instances
}
return 0
}
// * Parameters for Managed VM
type AppEngineModule_ManagedVmParams struct {
// * Scopes are additional service account scopes to include.
Scopes []string `protobuf:"bytes,1,rep,name=scopes" json:"scopes,omitempty"`
}
func (m *AppEngineModule_ManagedVmParams) Reset() { *m = AppEngineModule_ManagedVmParams{} }
func (m *AppEngineModule_ManagedVmParams) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_ManagedVmParams) ProtoMessage() {}
func (*AppEngineModule_ManagedVmParams) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 3}
}
func (m *AppEngineModule_ManagedVmParams) GetScopes() []string {
if m != nil {
return m.Scopes
}
return nil
}
// * Handler is the set of handlers.
type AppEngineModule_Handler struct {
// * The handler URL / regexp.
Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
Login AppEngineModule_Handler_LoginOption `protobuf:"varint,2,opt,name=login,enum=deploy.AppEngineModule_Handler_LoginOption" json:"login,omitempty"`
Secure AppEngineModule_Handler_SecureOption `protobuf:"varint,3,opt,name=secure,enum=deploy.AppEngineModule_Handler_SecureOption" json:"secure,omitempty"`
// Types that are valid to be assigned to Content:
// *AppEngineModule_Handler_Script
// *AppEngineModule_Handler_StaticFiles_
// *AppEngineModule_Handler_StaticDir
// *AppEngineModule_Handler_StaticBuildDir
Content isAppEngineModule_Handler_Content `protobuf_oneof:"content"`
}
func (m *AppEngineModule_Handler) Reset() { *m = AppEngineModule_Handler{} }
func (m *AppEngineModule_Handler) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_Handler) ProtoMessage() {}
func (*AppEngineModule_Handler) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3, 4} }
type isAppEngineModule_Handler_Content interface {
isAppEngineModule_Handler_Content()
}
type AppEngineModule_Handler_Script struct {
Script string `protobuf:"bytes,4,opt,name=script,oneof"`
}
type AppEngineModule_Handler_StaticFiles_ struct {
StaticFiles *AppEngineModule_Handler_StaticFiles `protobuf:"bytes,5,opt,name=static_files,json=staticFiles,oneof"`
}
type AppEngineModule_Handler_StaticDir struct {
StaticDir string `protobuf:"bytes,6,opt,name=static_dir,json=staticDir,oneof"`
}
type AppEngineModule_Handler_StaticBuildDir struct {
StaticBuildDir *BuildPath `protobuf:"bytes,7,opt,name=static_build_dir,json=staticBuildDir,oneof"`
}
func (*AppEngineModule_Handler_Script) isAppEngineModule_Handler_Content() {}
func (*AppEngineModule_Handler_StaticFiles_) isAppEngineModule_Handler_Content() {}
func (*AppEngineModule_Handler_StaticDir) isAppEngineModule_Handler_Content() {}
func (*AppEngineModule_Handler_StaticBuildDir) isAppEngineModule_Handler_Content() {}
func (m *AppEngineModule_Handler) GetContent() isAppEngineModule_Handler_Content {
if m != nil {
return m.Content
}
return nil
}
func (m *AppEngineModule_Handler) GetUrl() string {
if m != nil {
return m.Url
}
return ""
}
func (m *AppEngineModule_Handler) GetLogin() AppEngineModule_Handler_LoginOption {
if m != nil {
return m.Login
}
return AppEngineModule_Handler_LOGIN_OPTIONAL
}
func (m *AppEngineModule_Handler) GetSecure() AppEngineModule_Handler_SecureOption {
if m != nil {
return m.Secure
}
return AppEngineModule_Handler_SECURE_ALWAYS
}
func (m *AppEngineModule_Handler) GetScript() string {
if x, ok := m.GetContent().(*AppEngineModule_Handler_Script); ok {
return x.Script
}
return ""
}
func (m *AppEngineModule_Handler) GetStaticFiles() *AppEngineModule_Handler_StaticFiles {
if x, ok := m.GetContent().(*AppEngineModule_Handler_StaticFiles_); ok {
return x.StaticFiles
}
return nil
}
func (m *AppEngineModule_Handler) GetStaticDir() string {
if x, ok := m.GetContent().(*AppEngineModule_Handler_StaticDir); ok {
return x.StaticDir
}
return ""
}
func (m *AppEngineModule_Handler) GetStaticBuildDir() *BuildPath {
if x, ok := m.GetContent().(*AppEngineModule_Handler_StaticBuildDir); ok {
return x.StaticBuildDir
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*AppEngineModule_Handler) 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 _AppEngineModule_Handler_OneofMarshaler, _AppEngineModule_Handler_OneofUnmarshaler, _AppEngineModule_Handler_OneofSizer, []interface{}{
(*AppEngineModule_Handler_Script)(nil),
(*AppEngineModule_Handler_StaticFiles_)(nil),
(*AppEngineModule_Handler_StaticDir)(nil),
(*AppEngineModule_Handler_StaticBuildDir)(nil),
}
}
func _AppEngineModule_Handler_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*AppEngineModule_Handler)
// content
switch x := m.Content.(type) {
case *AppEngineModule_Handler_Script:
b.EncodeVarint(4<<3 | proto.WireBytes)
b.EncodeStringBytes(x.Script)
case *AppEngineModule_Handler_StaticFiles_:
b.EncodeVarint(5<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.StaticFiles); err != nil {
return err
}
case *AppEngineModule_Handler_StaticDir:
b.EncodeVarint(6<<3 | proto.WireBytes)
b.EncodeStringBytes(x.StaticDir)
case *AppEngineModule_Handler_StaticBuildDir:
b.EncodeVarint(7<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.StaticBuildDir); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("AppEngineModule_Handler.Content has unexpected type %T", x)
}
return nil
}
func _AppEngineModule_Handler_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*AppEngineModule_Handler)
switch tag {
case 4: // content.script
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeStringBytes()
m.Content = &AppEngineModule_Handler_Script{x}
return true, err
case 5: // content.static_files
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineModule_Handler_StaticFiles)
err := b.DecodeMessage(msg)
m.Content = &AppEngineModule_Handler_StaticFiles_{msg}
return true, err
case 6: // content.static_dir
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeStringBytes()
m.Content = &AppEngineModule_Handler_StaticDir{x}
return true, err
case 7: // content.static_build_dir
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(BuildPath)
err := b.DecodeMessage(msg)
m.Content = &AppEngineModule_Handler_StaticBuildDir{msg}
return true, err
default:
return false, nil
}
}
func _AppEngineModule_Handler_OneofSizer(msg proto.Message) (n int) {
m := msg.(*AppEngineModule_Handler)
// content
switch x := m.Content.(type) {
case *AppEngineModule_Handler_Script:
n += proto.SizeVarint(4<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(len(x.Script)))
n += len(x.Script)
case *AppEngineModule_Handler_StaticFiles_:
s := proto.Size(x.StaticFiles)
n += proto.SizeVarint(5<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *AppEngineModule_Handler_StaticDir:
n += proto.SizeVarint(6<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(len(x.StaticDir)))
n += len(x.StaticDir)
case *AppEngineModule_Handler_StaticBuildDir:
s := proto.Size(x.StaticBuildDir)
n += proto.SizeVarint(7<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// *
// Script is the name of the script to invoke.
//
// For Go runtime VMs, this will default to "_go_app".
type AppEngineModule_Handler_StaticFiles struct {
// * The base directory where the content is located.
//
// Types that are valid to be assigned to BaseDir:
// *AppEngineModule_Handler_StaticFiles_Path
// *AppEngineModule_Handler_StaticFiles_Build
BaseDir isAppEngineModule_Handler_StaticFiles_BaseDir `protobuf_oneof:"base_dir"`
// * Regexp pattern within "base_dir" to upload files.
Upload string `protobuf:"bytes,3,opt,name=upload" json:"upload,omitempty"`
// *
// URL to file mapping substitution regexp. This should not include the
// "base_dir" component.
UrlMap string `protobuf:"bytes,4,opt,name=url_map,json=urlMap" json:"url_map,omitempty"`
}
func (m *AppEngineModule_Handler_StaticFiles) Reset() { *m = AppEngineModule_Handler_StaticFiles{} }
func (m *AppEngineModule_Handler_StaticFiles) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_Handler_StaticFiles) ProtoMessage() {}
func (*AppEngineModule_Handler_StaticFiles) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{3, 4, 0}
}
type isAppEngineModule_Handler_StaticFiles_BaseDir interface {
isAppEngineModule_Handler_StaticFiles_BaseDir()
}
type AppEngineModule_Handler_StaticFiles_Path struct {
Path string `protobuf:"bytes,1,opt,name=path,oneof"`
}
type AppEngineModule_Handler_StaticFiles_Build struct {
Build *BuildPath `protobuf:"bytes,2,opt,name=build,oneof"`
}
func (*AppEngineModule_Handler_StaticFiles_Path) isAppEngineModule_Handler_StaticFiles_BaseDir() {}
func (*AppEngineModule_Handler_StaticFiles_Build) isAppEngineModule_Handler_StaticFiles_BaseDir() {}
func (m *AppEngineModule_Handler_StaticFiles) GetBaseDir() isAppEngineModule_Handler_StaticFiles_BaseDir {
if m != nil {
return m.BaseDir
}
return nil
}
func (m *AppEngineModule_Handler_StaticFiles) GetPath() string {
if x, ok := m.GetBaseDir().(*AppEngineModule_Handler_StaticFiles_Path); ok {
return x.Path
}
return ""
}
func (m *AppEngineModule_Handler_StaticFiles) GetBuild() *BuildPath {
if x, ok := m.GetBaseDir().(*AppEngineModule_Handler_StaticFiles_Build); ok {
return x.Build
}
return nil
}
func (m *AppEngineModule_Handler_StaticFiles) GetUpload() string {
if m != nil {
return m.Upload
}
return ""
}
func (m *AppEngineModule_Handler_StaticFiles) GetUrlMap() string {
if m != nil {
return m.UrlMap
}
return ""
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*AppEngineModule_Handler_StaticFiles) 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 _AppEngineModule_Handler_StaticFiles_OneofMarshaler, _AppEngineModule_Handler_StaticFiles_OneofUnmarshaler, _AppEngineModule_Handler_StaticFiles_OneofSizer, []interface{}{
(*AppEngineModule_Handler_StaticFiles_Path)(nil),
(*AppEngineModule_Handler_StaticFiles_Build)(nil),
}
}
func _AppEngineModule_Handler_StaticFiles_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*AppEngineModule_Handler_StaticFiles)
// base_dir
switch x := m.BaseDir.(type) {
case *AppEngineModule_Handler_StaticFiles_Path:
b.EncodeVarint(1<<3 | proto.WireBytes)
b.EncodeStringBytes(x.Path)
case *AppEngineModule_Handler_StaticFiles_Build:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Build); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("AppEngineModule_Handler_StaticFiles.BaseDir has unexpected type %T", x)
}
return nil
}
func _AppEngineModule_Handler_StaticFiles_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*AppEngineModule_Handler_StaticFiles)
switch tag {
case 1: // base_dir.path
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeStringBytes()
m.BaseDir = &AppEngineModule_Handler_StaticFiles_Path{x}
return true, err
case 2: // base_dir.build
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(BuildPath)
err := b.DecodeMessage(msg)
m.BaseDir = &AppEngineModule_Handler_StaticFiles_Build{msg}
return true, err
default:
return false, nil
}
}
func _AppEngineModule_Handler_StaticFiles_OneofSizer(msg proto.Message) (n int) {
m := msg.(*AppEngineModule_Handler_StaticFiles)
// base_dir
switch x := m.BaseDir.(type) {
case *AppEngineModule_Handler_StaticFiles_Path:
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(len(x.Path)))
n += len(x.Path)
case *AppEngineModule_Handler_StaticFiles_Build:
s := proto.Size(x.Build)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// * A set of Handler messages.
type AppEngineModule_HandlerSet struct {
// * The handler messages.
Handler []*AppEngineModule_Handler `protobuf:"bytes,1,rep,name=handler" json:"handler,omitempty"`
}
func (m *AppEngineModule_HandlerSet) Reset() { *m = AppEngineModule_HandlerSet{} }
func (m *AppEngineModule_HandlerSet) String() string { return proto.CompactTextString(m) }
func (*AppEngineModule_HandlerSet) ProtoMessage() {}
func (*AppEngineModule_HandlerSet) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3, 5} }
func (m *AppEngineModule_HandlerSet) GetHandler() []*AppEngineModule_Handler {
if m != nil {
return m.Handler
}
return nil
}
// *
// Defines a set of AppEngine-wide resources.
//
// These are aggregated between all registered AppEngine modules within a
// project.
type AppEngineResources struct {
// * The index messages.
Index []*AppEngineResources_Index `protobuf:"bytes,1,rep,name=index" json:"index,omitempty"`
// *
// Defines a dispatch directive.
//
// This dispatch entry will redirect requests to the module in which it is
// declared.
Dispatch []string `protobuf:"bytes,2,rep,name=dispatch" json:"dispatch,omitempty"`
// * Task queues.
TaskQueue []*AppEngineResources_TaskQueue `protobuf:"bytes,3,rep,name=task_queue,json=taskQueue" json:"task_queue,omitempty"`
// * The cron message.
Cron []*AppEngineResources_Cron `protobuf:"bytes,4,rep,name=cron" json:"cron,omitempty"`
}
func (m *AppEngineResources) Reset() { *m = AppEngineResources{} }
func (m *AppEngineResources) String() string { return proto.CompactTextString(m) }
func (*AppEngineResources) ProtoMessage() {}
func (*AppEngineResources) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
func (m *AppEngineResources) GetIndex() []*AppEngineResources_Index {
if m != nil {
return m.Index
}
return nil
}
func (m *AppEngineResources) GetDispatch() []string {
if m != nil {
return m.Dispatch
}
return nil
}
func (m *AppEngineResources) GetTaskQueue() []*AppEngineResources_TaskQueue {
if m != nil {
return m.TaskQueue
}
return nil
}
func (m *AppEngineResources) GetCron() []*AppEngineResources_Cron {
if m != nil {
return m.Cron
}
return nil
}
// Defines an index.
type AppEngineResources_Index struct {
// The entity Kind for the index.
Kind string `protobuf:"bytes,1,opt,name=kind" json:"kind,omitempty"`
// The list of properties in the index (ordered).
Property []*AppEngineResources_Index_Property `protobuf:"bytes,2,rep,name=property" json:"property,omitempty"`
// True if this will be used by an ancestor query.
Ancestor bool `protobuf:"varint,4,opt,name=ancestor" json:"ancestor,omitempty"`
}
func (m *AppEngineResources_Index) Reset() { *m = AppEngineResources_Index{} }
func (m *AppEngineResources_Index) String() string { return proto.CompactTextString(m) }
func (*AppEngineResources_Index) ProtoMessage() {}
func (*AppEngineResources_Index) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4, 0} }
func (m *AppEngineResources_Index) GetKind() string {
if m != nil {
return m.Kind
}
return ""
}
func (m *AppEngineResources_Index) GetProperty() []*AppEngineResources_Index_Property {
if m != nil {
return m.Property
}
return nil
}
func (m *AppEngineResources_Index) GetAncestor() bool {
if m != nil {
return m.Ancestor
}
return false
}
// Single property definition.
type AppEngineResources_Index_Property struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Direction AppEngineResources_Index_Direction `protobuf:"varint,2,opt,name=direction,enum=deploy.AppEngineResources_Index_Direction" json:"direction,omitempty"`
}
func (m *AppEngineResources_Index_Property) Reset() { *m = AppEngineResources_Index_Property{} }
func (m *AppEngineResources_Index_Property) String() string { return proto.CompactTextString(m) }
func (*AppEngineResources_Index_Property) ProtoMessage() {}
func (*AppEngineResources_Index_Property) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{4, 0, 0}
}
func (m *AppEngineResources_Index_Property) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *AppEngineResources_Index_Property) GetDirection() AppEngineResources_Index_Direction {
if m != nil {
return m.Direction
}
return AppEngineResources_Index_ASCENDING
}
// Defines a task queue.
type AppEngineResources_TaskQueue struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// Types that are valid to be assigned to Type:
// *AppEngineResources_TaskQueue_Push_
Type isAppEngineResources_TaskQueue_Type `protobuf_oneof:"type"`
}
func (m *AppEngineResources_TaskQueue) Reset() { *m = AppEngineResources_TaskQueue{} }
func (m *AppEngineResources_TaskQueue) String() string { return proto.CompactTextString(m) }
func (*AppEngineResources_TaskQueue) ProtoMessage() {}
func (*AppEngineResources_TaskQueue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4, 1} }
type isAppEngineResources_TaskQueue_Type interface {
isAppEngineResources_TaskQueue_Type()
}
type AppEngineResources_TaskQueue_Push_ struct {
Push *AppEngineResources_TaskQueue_Push `protobuf:"bytes,2,opt,name=push,oneof"`
}
func (*AppEngineResources_TaskQueue_Push_) isAppEngineResources_TaskQueue_Type() {}
func (m *AppEngineResources_TaskQueue) GetType() isAppEngineResources_TaskQueue_Type {
if m != nil {
return m.Type
}
return nil
}
func (m *AppEngineResources_TaskQueue) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *AppEngineResources_TaskQueue) GetPush() *AppEngineResources_TaskQueue_Push {
if x, ok := m.GetType().(*AppEngineResources_TaskQueue_Push_); ok {
return x.Push
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*AppEngineResources_TaskQueue) 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 _AppEngineResources_TaskQueue_OneofMarshaler, _AppEngineResources_TaskQueue_OneofUnmarshaler, _AppEngineResources_TaskQueue_OneofSizer, []interface{}{
(*AppEngineResources_TaskQueue_Push_)(nil),
}
}
func _AppEngineResources_TaskQueue_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*AppEngineResources_TaskQueue)
// type
switch x := m.Type.(type) {
case *AppEngineResources_TaskQueue_Push_:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Push); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("AppEngineResources_TaskQueue.Type has unexpected type %T", x)
}
return nil
}
func _AppEngineResources_TaskQueue_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*AppEngineResources_TaskQueue)
switch tag {
case 2: // type.push
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(AppEngineResources_TaskQueue_Push)
err := b.DecodeMessage(msg)
m.Type = &AppEngineResources_TaskQueue_Push_{msg}
return true, err
default:
return false, nil
}
}
func _AppEngineResources_TaskQueue_OneofSizer(msg proto.Message) (n int) {
m := msg.(*AppEngineResources_TaskQueue)
// type
switch x := m.Type.(type) {
case *AppEngineResources_TaskQueue_Push_:
s := proto.Size(x.Push)
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
// *
// Defines a push queue.
//
// This queue will push requests to the module in which it is declared.
type AppEngineResources_TaskQueue_Push struct {
Rate string `protobuf:"bytes,1,opt,name=rate" json:"rate,omitempty"`
BucketSize int32 `protobuf:"varint,2,opt,name=bucket_size,json=bucketSize" json:"bucket_size,omitempty"`
RetryTaskAgeLimit string `protobuf:"bytes,3,opt,name=retry_task_age_limit,json=retryTaskAgeLimit" json:"retry_task_age_limit,omitempty"`
RetryMinBackoffSeconds int32 `protobuf:"varint,4,opt,name=retry_min_backoff_seconds,json=retryMinBackoffSeconds" json:"retry_min_backoff_seconds,omitempty"`
RetryMaxBackoffSeconds int32 `protobuf:"varint,5,opt,name=retry_max_backoff_seconds,json=retryMaxBackoffSeconds" json:"retry_max_backoff_seconds,omitempty"`
RetryMaxDoublings int32 `protobuf:"varint,6,opt,name=retry_max_doublings,json=retryMaxDoublings" json:"retry_max_doublings,omitempty"`
MaxConcurrentRequests int32 `protobuf:"varint,7,opt,name=max_concurrent_requests,json=maxConcurrentRequests" json:"max_concurrent_requests,omitempty"`
}
func (m *AppEngineResources_TaskQueue_Push) Reset() { *m = AppEngineResources_TaskQueue_Push{} }
func (m *AppEngineResources_TaskQueue_Push) String() string { return proto.CompactTextString(m) }
func (*AppEngineResources_TaskQueue_Push) ProtoMessage() {}
func (*AppEngineResources_TaskQueue_Push) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{4, 1, 0}
}
func (m *AppEngineResources_TaskQueue_Push) GetRate() string {
if m != nil {
return m.Rate
}
return ""
}
func (m *AppEngineResources_TaskQueue_Push) GetBucketSize() int32 {
if m != nil {
return m.BucketSize
}
return 0
}
func (m *AppEngineResources_TaskQueue_Push) GetRetryTaskAgeLimit() string {
if m != nil {
return m.RetryTaskAgeLimit
}
return ""
}
func (m *AppEngineResources_TaskQueue_Push) GetRetryMinBackoffSeconds() int32 {
if m != nil {
return m.RetryMinBackoffSeconds
}
return 0
}
func (m *AppEngineResources_TaskQueue_Push) GetRetryMaxBackoffSeconds() int32 {
if m != nil {
return m.RetryMaxBackoffSeconds
}
return 0
}
func (m *AppEngineResources_TaskQueue_Push) GetRetryMaxDoublings() int32 {
if m != nil {
return m.RetryMaxDoublings
}
return 0
}
func (m *AppEngineResources_TaskQueue_Push) GetMaxConcurrentRequests() int32 {
if m != nil {
return m.MaxConcurrentRequests
}
return 0
}
// *
// Defines a cron entry.
//
// This cron will send requests to the module in which it is declared.
type AppEngineResources_Cron struct {
// The URL.
Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
// The description.
Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
// The cron's schedule string.
Schedule string `protobuf:"bytes,3,opt,name=schedule" json:"schedule,omitempty"`
}
func (m *AppEngineResources_Cron) Reset() { *m = AppEngineResources_Cron{} }
func (m *AppEngineResources_Cron) String() string { return proto.CompactTextString(m) }
func (*AppEngineResources_Cron) ProtoMessage() {}
func (*AppEngineResources_Cron) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4, 2} }
func (m *AppEngineResources_Cron) GetUrl() string {
if m != nil {
return m.Url
}
return ""
}
func (m *AppEngineResources_Cron) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
func (m *AppEngineResources_Cron) GetSchedule() string {
if m != nil {
return m.Schedule
}
return ""
}
// * A Google Container Engine deployment.
type ContainerEnginePod struct {
// * The pod definition.
KubePod *KubernetesPod `protobuf:"bytes,1,opt,name=kube_pod,json=kubePod" json:"kube_pod,omitempty"`
// * OAuth2 scopes that pods in this cluster require.
Scopes []string `protobuf:"bytes,2,rep,name=scopes" json:"scopes,omitempty"`
}
func (m *ContainerEnginePod) Reset() { *m = ContainerEnginePod{} }
func (m *ContainerEnginePod) String() string { return proto.CompactTextString(m) }
func (*ContainerEnginePod) ProtoMessage() {}
func (*ContainerEnginePod) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
func (m *ContainerEnginePod) GetKubePod() *KubernetesPod {
if m != nil {
return m.KubePod
}
return nil
}
func (m *ContainerEnginePod) GetScopes() []string {
if m != nil {
return m.Scopes
}
return nil
}
// *
// Describes a Kubernetes deployment, which is a collecton of Kubernetes pods.
//
// Currently built from:
// http://kubernetes.io/docs/api-reference/extensions/v1beta1/definitions
//
// Modelled after:
// - [v1.PodSpec]
// - [v1.PodTemplateSpec]
type KubernetesPod struct {
// *
// The name of this pod. It must be unique within its deployment.
//
// If empty, Kubernetes will automatically generate one.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
RestartPolicy KubernetesPod_RestartPolicy `protobuf:"varint,2,opt,name=restart_policy,json=restartPolicy,enum=deploy.KubernetesPod_RestartPolicy" json:"restart_policy,omitempty"`
// *
// The termination grace period. This will be truncated to seconds.
//
// If not specified, the Kubernetes default will be used (currently 30
// seconds).
TerminationGracePeriod *google_protobuf.Duration `protobuf:"bytes,3,opt,name=termination_grace_period,json=terminationGracePeriod" json:"termination_grace_period,omitempty"`
// *
// The activation deadline. This will be truncated to seconds.
//
// If not specified, the Kubernetes default will be used.
ActiveDeadline *google_protobuf.Duration `protobuf:"bytes,4,opt,name=active_deadline,json=activeDeadline" json:"active_deadline,omitempty"`
// * Containers in this Deployment.
Container []*KubernetesPod_Container `protobuf:"bytes,10,rep,name=container" json:"container,omitempty"`
// * Labels to apply to this pod.
Labels map[string]string `protobuf:"bytes,11,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// *
// Deployment configuration value for amount of non-crashing time before this
// pod is available.
MinReady *google_protobuf.Duration `protobuf:"bytes,12,opt,name=min_ready,json=minReady" json:"min_ready,omitempty"`
}
func (m *KubernetesPod) Reset() { *m = KubernetesPod{} }
func (m *KubernetesPod) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod) ProtoMessage() {}
func (*KubernetesPod) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
func (m *KubernetesPod) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *KubernetesPod) GetRestartPolicy() KubernetesPod_RestartPolicy {
if m != nil {
return m.RestartPolicy
}
return KubernetesPod_RESTART_ALWAYS
}
func (m *KubernetesPod) GetTerminationGracePeriod() *google_protobuf.Duration {
if m != nil {
return m.TerminationGracePeriod
}
return nil
}
func (m *KubernetesPod) GetActiveDeadline() *google_protobuf.Duration {
if m != nil {
return m.ActiveDeadline
}
return nil
}
func (m *KubernetesPod) GetContainer() []*KubernetesPod_Container {
if m != nil {
return m.Container
}
return nil
}
func (m *KubernetesPod) GetLabels() map[string]string {
if m != nil {
return m.Labels
}
return nil
}
func (m *KubernetesPod) GetMinReady() *google_protobuf.Duration {
if m != nil {
return m.MinReady
}
return nil
}
// *
// Describes a single Kubernetes container.
//
// Modelled after:
// - [v1.beta1.DeploymentSpec]
// - [v1.Container]
// - [v1.ObjectMeta]
type KubernetesPod_Container struct {
// *
// The name of this container. It must be unique within the deployment.
//
// If empty, Kubernetes will automatically generate one.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// * The Dockerfile that builds this pod.
//
// Types that are valid to be assigned to Dockerfile:
// *KubernetesPod_Container_Path
// *KubernetesPod_Container_Build
Dockerfile isKubernetesPod_Container_Dockerfile `protobuf_oneof:"dockerfile"`
Type KubernetesPod_Container_Type `protobuf:"varint,4,opt,name=type,enum=deploy.KubernetesPod_Container_Type" json:"type,omitempty"`
// *
// The entrypoint command array. If not specified, the Docker image's
// ENTRYPOINT will be used.
Command []string `protobuf:"bytes,10,rep,name=command" json:"command,omitempty"`
// *
// Entrypoint arguments. If not specified, the docker image's CMD will be
// used.
Args []string `protobuf:"bytes,11,rep,name=args" json:"args,omitempty"`
// *
// The container's working directory. If not specified, the runtime's
// default working directory will be used.
WorkingDir string `protobuf:"bytes,12,opt,name=working_dir,json=workingDir" json:"working_dir,omitempty"`
// * Container port forwarding setup.
Ports []*KubernetesPod_Container_ContainerPort `protobuf:"bytes,6,rep,name=ports" json:"ports,omitempty"`
// * Environment variables to set for the container.
Env map[string]string `protobuf:"bytes,13,rep,name=env" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// * The maximum amount of resources to use.
Limits *KubernetesPod_Container_Resources `protobuf:"bytes,14,opt,name=limits" json:"limits,omitempty"`
// * The requested amount of resources to use.
Requested *KubernetesPod_Container_Resources `protobuf:"bytes,15,opt,name=requested" json:"requested,omitempty"`
// * A periodic Probe for container liveness.
LivenessProbe *KubernetesPod_Container_Probe `protobuf:"bytes,16,opt,name=liveness_probe,json=livenessProbe" json:"liveness_probe,omitempty"`
// * A periodic Probe for container readiness.
ReadinessProbe *KubernetesPod_Container_Probe `protobuf:"bytes,17,opt,name=readiness_probe,json=readinessProbe" json:"readiness_probe,omitempty"`
// * Handler to execute immediately after the container has started.
PostStart *KubernetesPod_Container_Handler `protobuf:"bytes,18,opt,name=post_start,json=postStart" json:"post_start,omitempty"`
// * Handler to execute immediately before a container is terminated.
PreStop *KubernetesPod_Container_Handler `protobuf:"bytes,19,opt,name=pre_stop,json=preStop" json:"pre_stop,omitempty"`
}
func (m *KubernetesPod_Container) Reset() { *m = KubernetesPod_Container{} }
func (m *KubernetesPod_Container) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container) ProtoMessage() {}
func (*KubernetesPod_Container) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6, 0} }
type isKubernetesPod_Container_Dockerfile interface {
isKubernetesPod_Container_Dockerfile()
}
type KubernetesPod_Container_Path struct {
Path string `protobuf:"bytes,2,opt,name=path,oneof"`
}
type KubernetesPod_Container_Build struct {
Build *BuildPath `protobuf:"bytes,3,opt,name=build,oneof"`
}
func (*KubernetesPod_Container_Path) isKubernetesPod_Container_Dockerfile() {}
func (*KubernetesPod_Container_Build) isKubernetesPod_Container_Dockerfile() {}
func (m *KubernetesPod_Container) GetDockerfile() isKubernetesPod_Container_Dockerfile {
if m != nil {
return m.Dockerfile
}
return nil
}
func (m *KubernetesPod_Container) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *KubernetesPod_Container) GetPath() string {
if x, ok := m.GetDockerfile().(*KubernetesPod_Container_Path); ok {
return x.Path
}
return ""
}
func (m *KubernetesPod_Container) GetBuild() *BuildPath {
if x, ok := m.GetDockerfile().(*KubernetesPod_Container_Build); ok {
return x.Build
}
return nil
}
func (m *KubernetesPod_Container) GetType() KubernetesPod_Container_Type {
if m != nil {
return m.Type
}
return KubernetesPod_Container_GO
}
func (m *KubernetesPod_Container) GetCommand() []string {
if m != nil {
return m.Command
}
return nil
}
func (m *KubernetesPod_Container) GetArgs() []string {
if m != nil {
return m.Args
}
return nil
}
func (m *KubernetesPod_Container) GetWorkingDir() string {
if m != nil {
return m.WorkingDir
}
return ""
}
func (m *KubernetesPod_Container) GetPorts() []*KubernetesPod_Container_ContainerPort {
if m != nil {
return m.Ports
}
return nil
}
func (m *KubernetesPod_Container) GetEnv() map[string]string {
if m != nil {
return m.Env
}
return nil
}
func (m *KubernetesPod_Container) GetLimits() *KubernetesPod_Container_Resources {
if m != nil {
return m.Limits
}
return nil
}
func (m *KubernetesPod_Container) GetRequested() *KubernetesPod_Container_Resources {
if m != nil {
return m.Requested
}
return nil
}
func (m *KubernetesPod_Container) GetLivenessProbe() *KubernetesPod_Container_Probe {
if m != nil {
return m.LivenessProbe
}
return nil
}
func (m *KubernetesPod_Container) GetReadinessProbe() *KubernetesPod_Container_Probe {
if m != nil {
return m.ReadinessProbe
}
return nil
}
func (m *KubernetesPod_Container) GetPostStart() *KubernetesPod_Container_Handler {
if m != nil {
return m.PostStart
}
return nil
}
func (m *KubernetesPod_Container) GetPreStop() *KubernetesPod_Container_Handler {
if m != nil {
return m.PreStop
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package.
func (*KubernetesPod_Container) 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 _KubernetesPod_Container_OneofMarshaler, _KubernetesPod_Container_OneofUnmarshaler, _KubernetesPod_Container_OneofSizer, []interface{}{
(*KubernetesPod_Container_Path)(nil),
(*KubernetesPod_Container_Build)(nil),
}
}
func _KubernetesPod_Container_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
m := msg.(*KubernetesPod_Container)
// dockerfile
switch x := m.Dockerfile.(type) {
case *KubernetesPod_Container_Path:
b.EncodeVarint(2<<3 | proto.WireBytes)
b.EncodeStringBytes(x.Path)
case *KubernetesPod_Container_Build:
b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Build); err != nil {
return err
}
case nil:
default:
return fmt.Errorf("KubernetesPod_Container.Dockerfile has unexpected type %T", x)
}
return nil
}
func _KubernetesPod_Container_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*KubernetesPod_Container)
switch tag {
case 2: // dockerfile.path
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
x, err := b.DecodeStringBytes()
m.Dockerfile = &KubernetesPod_Container_Path{x}
return true, err
case 3: // dockerfile.build
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(BuildPath)
err := b.DecodeMessage(msg)
m.Dockerfile = &KubernetesPod_Container_Build{msg}
return true, err
default:
return false, nil
}
}
func _KubernetesPod_Container_OneofSizer(msg proto.Message) (n int) {
m := msg.(*KubernetesPod_Container)
// dockerfile
switch x := m.Dockerfile.(type) {
case *KubernetesPod_Container_Path:
n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(len(x.Path)))
n += len(x.Path)
case *KubernetesPod_Container_Build:
s := proto.Size(x.Build)
n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil:
default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
}
return n
}
type KubernetesPod_Container_ContainerPort struct {
// *
// Optional container port name. If supplied, must be unique within
// deployment.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// * The container port.
ContainerPort int32 `protobuf:"varint,2,opt,name=container_port,json=containerPort" json:"container_port,omitempty"`
// * The protocol to forward.
Protocol KubernetesPod_Container_ContainerPort_Protocol `protobuf:"varint,4,opt,name=protocol,enum=deploy.KubernetesPod_Container_ContainerPort_Protocol" json:"protocol,omitempty"`
}
func (m *KubernetesPod_Container_ContainerPort) Reset() { *m = KubernetesPod_Container_ContainerPort{} }
func (m *KubernetesPod_Container_ContainerPort) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_ContainerPort) ProtoMessage() {}
func (*KubernetesPod_Container_ContainerPort) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 0}
}
func (m *KubernetesPod_Container_ContainerPort) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *KubernetesPod_Container_ContainerPort) GetContainerPort() int32 {
if m != nil {
return m.ContainerPort
}
return 0
}
func (m *KubernetesPod_Container_ContainerPort) GetProtocol() KubernetesPod_Container_ContainerPort_Protocol {
if m != nil {
return m.Protocol
}
return KubernetesPod_Container_ContainerPort_TCP
}
// * Resources is a resource requirements specification.
type KubernetesPod_Container_Resources struct {
// * CPU resource requirements, between [0.0 and 100.0].
Cpu float32 `protobuf:"fixed32,1,opt,name=cpu" json:"cpu,omitempty"`
Memory *KubernetesPod_Container_Resources_Memory `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"`
}
func (m *KubernetesPod_Container_Resources) Reset() { *m = KubernetesPod_Container_Resources{} }
func (m *KubernetesPod_Container_Resources) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_Resources) ProtoMessage() {}
func (*KubernetesPod_Container_Resources) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 2}
}
func (m *KubernetesPod_Container_Resources) GetCpu() float32 {
if m != nil {
return m.Cpu
}
return 0
}
func (m *KubernetesPod_Container_Resources) GetMemory() *KubernetesPod_Container_Resources_Memory {
if m != nil {
return m.Memory
}
return nil
}
// * Memory spec.
type KubernetesPod_Container_Resources_Memory struct {
// * The unit of memory to specify.
Unit KubernetesPod_Container_Resources_Unit `protobuf:"varint,1,opt,name=unit,enum=deploy.KubernetesPod_Container_Resources_Unit" json:"unit,omitempty"`
// * The number of units.
Amount int32 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
}
func (m *KubernetesPod_Container_Resources_Memory) Reset() {
*m = KubernetesPod_Container_Resources_Memory{}
}
func (m *KubernetesPod_Container_Resources_Memory) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_Resources_Memory) ProtoMessage() {}
func (*KubernetesPod_Container_Resources_Memory) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 2, 0}
}
func (m *KubernetesPod_Container_Resources_Memory) GetUnit() KubernetesPod_Container_Resources_Unit {
if m != nil {
return m.Unit
}
return KubernetesPod_Container_Resources_BYTE
}
func (m *KubernetesPod_Container_Resources_Memory) GetAmount() int32 {
if m != nil {
return m.Amount
}
return 0
}
// *
// HTTP Get specification.
//
// Modelled after [v1.HTTPGetAction].
type KubernetesPod_Container_HttpGet struct {
// * The HTTP path to access.
Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
// * The port to GET from.
Port int32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
// * The hostname to connect to. Defaults to pod IP.
Host string `protobuf:"bytes,3,opt,name=host" json:"host,omitempty"`
// * Scheme to use. Defaults to HTTP.
Scheme string `protobuf:"bytes,4,opt,name=scheme" json:"scheme,omitempty"`
Headers []*KubernetesPod_Container_HttpGet_Header `protobuf:"bytes,5,rep,name=headers" json:"headers,omitempty"`
}
func (m *KubernetesPod_Container_HttpGet) Reset() { *m = KubernetesPod_Container_HttpGet{} }
func (m *KubernetesPod_Container_HttpGet) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_HttpGet) ProtoMessage() {}
func (*KubernetesPod_Container_HttpGet) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 3}
}
func (m *KubernetesPod_Container_HttpGet) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *KubernetesPod_Container_HttpGet) GetPort() int32 {
if m != nil {
return m.Port
}
return 0
}
func (m *KubernetesPod_Container_HttpGet) GetHost() string {
if m != nil {
return m.Host
}
return ""
}
func (m *KubernetesPod_Container_HttpGet) GetScheme() string {
if m != nil {
return m.Scheme
}
return ""
}
func (m *KubernetesPod_Container_HttpGet) GetHeaders() []*KubernetesPod_Container_HttpGet_Header {
if m != nil {
return m.Headers
}
return nil
}
// *
// Custom HTTP headers. Repeated headers are allowed.
//
// Modelled after [v1.HTTPHeader].
type KubernetesPod_Container_HttpGet_Header struct {
// * The HTTP header name.
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
// * The HTTP header value.
Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}
func (m *KubernetesPod_Container_HttpGet_Header) Reset() {
*m = KubernetesPod_Container_HttpGet_Header{}
}
func (m *KubernetesPod_Container_HttpGet_Header) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_HttpGet_Header) ProtoMessage() {}
func (*KubernetesPod_Container_HttpGet_Header) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 3, 0}
}
func (m *KubernetesPod_Container_HttpGet_Header) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *KubernetesPod_Container_HttpGet_Header) GetValue() string {
if m != nil {
return m.Value
}
return ""
}
// *
// Probe defines a Kubernetes probe type.
//
// Modelled after [v1.Probe].
type KubernetesPod_Container_Probe struct {
// * Command to execute, exit status 0 is healthy, non-zero is not.
Exec []string `protobuf:"bytes,1,rep,name=exec" json:"exec,omitempty"`
// * Get status from HTTP.
HttpGet *KubernetesPod_Container_HttpGet `protobuf:"bytes,2,opt,name=http_get,json=httpGet" json:"http_get,omitempty"`
InitialDelay *google_protobuf.Duration `protobuf:"bytes,3,opt,name=initial_delay,json=initialDelay" json:"initial_delay,omitempty"`
Timeout *google_protobuf.Duration `protobuf:"bytes,4,opt,name=timeout" json:"timeout,omitempty"`
Period *google_protobuf.Duration `protobuf:"bytes,5,opt,name=period" json:"period,omitempty"`
// * Minimum number of consecutive successes to count as success.
SuccessThreshold int32 `protobuf:"varint,6,opt,name=success_threshold,json=successThreshold" json:"success_threshold,omitempty"`
// * Minimum number of consecutive failures to count as failure.
FailureThreshold int32 `protobuf:"varint,7,opt,name=failure_threshold,json=failureThreshold" json:"failure_threshold,omitempty"`
}
func (m *KubernetesPod_Container_Probe) Reset() { *m = KubernetesPod_Container_Probe{} }
func (m *KubernetesPod_Container_Probe) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_Probe) ProtoMessage() {}
func (*KubernetesPod_Container_Probe) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 4}
}
func (m *KubernetesPod_Container_Probe) GetExec() []string {
if m != nil {
return m.Exec
}
return nil
}
func (m *KubernetesPod_Container_Probe) GetHttpGet() *KubernetesPod_Container_HttpGet {
if m != nil {
return m.HttpGet
}
return nil
}
func (m *KubernetesPod_Container_Probe) GetInitialDelay() *google_protobuf.Duration {
if m != nil {
return m.InitialDelay
}
return nil
}
func (m *KubernetesPod_Container_Probe) GetTimeout() *google_protobuf.Duration {
if m != nil {
return m.Timeout
}
return nil
}
func (m *KubernetesPod_Container_Probe) GetPeriod() *google_protobuf.Duration {
if m != nil {
return m.Period
}
return nil
}
func (m *KubernetesPod_Container_Probe) GetSuccessThreshold() int32 {
if m != nil {
return m.SuccessThreshold
}
return 0
}
func (m *KubernetesPod_Container_Probe) GetFailureThreshold() int32 {
if m != nil {
return m.FailureThreshold
}
return 0
}
// *
// A handler.
//
// Modelled after [v1.Handler].
type KubernetesPod_Container_Handler struct {
// * Command to execute inside the container.
ExecCommand []string `protobuf:"bytes,1,rep,name=exec_command,json=execCommand" json:"exec_command,omitempty"`
// * Handler defines an HTTP Get action.
HttpGet *KubernetesPod_Container_HttpGet `protobuf:"bytes,2,opt,name=http_get,json=httpGet" json:"http_get,omitempty"`
}
func (m *KubernetesPod_Container_Handler) Reset() { *m = KubernetesPod_Container_Handler{} }
func (m *KubernetesPod_Container_Handler) String() string { return proto.CompactTextString(m) }
func (*KubernetesPod_Container_Handler) ProtoMessage() {}
func (*KubernetesPod_Container_Handler) Descriptor() ([]byte, []int) {
return fileDescriptor1, []int{6, 0, 5}
}
func (m *KubernetesPod_Container_Handler) GetExecCommand() []string {
if m != nil {
return m.ExecCommand
}
return nil
}
func (m *KubernetesPod_Container_Handler) GetHttpGet() *KubernetesPod_Container_HttpGet {
if m != nil {
return m.HttpGet
}
return nil
}
func init() {
proto.RegisterType((*Component)(nil), "deploy.Component")
proto.RegisterType((*Component_Build)(nil), "deploy.Component.Build")
proto.RegisterType((*Component_Build_PythonScript)(nil), "deploy.Component.Build.PythonScript")
proto.RegisterType((*BuildPath)(nil), "deploy.BuildPath")
proto.RegisterType((*Duration)(nil), "deploy.Duration")
proto.RegisterType((*AppEngineModule)(nil), "deploy.AppEngineModule")
proto.RegisterType((*AppEngineModule_GoModule)(nil), "deploy.AppEngineModule.GoModule")
proto.RegisterType((*AppEngineModule_StaticModule)(nil), "deploy.AppEngineModule.StaticModule")
proto.RegisterType((*AppEngineModule_ClassicParams)(nil), "deploy.AppEngineModule.ClassicParams")
proto.RegisterType((*AppEngineModule_ClassicParams_AutomaticScaling)(nil), "deploy.AppEngineModule.ClassicParams.AutomaticScaling")
proto.RegisterType((*AppEngineModule_ClassicParams_BasicScaling)(nil), "deploy.AppEngineModule.ClassicParams.BasicScaling")
proto.RegisterType((*AppEngineModule_ClassicParams_ManualScaling)(nil), "deploy.AppEngineModule.ClassicParams.ManualScaling")
proto.RegisterType((*AppEngineModule_ManagedVmParams)(nil), "deploy.AppEngineModule.ManagedVmParams")
proto.RegisterType((*AppEngineModule_Handler)(nil), "deploy.AppEngineModule.Handler")
proto.RegisterType((*AppEngineModule_Handler_StaticFiles)(nil), "deploy.AppEngineModule.Handler.StaticFiles")
proto.RegisterType((*AppEngineModule_HandlerSet)(nil), "deploy.AppEngineModule.HandlerSet")
proto.RegisterType((*AppEngineResources)(nil), "deploy.AppEngineResources")
proto.RegisterType((*AppEngineResources_Index)(nil), "deploy.AppEngineResources.Index")
proto.RegisterType((*AppEngineResources_Index_Property)(nil), "deploy.AppEngineResources.Index.Property")
proto.RegisterType((*AppEngineResources_TaskQueue)(nil), "deploy.AppEngineResources.TaskQueue")
proto.RegisterType((*AppEngineResources_TaskQueue_Push)(nil), "deploy.AppEngineResources.TaskQueue.Push")
proto.RegisterType((*AppEngineResources_Cron)(nil), "deploy.AppEngineResources.Cron")
proto.RegisterType((*ContainerEnginePod)(nil), "deploy.ContainerEnginePod")
proto.RegisterType((*KubernetesPod)(nil), "deploy.KubernetesPod")
proto.RegisterType((*KubernetesPod_Container)(nil), "deploy.KubernetesPod.Container")
proto.RegisterType((*KubernetesPod_Container_ContainerPort)(nil), "deploy.KubernetesPod.Container.ContainerPort")
proto.RegisterType((*KubernetesPod_Container_Resources)(nil), "deploy.KubernetesPod.Container.Resources")
proto.RegisterType((*KubernetesPod_Container_Resources_Memory)(nil), "deploy.KubernetesPod.Container.Resources.Memory")
proto.RegisterType((*KubernetesPod_Container_HttpGet)(nil), "deploy.KubernetesPod.Container.HttpGet")
proto.RegisterType((*KubernetesPod_Container_HttpGet_Header)(nil), "deploy.KubernetesPod.Container.HttpGet.Header")
proto.RegisterType((*KubernetesPod_Container_Probe)(nil), "deploy.KubernetesPod.Container.Probe")
proto.RegisterType((*KubernetesPod_Container_Handler)(nil), "deploy.KubernetesPod.Container.Handler")
proto.RegisterEnum("deploy.Duration_Unit", Duration_Unit_name, Duration_Unit_value)
proto.RegisterEnum("deploy.AppEngineModule_ClassicParams_InstanceClass", AppEngineModule_ClassicParams_InstanceClass_name, AppEngineModule_ClassicParams_InstanceClass_value)
proto.RegisterEnum("deploy.AppEngineModule_Handler_LoginOption", AppEngineModule_Handler_LoginOption_name, AppEngineModule_Handler_LoginOption_value)
proto.RegisterEnum("deploy.AppEngineModule_Handler_SecureOption", AppEngineModule_Handler_SecureOption_name, AppEngineModule_Handler_SecureOption_value)
proto.RegisterEnum("deploy.AppEngineResources_Index_Direction", AppEngineResources_Index_Direction_name, AppEngineResources_Index_Direction_value)
proto.RegisterEnum("deploy.KubernetesPod_RestartPolicy", KubernetesPod_RestartPolicy_name, KubernetesPod_RestartPolicy_value)
proto.RegisterEnum("deploy.KubernetesPod_Container_Type", KubernetesPod_Container_Type_name, KubernetesPod_Container_Type_value)
proto.RegisterEnum("deploy.KubernetesPod_Container_ContainerPort_Protocol", KubernetesPod_Container_ContainerPort_Protocol_name, KubernetesPod_Container_ContainerPort_Protocol_value)
proto.RegisterEnum("deploy.KubernetesPod_Container_Resources_Unit", KubernetesPod_Container_Resources_Unit_name, KubernetesPod_Container_Resources_Unit_value)
}
func init() {
proto.RegisterFile("github.com/luci/luci-go/deploytool/api/deploy/component.proto", fileDescriptor1)
}
var fileDescriptor1 = []byte{
// 2746 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x8f, 0x1b, 0xc7,
0xf1, 0xe7, 0x9b, 0x9c, 0xe2, 0x63, 0x67, 0x5b, 0xd2, 0x8a, 0x1e, 0xf8, 0xff, 0xf7, 0x9a, 0xb6,
0x63, 0xc9, 0xb6, 0xb8, 0xf6, 0x2a, 0x11, 0x24, 0x03, 0xb6, 0x43, 0x2e, 0xa9, 0x25, 0xa3, 0x7d,
0xd0, 0x4d, 0xae, 0x63, 0x05, 0x41, 0x06, 0xcd, 0x99, 0x16, 0x39, 0xd8, 0x79, 0x79, 0x1e, 0xca,
0xd2, 0x5f, 0x20, 0x08, 0x72, 0xcd, 0x2d, 0xc7, 0xdc, 0x72, 0x0c, 0x10, 0x04, 0xc8, 0xe3, 0x0b,
0xe4, 0x9c, 0x5b, 0x4e, 0xf9, 0x0c, 0xf9, 0x02, 0x41, 0x3f, 0x66, 0x48, 0xae, 0x96, 0xda, 0x15,
0x90, 0xcb, 0xa0, 0xab, 0xba, 0x7e, 0xbf, 0xee, 0xa9, 0xae, 0xee, 0xaa, 0x6e, 0xf8, 0x62, 0x66,
0x45, 0xf3, 0x78, 0xda, 0x36, 0x3c, 0x67, 0xcf, 0x8e, 0x0d, 0x8b, 0x7f, 0x1e, 0xcc, 0xbc, 0x3d,
0x93, 0xfa, 0xb6, 0xb7, 0x88, 0x3c, 0xcf, 0xde, 0x23, 0xbe, 0x25, 0xc5, 0x3d, 0xc3, 0x73, 0x7c,
0xcf, 0xa5, 0x6e, 0xd4, 0xf6, 0x03, 0x2f, 0xf2, 0x50, 0x49, 0xe8, 0xb5, 0xff, 0x9f, 0x79, 0xde,
0xcc, 0xa6, 0x7b, 0x5c, 0x3b, 0x8d, 0x5f, 0xec, 0x99, 0x71, 0x40, 0x22, 0xcb, 0x73, 0x85, 0x5d,
0xeb, 0xf7, 0x79, 0x50, 0x0e, 0x12, 0x2c, 0x7a, 0x00, 0xc5, 0x69, 0x6c, 0xd9, 0x66, 0x33, 0xbb,
0x9b, 0xbf, 0x57, 0xdd, 0xbf, 0xdb, 0x16, 0x2c, 0xed, 0xd4, 0xa2, 0xdd, 0x65, 0xdd, 0x58, 0x58,
0xa1, 0xff, 0x03, 0xe0, 0x0d, 0xdd, 0x27, 0xd1, 0xbc, 0x99, 0xdb, 0xcd, 0xdf, 0x53, 0xb0, 0xc2,
0x35, 0x23, 0x12, 0xcd, 0x51, 0x0f, 0x54, 0xe2, 0xfb, 0xd4, 0x9d, 0x59, 0x2e, 0xd5, 0x1d, 0xcf,
0x8c, 0x6d, 0xda, 0x84, 0xdd, 0xec, 0x2a, 0x71, 0xc7, 0xf7, 0xfb, 0xbc, 0xff, 0x98, 0x77, 0x0f,
0x32, 0x78, 0x2b, 0x85, 0x08, 0x15, 0xfa, 0x11, 0x94, 0x67, 0xe7, 0x54, 0xf7, 0x3d, 0xb3, 0x59,
0xe5, 0x60, 0x6d, 0x39, 0x2b, 0x37, 0x22, 0x96, 0x4b, 0x03, 0x41, 0x31, 0xf2, 0xcc, 0x41, 0x06,
0x97, 0x66, 0xe7, 0xac, 0xa5, 0xfd, 0x3d, 0x0b, 0x45, 0x3e, 0x59, 0x74, 0x17, 0xca, 0xa6, 0x15,
0xe8, 0xe7, 0x74, 0xd1, 0xcc, 0xee, 0x66, 0xef, 0x29, 0xb8, 0x64, 0x5a, 0xc1, 0x33, 0xba, 0x40,
0xcf, 0xa0, 0xee, 0x2f, 0xa2, 0xb9, 0xe7, 0xea, 0xa1, 0x11, 0x58, 0x7e, 0xd4, 0xcc, 0x71, 0xfe,
0xf7, 0x37, 0xfc, 0x75, 0x7b, 0xc4, 0x8d, 0xc7, 0xdc, 0x76, 0x90, 0xc1, 0x35, 0x7f, 0x45, 0xd6,
0x3a, 0x50, 0x5b, 0xed, 0x47, 0x08, 0x0a, 0xdc, 0x2b, 0x62, 0x48, 0xde, 0x66, 0xfe, 0xa2, 0x17,
0x51, 0x40, 0x74, 0x12, 0xcc, 0xc2, 0xc4, 0x5f, 0x5c, 0xd3, 0x09, 0x66, 0x61, 0xb7, 0x0a, 0x8a,
0xe7, 0x53, 0xb1, 0x3c, 0x4c, 0x48, 0xd7, 0xb4, 0xf5, 0x18, 0x94, 0x6e, 0xea, 0xd6, 0x8d, 0xff,
0x93, 0x0c, 0x99, 0x5b, 0x0e, 0xd9, 0xfa, 0x4b, 0x16, 0x2a, 0x3d, 0xb9, 0xe4, 0xe8, 0x36, 0x14,
0x5f, 0x12, 0x3b, 0xa6, 0x1c, 0x57, 0xc7, 0x42, 0x40, 0xf7, 0xa1, 0x10, 0xbb, 0x96, 0xf8, 0xfb,
0xc6, 0xfe, 0x9d, 0xe4, 0xef, 0x13, 0x54, 0xfb, 0xcc, 0xb5, 0x22, 0xcc, 0x4d, 0xd0, 0xfb, 0x50,
0xf0, 0xed, 0x38, 0x6c, 0xe6, 0x79, 0x78, 0xa8, 0x97, 0x4d, 0x31, 0xef, 0x6d, 0x1d, 0x42, 0x81,
0x61, 0x90, 0x0a, 0xb5, 0xe3, 0xe1, 0xd1, 0xd1, 0x70, 0xdc, 0x3f, 0x38, 0x3d, 0xe9, 0x8d, 0xd5,
0x0c, 0xaa, 0x42, 0x39, 0x11, 0xb2, 0x4c, 0x38, 0x1e, 0x9e, 0x9c, 0x4d, 0xfa, 0x63, 0x35, 0x87,
0x14, 0x28, 0x0e, 0x4e, 0xcf, 0xf0, 0x58, 0xcd, 0xa3, 0x0a, 0x14, 0x7a, 0x9d, 0xe7, 0x63, 0xb5,
0xd0, 0xfa, 0x27, 0x82, 0xad, 0x4b, 0x11, 0x82, 0xde, 0x81, 0xaa, 0x08, 0x25, 0xdd, 0x25, 0x0e,
0x95, 0x1e, 0x00, 0xa1, 0x3a, 0x21, 0x0e, 0x45, 0x5f, 0x81, 0x32, 0xf3, 0x92, 0x70, 0x13, 0x2b,
0xba, 0xbb, 0x21, 0xdc, 0xda, 0x87, 0x5e, 0x1a, 0x77, 0x95, 0x99, 0x6c, 0xb3, 0xb0, 0x08, 0x23,
0x12, 0x59, 0x46, 0x42, 0x92, 0x5f, 0x0f, 0x8b, 0xcb, 0x24, 0x63, 0x6e, 0x9c, 0x12, 0xd5, 0xc2,
0x15, 0x19, 0x75, 0xa0, 0x6c, 0xd8, 0x24, 0x0c, 0x2d, 0x43, 0x86, 0xfe, 0x07, 0x9b, 0x68, 0x0e,
0x84, 0xd9, 0x88, 0x04, 0xc4, 0x09, 0x07, 0x59, 0x9c, 0xe0, 0xd0, 0x00, 0xc0, 0x21, 0x2e, 0x99,
0x51, 0x53, 0x7f, 0xe9, 0xc8, 0x3d, 0xf0, 0xe1, 0x26, 0x96, 0x63, 0x61, 0xf9, 0x8d, 0x93, 0xf2,
0x28, 0x4e, 0xa2, 0x42, 0x5f, 0x42, 0x65, 0x4e, 0x5c, 0xd3, 0xa6, 0x41, 0xd8, 0xbc, 0xcd, 0x79,
0x5a, 0x9b, 0x78, 0x06, 0xc2, 0x6e, 0x4c, 0x23, 0x9c, 0x62, 0xd0, 0xbb, 0x50, 0x93, 0x6d, 0xb1,
0xe3, 0xef, 0xf0, 0x08, 0xae, 0x4a, 0x1d, 0x0f, 0xce, 0xc7, 0xa0, 0x04, 0x34, 0xf4, 0xe2, 0xc0,
0xa0, 0x61, 0x73, 0x67, 0x7d, 0xbf, 0xa6, 0x63, 0xe0, 0xc4, 0x02, 0x2f, 0x8d, 0xd1, 0x7b, 0x50,
0x4f, 0x04, 0xc1, 0x7e, 0x97, 0xb3, 0xd7, 0x12, 0x25, 0xa7, 0xff, 0x01, 0x6c, 0x59, 0xae, 0x49,
0x2f, 0xf4, 0x05, 0x71, 0x6c, 0x61, 0xd6, 0xe4, 0x11, 0x50, 0xe7, 0xea, 0xe7, 0xc4, 0xb1, 0x99,
0x9d, 0xb6, 0x07, 0x95, 0x64, 0x6d, 0x19, 0x31, 0x75, 0xa3, 0x60, 0xa1, 0xfb, 0xc4, 0x38, 0x27,
0xb3, 0x24, 0x66, 0x6a, 0x5c, 0x39, 0x12, 0x3a, 0xad, 0x01, 0xb5, 0xd5, 0x75, 0xd4, 0xfe, 0x58,
0x86, 0xfa, 0xda, 0x8a, 0xa0, 0x9f, 0x41, 0xc3, 0x72, 0xc3, 0x88, 0xb8, 0x06, 0xd5, 0xf9, 0xd2,
0x70, 0x9e, 0xc6, 0xfe, 0xc3, 0x1b, 0x2d, 0x68, 0x7b, 0x28, 0xb1, 0x5c, 0xcb, 0xa6, 0xbb, 0x22,
0x22, 0x0a, 0xdb, 0x24, 0x8e, 0x3c, 0x87, 0x47, 0x5d, 0x68, 0x10, 0xdb, 0x72, 0x67, 0x32, 0x5e,
0x1e, 0xdd, 0x8c, 0xbe, 0x93, 0xc0, 0xc7, 0x02, 0x3d, 0xc8, 0x60, 0x95, 0x5c, 0xd2, 0xa1, 0xe7,
0x50, 0x9f, 0x92, 0x70, 0x65, 0x08, 0x11, 0x4c, 0xfb, 0x37, 0x1b, 0xa2, 0xcb, 0xa0, 0x4b, 0xfa,
0xda, 0x74, 0x45, 0x46, 0x3f, 0x87, 0x86, 0x43, 0xdc, 0x98, 0xd8, 0x29, 0x77, 0x8d, 0x73, 0xdf,
0xd0, 0x3b, 0xc7, 0x1c, 0xbb, 0x24, 0xaf, 0x3b, 0xab, 0x0a, 0xed, 0x0f, 0x39, 0x50, 0x2f, 0xff,
0x21, 0xfa, 0x04, 0x90, 0x63, 0xb9, 0xba, 0x65, 0xda, 0x54, 0x4f, 0xdc, 0x19, 0xca, 0xa3, 0x4d,
0x75, 0x2c, 0x77, 0x68, 0xda, 0x34, 0xf1, 0x7a, 0xc8, 0xad, 0xc9, 0xc5, 0x65, 0xeb, 0x9c, 0xb4,
0x26, 0x17, 0xeb, 0xd6, 0x3f, 0x86, 0x5b, 0x8c, 0xdb, 0xa7, 0xae, 0x69, 0xb9, 0x33, 0xdd, 0x26,
0x11, 0x75, 0x8d, 0x85, 0x3c, 0x09, 0x5e, 0x3d, 0xf7, 0xb6, 0x1d, 0xcb, 0x1d, 0x09, 0xdb, 0x23,
0x61, 0xca, 0x19, 0xc8, 0xc5, 0x2b, 0x0c, 0x85, 0x8d, 0x0c, 0xe4, 0xe2, 0x12, 0xc3, 0x23, 0xb8,
0xcb, 0x18, 0x0c, 0xcf, 0x35, 0xe2, 0x20, 0xa0, 0x6e, 0xa4, 0x07, 0xf4, 0xbb, 0x98, 0x86, 0x51,
0xd8, 0x2c, 0xf2, 0x69, 0xdf, 0x71, 0xc8, 0xc5, 0x41, 0xda, 0x8b, 0x65, 0xa7, 0x36, 0x87, 0xda,
0xea, 0x52, 0xa1, 0x87, 0x50, 0xe3, 0x7f, 0x1d, 0x59, 0x0e, 0xf5, 0xe2, 0x88, 0x7b, 0xe8, 0xaa,
0x29, 0x54, 0x99, 0xd5, 0x44, 0x18, 0xb1, 0x4d, 0xc3, 0xdd, 0x75, 0xc9, 0x53, 0x35, 0xe6, 0xa9,
0x44, 0xa7, 0x3d, 0x80, 0xfa, 0xda, 0xc2, 0xa1, 0xb7, 0x41, 0xb9, 0xbc, 0x12, 0x4b, 0x45, 0x6b,
0x02, 0xf5, 0xb5, 0x5d, 0x80, 0x1a, 0x00, 0xc3, 0x03, 0xbd, 0xd7, 0x7f, 0xda, 0x39, 0x3b, 0x9a,
0xa8, 0x19, 0x76, 0xf2, 0x0f, 0x0f, 0xf4, 0xcf, 0xd4, 0xac, 0x6c, 0xed, 0xab, 0x39, 0xd9, 0xfa,
0xa1, 0x9a, 0x67, 0xf9, 0x82, 0xb5, 0xf4, 0xcf, 0x0e, 0xd5, 0x82, 0x54, 0x3f, 0x56, 0x8b, 0x5d,
0x05, 0xca, 0x32, 0xe4, 0xb4, 0xfb, 0xb0, 0x75, 0xe9, 0xfc, 0x43, 0x3b, 0x50, 0x0a, 0x0d, 0xcf,
0xe7, 0xd3, 0x61, 0xc7, 0x89, 0x94, 0xb4, 0xdf, 0x15, 0xa1, 0x2c, 0xcf, 0x38, 0xa4, 0x42, 0x3e,
0x0e, 0x6c, 0x79, 0x2c, 0xb0, 0x26, 0xea, 0x40, 0xd1, 0xf6, 0x66, 0x96, 0x2b, 0x73, 0xe2, 0xc7,
0xd7, 0x9c, 0x92, 0xed, 0x23, 0x66, 0x7c, 0xea, 0x73, 0x37, 0x0a, 0x24, 0xea, 0x41, 0x29, 0xa4,
0x46, 0x1c, 0x88, 0xf4, 0xd1, 0xd8, 0xff, 0xe4, 0x3a, 0x8e, 0x31, 0xb7, 0x96, 0x24, 0x12, 0x8b,
0x9a, 0x6c, 0xfa, 0xbc, 0x36, 0x61, 0x81, 0xa3, 0xb0, 0xfa, 0x46, 0xc8, 0x68, 0x04, 0x32, 0xd1,
0xe8, 0x2f, 0x2c, 0x9b, 0x8a, 0x90, 0xa8, 0x5e, 0x3f, 0x53, 0x71, 0xc8, 0x3d, 0x65, 0x90, 0x41,
0x06, 0x57, 0xc3, 0xa5, 0x88, 0xde, 0x01, 0x90, 0x8c, 0xa6, 0x15, 0x34, 0x4b, 0x72, 0x3c, 0x45,
0xe8, 0x7a, 0x56, 0x80, 0xbe, 0x00, 0x55, 0x1a, 0x88, 0xaa, 0x8f, 0x99, 0x95, 0xf9, 0xb0, 0xdb,
0xc9, 0xb0, 0x69, 0x95, 0x32, 0xc8, 0xe0, 0x86, 0x30, 0xe6, 0xaa, 0x9e, 0x15, 0x68, 0xbf, 0xc9,
0x42, 0x75, 0x65, 0x78, 0x74, 0x7b, 0xb5, 0x42, 0x1a, 0x64, 0x64, 0x8d, 0x74, 0x3f, 0x29, 0x41,
0x73, 0x9b, 0x99, 0x65, 0xf9, 0xb9, 0x03, 0xa5, 0xd8, 0xb7, 0x3d, 0x62, 0x72, 0x17, 0x2b, 0x58,
0x4a, 0xac, 0x40, 0x8a, 0x03, 0x5b, 0x77, 0x88, 0x2f, 0xbc, 0x86, 0x4b, 0x71, 0x60, 0x1f, 0x13,
0xbf, 0x0b, 0x50, 0x99, 0x92, 0x90, 0xb2, 0x89, 0xb7, 0x9e, 0x42, 0x75, 0x65, 0xd5, 0x10, 0x82,
0xc6, 0xd1, 0xe9, 0xe1, 0xf0, 0x44, 0x3f, 0x1d, 0x4d, 0x86, 0xa7, 0x27, 0x9d, 0x23, 0x35, 0xb3,
0xd4, 0xe1, 0xfe, 0xd7, 0x67, 0x43, 0xdc, 0xef, 0xa9, 0x59, 0xb4, 0x05, 0x55, 0xa1, 0xeb, 0xf4,
0x8e, 0x87, 0x27, 0x6a, 0xae, 0x35, 0x80, 0xda, 0xea, 0xca, 0xa1, 0x6d, 0xa8, 0x8f, 0xfb, 0x07,
0x67, 0xb8, 0xaf, 0x77, 0x8e, 0x7e, 0xca, 0xca, 0x98, 0x0c, 0xba, 0x05, 0x5b, 0x52, 0x95, 0x92,
0x67, 0x59, 0x71, 0x24, 0x95, 0x27, 0xfd, 0x6f, 0xfa, 0x58, 0xcd, 0xb1, 0x40, 0x36, 0x3c, 0x37,
0xa2, 0x6e, 0xa4, 0x1d, 0x02, 0x2c, 0x13, 0x30, 0x7a, 0x02, 0x65, 0x99, 0x62, 0x65, 0x5d, 0xfe,
0xce, 0x35, 0xab, 0x8c, 0x13, 0x7b, 0xc6, 0x19, 0xc4, 0x2e, 0xdb, 0xf9, 0xdd, 0x0a, 0x94, 0x7c,
0xbe, 0x27, 0x5a, 0xbf, 0xae, 0x00, 0x7a, 0x35, 0x17, 0xa3, 0x47, 0x50, 0xe4, 0x49, 0x54, 0x0e,
0xb2, 0xbb, 0x39, 0x6d, 0xb7, 0x87, 0xcc, 0x0e, 0x0b, 0x73, 0xa4, 0x41, 0xc5, 0xb4, 0x42, 0x9f,
0x44, 0x46, 0x72, 0x07, 0x48, 0x65, 0x74, 0x00, 0x10, 0x91, 0xf0, 0x5c, 0xff, 0x2e, 0xa6, 0x31,
0x95, 0x65, 0xe3, 0xfb, 0xaf, 0x21, 0x9e, 0x90, 0xf0, 0xfc, 0x6b, 0x66, 0x8b, 0x95, 0x28, 0x69,
0xa2, 0x87, 0x50, 0x30, 0x02, 0xcf, 0x6d, 0x16, 0x36, 0xfc, 0xfc, 0x12, 0x7e, 0x10, 0xb0, 0x22,
0x94, 0x19, 0x6b, 0xbf, 0xcd, 0x41, 0x91, 0x4f, 0x93, 0x95, 0xc5, 0xe7, 0x96, 0x6b, 0x26, 0x95,
0x38, 0x6b, 0xa3, 0x3e, 0x54, 0xfc, 0x80, 0x15, 0xdb, 0xd1, 0x82, 0xcf, 0xb9, 0xba, 0x7f, 0xff,
0xba, 0xdf, 0x6d, 0x8f, 0x24, 0x00, 0xa7, 0x50, 0xf6, 0xeb, 0xfc, 0x68, 0x8b, 0xbc, 0x80, 0x87,
0x5a, 0x05, 0xa7, 0xb2, 0x36, 0x87, 0x4a, 0x82, 0x60, 0x53, 0x58, 0xa9, 0x56, 0x79, 0x1b, 0x0d,
0x40, 0x31, 0xad, 0x80, 0x1a, 0x2c, 0x6a, 0xe4, 0x39, 0xf3, 0xd1, 0xb5, 0x73, 0xe8, 0x25, 0x08,
0xbc, 0x04, 0xb7, 0x3e, 0x02, 0x25, 0xd5, 0xa3, 0x3a, 0x28, 0x9d, 0xf1, 0x41, 0xff, 0xa4, 0x37,
0x3c, 0x39, 0x54, 0x33, 0xec, 0x88, 0xed, 0xf5, 0x53, 0x39, 0xab, 0xfd, 0x29, 0x0f, 0x4a, 0xea,
0xe4, 0x2b, 0xe7, 0xf5, 0x15, 0x14, 0xfc, 0x38, 0x9c, 0xcb, 0xfd, 0x77, 0xff, 0x26, 0x8b, 0xd5,
0x1e, 0xc5, 0xe1, 0x9c, 0xef, 0xe0, 0x38, 0x9c, 0x6b, 0xff, 0xc8, 0x41, 0x81, 0x29, 0x18, 0x7b,
0x40, 0xa2, 0x94, 0x9d, 0xb5, 0x59, 0xf9, 0x3e, 0x8d, 0x8d, 0x73, 0x1a, 0xe9, 0xa1, 0xf5, 0xbd,
0xa8, 0xcf, 0x8b, 0x18, 0x84, 0x6a, 0x6c, 0x7d, 0x4f, 0xd1, 0x1e, 0xdc, 0x0e, 0x28, 0xab, 0xd6,
0x78, 0xdc, 0x90, 0x19, 0xd5, 0x6d, 0xcb, 0xb1, 0x22, 0xb9, 0xc5, 0xb7, 0x79, 0x1f, 0x1b, 0xb8,
0x33, 0xa3, 0x47, 0xac, 0x03, 0x3d, 0x81, 0xb7, 0x04, 0x80, 0x25, 0xec, 0x29, 0x31, 0xce, 0xbd,
0x17, 0x2f, 0xf4, 0x90, 0x1a, 0x9e, 0x6b, 0x86, 0x7c, 0x51, 0x8a, 0x78, 0x87, 0x1b, 0x1c, 0x5b,
0x6e, 0x57, 0x74, 0x8f, 0x45, 0xef, 0x0a, 0x94, 0x5c, 0xbc, 0x02, 0x2d, 0xae, 0x42, 0xc9, 0xc5,
0x25, 0x68, 0x1b, 0x6e, 0x2d, 0xa1, 0xa6, 0x17, 0x4f, 0x59, 0x02, 0x0a, 0xf9, 0xa9, 0x59, 0x94,
0xb3, 0x3c, 0x26, 0x17, 0xbd, 0xa4, 0xe3, 0x75, 0xc9, 0xbc, 0xcc, 0x31, 0x57, 0x27, 0xf3, 0x6e,
0x09, 0x0a, 0xd1, 0xc2, 0xa7, 0xda, 0x37, 0x50, 0x60, 0xc1, 0x7d, 0x45, 0xae, 0xda, 0x85, 0xaa,
0x49, 0x45, 0x52, 0x48, 0x22, 0x49, 0xc1, 0xab, 0x2a, 0x16, 0xa5, 0xa1, 0x31, 0xa7, 0xe9, 0x5d,
0x46, 0xc1, 0xa9, 0xdc, 0xfa, 0x05, 0xa0, 0x57, 0xaf, 0xd1, 0xe8, 0x53, 0xa8, 0x9c, 0xc7, 0x53,
0x71, 0xe9, 0x16, 0xe5, 0x42, 0x7a, 0x2d, 0x7c, 0x16, 0x4f, 0x69, 0xe0, 0xd2, 0x88, 0x86, 0x23,
0xcf, 0xc4, 0x65, 0x66, 0xc6, 0x10, 0xcb, 0x3c, 0x9b, 0x5b, 0xcd, 0xb3, 0xad, 0xbf, 0xde, 0x81,
0xfa, 0x1a, 0xe4, 0xca, 0x98, 0xfb, 0x09, 0x34, 0x02, 0x1a, 0x46, 0x24, 0x88, 0x74, 0xdf, 0xb3,
0x2d, 0x63, 0x21, 0x37, 0xc4, 0x7b, 0x57, 0x8e, 0xda, 0xc6, 0xc2, 0x76, 0xc4, 0x4d, 0x71, 0x3d,
0x58, 0x15, 0xd1, 0x18, 0x9a, 0x11, 0x0d, 0x1c, 0xcb, 0xe5, 0x55, 0x8d, 0x3e, 0x0b, 0x08, 0xbb,
0x50, 0xd0, 0xc0, 0xf2, 0x4c, 0x59, 0xbf, 0xbd, 0xd5, 0x16, 0x8f, 0x22, 0xed, 0xe4, 0x51, 0x64,
0x59, 0x03, 0xed, 0xac, 0x40, 0x0f, 0x19, 0x72, 0xc4, 0x81, 0xa8, 0x0b, 0x5b, 0xc4, 0x88, 0xac,
0x97, 0x54, 0x37, 0x29, 0x31, 0x6d, 0xcb, 0xa5, 0xb2, 0x92, 0x7b, 0x0d, 0x57, 0x43, 0x20, 0x7a,
0x12, 0x80, 0xbe, 0x60, 0x37, 0x7a, 0xe9, 0xea, 0x26, 0xac, 0x9f, 0x65, 0xeb, 0xff, 0x97, 0xae,
0x08, 0x5e, 0x22, 0xd0, 0x13, 0x28, 0xd9, 0x64, 0x4a, 0xed, 0xb0, 0x59, 0xe5, 0xd8, 0x77, 0xaf,
0xc6, 0x1e, 0x71, 0x9b, 0x3e, 0xbb, 0xdb, 0x60, 0x09, 0x40, 0x8f, 0x40, 0x61, 0x9b, 0x23, 0xa0,
0xc4, 0x5c, 0xc8, 0xba, 0xfc, 0x35, 0xf3, 0xae, 0x38, 0x96, 0x8b, 0x99, 0xa9, 0xf6, 0x1f, 0x15,
0x94, 0x74, 0x2e, 0x57, 0x2e, 0xdc, 0xed, 0xd5, 0x27, 0x87, 0x57, 0x73, 0x78, 0xfe, 0xda, 0x1c,
0xfe, 0x58, 0xc4, 0x37, 0xf7, 0x66, 0x63, 0x99, 0x1a, 0x36, 0xf8, 0xa3, 0x3d, 0x59, 0xf8, 0x14,
0x73, 0x04, 0x6a, 0xb2, 0x74, 0xe9, 0x38, 0xc4, 0x35, 0xb9, 0x33, 0x15, 0x9c, 0x88, 0x6c, 0xa2,
0xfc, 0x81, 0xa5, 0xca, 0xd5, 0xbc, 0xcd, 0xce, 0x9d, 0x5f, 0x7a, 0xc1, 0x39, 0x2b, 0xc5, 0x59,
0xd9, 0x52, 0x13, 0xcf, 0x06, 0x52, 0xc5, 0x8a, 0x9b, 0x03, 0x28, 0xfa, 0x5e, 0x10, 0xb1, 0x2d,
0xcc, 0xbc, 0xfb, 0xe0, 0xba, 0x99, 0xa4, 0xad, 0x91, 0x17, 0x44, 0x58, 0x60, 0xd1, 0xe7, 0x90,
0xa7, 0xee, 0xcb, 0x66, 0x9d, 0x53, 0xdc, 0xbb, 0x8e, 0xa2, 0xef, 0xbe, 0x14, 0xeb, 0xc4, 0x40,
0xa8, 0x03, 0x25, 0x7e, 0xd2, 0x85, 0xcd, 0xc6, 0xfa, 0xc9, 0xbb, 0x09, 0xbe, 0xbc, 0x45, 0x4b,
0x20, 0x3a, 0x64, 0x97, 0x6f, 0x7e, 0x70, 0x50, 0xb3, 0xb9, 0xf5, 0xa6, 0x2c, 0x4b, 0x2c, 0x3a,
0x82, 0x86, 0x6d, 0xbd, 0xa4, 0x2e, 0x0d, 0x43, 0xdd, 0x0f, 0xbc, 0x29, 0x6d, 0xaa, 0xeb, 0x8f,
0x17, 0x9b, 0xd8, 0x46, 0xcc, 0x18, 0xd7, 0x13, 0x30, 0x17, 0xd1, 0x09, 0x6c, 0xb1, 0xd0, 0xb3,
0x56, 0xe8, 0xb6, 0xdf, 0x84, 0xae, 0x91, 0xa2, 0x05, 0xdf, 0x53, 0x00, 0xdf, 0x0b, 0x23, 0x9d,
0xef, 0xfa, 0x26, 0x5a, 0x7f, 0x10, 0xd9, 0x44, 0x95, 0x94, 0x46, 0x0a, 0x83, 0x8e, 0x19, 0x12,
0x75, 0x59, 0x11, 0x40, 0xf5, 0x30, 0xf2, 0xfc, 0xe6, 0xad, 0x37, 0x63, 0x29, 0xfb, 0x01, 0x1d,
0x47, 0x9e, 0xaf, 0xfd, 0x2d, 0x0b, 0xf5, 0xb5, 0x50, 0xb8, 0x72, 0x9b, 0x7c, 0x00, 0x8d, 0x74,
0x23, 0xeb, 0x2c, 0x54, 0x64, 0xe2, 0xab, 0x1b, 0x6b, 0x50, 0xcc, 0xab, 0x92, 0xc8, 0x33, 0x3c,
0x5b, 0x6e, 0x88, 0x47, 0x6f, 0x14, 0x86, 0xcc, 0x5f, 0x1c, 0x8d, 0x53, 0x9e, 0xd6, 0xdb, 0xbc,
0x0c, 0xe1, 0x6d, 0x54, 0x86, 0xfc, 0xe4, 0x60, 0xa4, 0x66, 0x58, 0xe3, 0xac, 0x37, 0x52, 0xb3,
0xda, 0x23, 0xa8, 0x24, 0x51, 0xc8, 0x52, 0xcb, 0xf2, 0x4d, 0x91, 0x35, 0x97, 0xef, 0x85, 0x22,
0xa9, 0x08, 0xe1, 0xf3, 0xdc, 0xe3, 0xac, 0xf6, 0xab, 0x3c, 0x28, 0xcb, 0xca, 0x51, 0x85, 0xbc,
0xe1, 0xc7, 0x1c, 0x99, 0xc3, 0xac, 0x89, 0x06, 0x50, 0x72, 0xa8, 0xe3, 0x05, 0x0b, 0x59, 0x46,
0x7c, 0x7a, 0xe3, 0x30, 0x6c, 0x1f, 0x73, 0x1c, 0x96, 0x78, 0xcd, 0x84, 0x92, 0xd0, 0xa0, 0xae,
0x7c, 0xa7, 0x14, 0xcf, 0x2e, 0xed, 0x9b, 0x33, 0xae, 0x3c, 0x60, 0xee, 0x40, 0x89, 0x38, 0x5e,
0xec, 0x26, 0x0b, 0x20, 0xa5, 0xd6, 0x9f, 0xb3, 0xf2, 0xcd, 0xb2, 0x02, 0x85, 0xee, 0xf3, 0x49,
0x5f, 0xcd, 0xa0, 0x1a, 0x54, 0x9e, 0x0d, 0x8f, 0x4e, 0xb9, 0x94, 0x65, 0xd2, 0x71, 0xff, 0xb0,
0xc3, 0xa5, 0x1c, 0x93, 0x0e, 0x87, 0x52, 0xca, 0x33, 0x69, 0xd2, 0xc7, 0x42, 0x2a, 0x30, 0x69,
0xd4, 0x9f, 0x08, 0xa9, 0xc8, 0x2e, 0xad, 0xfd, 0x6f, 0x85, 0x50, 0x12, 0x94, 0xdd, 0x21, 0x97,
0xca, 0x82, 0x52, 0x4a, 0x15, 0x41, 0x29, 0x25, 0x45, 0x50, 0x4a, 0x09, 0x04, 0xa5, 0x94, 0xaa,
0x4c, 0xea, 0x7f, 0x2b, 0xa5, 0x9a, 0xf6, 0xaf, 0x2c, 0x94, 0x07, 0x51, 0xe4, 0x1f, 0xd2, 0xab,
0xdf, 0x9c, 0x99, 0x6e, 0x19, 0x70, 0xbc, 0xcd, 0x74, 0x73, 0x2f, 0x4c, 0x6a, 0x2a, 0xde, 0x16,
0x09, 0x7c, 0x4e, 0x1d, 0x9a, 0xdc, 0x99, 0x84, 0x84, 0x06, 0x50, 0x9e, 0x53, 0x62, 0xd2, 0x80,
0x55, 0x44, 0xec, 0x58, 0xbb, 0xd6, 0xf1, 0x72, 0x36, 0xed, 0x01, 0x87, 0xe1, 0x04, 0xae, 0xed,
0x43, 0x49, 0xa8, 0x36, 0x64, 0x92, 0x2b, 0x62, 0x4d, 0xfb, 0x77, 0x0e, 0x8a, 0x62, 0xd3, 0x23,
0x28, 0xd0, 0x0b, 0x6a, 0xc8, 0x6b, 0x3c, 0x6f, 0xb3, 0x0d, 0x3c, 0x8f, 0x22, 0x5f, 0x9f, 0xd1,
0xe4, 0xed, 0xfe, 0xc3, 0x1b, 0x4e, 0x0e, 0x97, 0xe7, 0xd2, 0x67, 0x5f, 0x42, 0xdd, 0x72, 0xad,
0xc8, 0x22, 0xb6, 0x6e, 0x52, 0x9b, 0x2c, 0xae, 0xaf, 0x11, 0x6a, 0xd2, 0xbe, 0xc7, 0xcc, 0xd1,
0x43, 0x28, 0x27, 0x0f, 0x2b, 0xd7, 0x56, 0x04, 0x89, 0x25, 0xfa, 0x0c, 0x4a, 0xb2, 0x22, 0x29,
0x5e, 0x87, 0x91, 0x86, 0xe8, 0x63, 0xd8, 0x0e, 0x63, 0xc3, 0x60, 0x47, 0x68, 0x34, 0x0f, 0x68,
0x38, 0xf7, 0x6c, 0x53, 0x96, 0x9b, 0xaa, 0xec, 0x98, 0x24, 0x7a, 0x66, 0xfc, 0x82, 0x58, 0x76,
0x1c, 0xd0, 0x15, 0x63, 0x51, 0x67, 0xaa, 0xb2, 0x23, 0x35, 0xd6, 0xfc, 0xe5, 0x4b, 0xc8, 0xbb,
0x50, 0x63, 0x8e, 0xd5, 0x93, 0xc4, 0x2a, 0x9c, 0x5d, 0x65, 0xba, 0x03, 0x99, 0x5c, 0xff, 0x07,
0x3e, 0x6f, 0x35, 0xa0, 0xc0, 0x12, 0x39, 0x2a, 0x41, 0xee, 0xf0, 0x54, 0xcd, 0x74, 0x6b, 0x00,
0xa6, 0x67, 0x9c, 0xd3, 0xe0, 0x85, 0x65, 0x53, 0xed, 0x09, 0x54, 0x57, 0x8a, 0x98, 0x37, 0x39,
0x96, 0x5a, 0x27, 0x50, 0x5f, 0xab, 0x0d, 0xd9, 0x15, 0x1e, 0xf7, 0xc7, 0x93, 0x0e, 0x9e, 0x2c,
0xaf, 0xe3, 0x3b, 0x80, 0x12, 0xdd, 0xe9, 0x89, 0xfe, 0xb4, 0x33, 0x3c, 0x3a, 0xc3, 0x6c, 0x8b,
0x6f, 0x43, 0x3d, 0xd1, 0xcb, 0x2b, 0xf9, 0xb4, 0xc4, 0xd7, 0xe3, 0xe1, 0x7f, 0x03, 0x00, 0x00,
0xff, 0xff, 0xcc, 0xb5, 0x4f, 0xb9, 0x8d, 0x1b, 0x00, 0x00,
}