// Code generated by capnpc-go. DO NOT EDIT.

package tunnelrpc

import (
	context "golang.org/x/net/context"
	strconv "strconv"
	capnp "zombiezen.com/go/capnproto2"
	text "zombiezen.com/go/capnproto2/encoding/text"
	schemas "zombiezen.com/go/capnproto2/schemas"
	server "zombiezen.com/go/capnproto2/server"
)

type Authentication struct{ capnp.Struct }

// Authentication_TypeID is the unique identifier for the type Authentication.
const Authentication_TypeID = 0xc082ef6e0d42ed1d

func NewAuthentication(s *capnp.Segment) (Authentication, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})
	return Authentication{st}, err
}

func NewRootAuthentication(s *capnp.Segment) (Authentication, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})
	return Authentication{st}, err
}

func ReadRootAuthentication(msg *capnp.Message) (Authentication, error) {
	root, err := msg.RootPtr()
	return Authentication{root.Struct()}, err
}

func (s Authentication) String() string {
	str, _ := text.Marshal(0xc082ef6e0d42ed1d, s.Struct)
	return str
}

func (s Authentication) Key() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s Authentication) HasKey() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s Authentication) KeyBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s Authentication) SetKey(v string) error {
	return s.Struct.SetText(0, v)
}

func (s Authentication) Email() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s Authentication) HasEmail() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s Authentication) EmailBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s Authentication) SetEmail(v string) error {
	return s.Struct.SetText(1, v)
}

func (s Authentication) OriginCAKey() (string, error) {
	p, err := s.Struct.Ptr(2)
	return p.Text(), err
}

func (s Authentication) HasOriginCAKey() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s Authentication) OriginCAKeyBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(2)
	return p.TextBytes(), err
}

func (s Authentication) SetOriginCAKey(v string) error {
	return s.Struct.SetText(2, v)
}

// Authentication_List is a list of Authentication.
type Authentication_List struct{ capnp.List }

// NewAuthentication creates a new list of Authentication.
func NewAuthentication_List(s *capnp.Segment, sz int32) (Authentication_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3}, sz)
	return Authentication_List{l}, err
}

func (s Authentication_List) At(i int) Authentication { return Authentication{s.List.Struct(i)} }

func (s Authentication_List) Set(i int, v Authentication) error { return s.List.SetStruct(i, v.Struct) }

func (s Authentication_List) String() string {
	str, _ := text.MarshalList(0xc082ef6e0d42ed1d, s.List)
	return str
}

// Authentication_Promise is a wrapper for a Authentication promised by a client call.
type Authentication_Promise struct{ *capnp.Pipeline }

func (p Authentication_Promise) Struct() (Authentication, error) {
	s, err := p.Pipeline.Struct()
	return Authentication{s}, err
}

type TunnelRegistration struct{ capnp.Struct }

// TunnelRegistration_TypeID is the unique identifier for the type TunnelRegistration.
const TunnelRegistration_TypeID = 0xf41a0f001ad49e46

func NewTunnelRegistration(s *capnp.Segment) (TunnelRegistration, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})
	return TunnelRegistration{st}, err
}

func NewRootTunnelRegistration(s *capnp.Segment) (TunnelRegistration, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})
	return TunnelRegistration{st}, err
}

func ReadRootTunnelRegistration(msg *capnp.Message) (TunnelRegistration, error) {
	root, err := msg.RootPtr()
	return TunnelRegistration{root.Struct()}, err
}

func (s TunnelRegistration) String() string {
	str, _ := text.Marshal(0xf41a0f001ad49e46, s.Struct)
	return str
}

func (s TunnelRegistration) Err() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s TunnelRegistration) HasErr() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s TunnelRegistration) ErrBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s TunnelRegistration) SetErr(v string) error {
	return s.Struct.SetText(0, v)
}

func (s TunnelRegistration) Url() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s TunnelRegistration) HasUrl() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s TunnelRegistration) UrlBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s TunnelRegistration) SetUrl(v string) error {
	return s.Struct.SetText(1, v)
}

func (s TunnelRegistration) LogLines() (capnp.TextList, error) {
	p, err := s.Struct.Ptr(2)
	return capnp.TextList{List: p.List()}, err
}

func (s TunnelRegistration) HasLogLines() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s TunnelRegistration) SetLogLines(v capnp.TextList) error {
	return s.Struct.SetPtr(2, v.List.ToPtr())
}

// NewLogLines sets the logLines field to a newly
// allocated capnp.TextList, preferring placement in s's segment.
func (s TunnelRegistration) NewLogLines(n int32) (capnp.TextList, error) {
	l, err := capnp.NewTextList(s.Struct.Segment(), n)
	if err != nil {
		return capnp.TextList{}, err
	}
	err = s.Struct.SetPtr(2, l.List.ToPtr())
	return l, err
}

func (s TunnelRegistration) PermanentFailure() bool {
	return s.Struct.Bit(0)
}

func (s TunnelRegistration) SetPermanentFailure(v bool) {
	s.Struct.SetBit(0, v)
}

func (s TunnelRegistration) TunnelID() (string, error) {
	p, err := s.Struct.Ptr(3)
	return p.Text(), err
}

func (s TunnelRegistration) HasTunnelID() bool {
	p, err := s.Struct.Ptr(3)
	return p.IsValid() || err != nil
}

func (s TunnelRegistration) TunnelIDBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(3)
	return p.TextBytes(), err
}

func (s TunnelRegistration) SetTunnelID(v string) error {
	return s.Struct.SetText(3, v)
}

// TunnelRegistration_List is a list of TunnelRegistration.
type TunnelRegistration_List struct{ capnp.List }

// NewTunnelRegistration creates a new list of TunnelRegistration.
func NewTunnelRegistration_List(s *capnp.Segment, sz int32) (TunnelRegistration_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4}, sz)
	return TunnelRegistration_List{l}, err
}

func (s TunnelRegistration_List) At(i int) TunnelRegistration {
	return TunnelRegistration{s.List.Struct(i)}
}

func (s TunnelRegistration_List) Set(i int, v TunnelRegistration) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelRegistration_List) String() string {
	str, _ := text.MarshalList(0xf41a0f001ad49e46, s.List)
	return str
}

// TunnelRegistration_Promise is a wrapper for a TunnelRegistration promised by a client call.
type TunnelRegistration_Promise struct{ *capnp.Pipeline }

func (p TunnelRegistration_Promise) Struct() (TunnelRegistration, error) {
	s, err := p.Pipeline.Struct()
	return TunnelRegistration{s}, err
}

type RegistrationOptions struct{ capnp.Struct }

// RegistrationOptions_TypeID is the unique identifier for the type RegistrationOptions.
const RegistrationOptions_TypeID = 0xc793e50592935b4a

func NewRegistrationOptions(s *capnp.Segment) (RegistrationOptions, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 7})
	return RegistrationOptions{st}, err
}

func NewRootRegistrationOptions(s *capnp.Segment) (RegistrationOptions, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 7})
	return RegistrationOptions{st}, err
}

func ReadRootRegistrationOptions(msg *capnp.Message) (RegistrationOptions, error) {
	root, err := msg.RootPtr()
	return RegistrationOptions{root.Struct()}, err
}

func (s RegistrationOptions) String() string {
	str, _ := text.Marshal(0xc793e50592935b4a, s.Struct)
	return str
}

func (s RegistrationOptions) ClientId() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s RegistrationOptions) HasClientId() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) ClientIdBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s RegistrationOptions) SetClientId(v string) error {
	return s.Struct.SetText(0, v)
}

func (s RegistrationOptions) Version() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s RegistrationOptions) HasVersion() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) VersionBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s RegistrationOptions) SetVersion(v string) error {
	return s.Struct.SetText(1, v)
}

func (s RegistrationOptions) Os() (string, error) {
	p, err := s.Struct.Ptr(2)
	return p.Text(), err
}

func (s RegistrationOptions) HasOs() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) OsBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(2)
	return p.TextBytes(), err
}

func (s RegistrationOptions) SetOs(v string) error {
	return s.Struct.SetText(2, v)
}

func (s RegistrationOptions) ExistingTunnelPolicy() ExistingTunnelPolicy {
	return ExistingTunnelPolicy(s.Struct.Uint16(0))
}

func (s RegistrationOptions) SetExistingTunnelPolicy(v ExistingTunnelPolicy) {
	s.Struct.SetUint16(0, uint16(v))
}

func (s RegistrationOptions) PoolName() (string, error) {
	p, err := s.Struct.Ptr(3)
	return p.Text(), err
}

func (s RegistrationOptions) HasPoolName() bool {
	p, err := s.Struct.Ptr(3)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) PoolNameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(3)
	return p.TextBytes(), err
}

func (s RegistrationOptions) SetPoolName(v string) error {
	return s.Struct.SetText(3, v)
}

func (s RegistrationOptions) Tags() (Tag_List, error) {
	p, err := s.Struct.Ptr(4)
	return Tag_List{List: p.List()}, err
}

func (s RegistrationOptions) HasTags() bool {
	p, err := s.Struct.Ptr(4)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) SetTags(v Tag_List) error {
	return s.Struct.SetPtr(4, v.List.ToPtr())
}

// NewTags sets the tags field to a newly
// allocated Tag_List, preferring placement in s's segment.
func (s RegistrationOptions) NewTags(n int32) (Tag_List, error) {
	l, err := NewTag_List(s.Struct.Segment(), n)
	if err != nil {
		return Tag_List{}, err
	}
	err = s.Struct.SetPtr(4, l.List.ToPtr())
	return l, err
}

func (s RegistrationOptions) ConnectionId() uint8 {
	return s.Struct.Uint8(2)
}

func (s RegistrationOptions) SetConnectionId(v uint8) {
	s.Struct.SetUint8(2, v)
}

func (s RegistrationOptions) OriginLocalIp() (string, error) {
	p, err := s.Struct.Ptr(5)
	return p.Text(), err
}

func (s RegistrationOptions) HasOriginLocalIp() bool {
	p, err := s.Struct.Ptr(5)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) OriginLocalIpBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(5)
	return p.TextBytes(), err
}

func (s RegistrationOptions) SetOriginLocalIp(v string) error {
	return s.Struct.SetText(5, v)
}

func (s RegistrationOptions) IsAutoupdated() bool {
	return s.Struct.Bit(24)
}

func (s RegistrationOptions) SetIsAutoupdated(v bool) {
	s.Struct.SetBit(24, v)
}

func (s RegistrationOptions) RunFromTerminal() bool {
	return s.Struct.Bit(25)
}

func (s RegistrationOptions) SetRunFromTerminal(v bool) {
	s.Struct.SetBit(25, v)
}

func (s RegistrationOptions) CompressionQuality() uint64 {
	return s.Struct.Uint64(8)
}

func (s RegistrationOptions) SetCompressionQuality(v uint64) {
	s.Struct.SetUint64(8, v)
}

func (s RegistrationOptions) Uuid() (string, error) {
	p, err := s.Struct.Ptr(6)
	return p.Text(), err
}

func (s RegistrationOptions) HasUuid() bool {
	p, err := s.Struct.Ptr(6)
	return p.IsValid() || err != nil
}

func (s RegistrationOptions) UuidBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(6)
	return p.TextBytes(), err
}

func (s RegistrationOptions) SetUuid(v string) error {
	return s.Struct.SetText(6, v)
}

// RegistrationOptions_List is a list of RegistrationOptions.
type RegistrationOptions_List struct{ capnp.List }

// NewRegistrationOptions creates a new list of RegistrationOptions.
func NewRegistrationOptions_List(s *capnp.Segment, sz int32) (RegistrationOptions_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 7}, sz)
	return RegistrationOptions_List{l}, err
}

func (s RegistrationOptions_List) At(i int) RegistrationOptions {
	return RegistrationOptions{s.List.Struct(i)}
}

func (s RegistrationOptions_List) Set(i int, v RegistrationOptions) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s RegistrationOptions_List) String() string {
	str, _ := text.MarshalList(0xc793e50592935b4a, s.List)
	return str
}

// RegistrationOptions_Promise is a wrapper for a RegistrationOptions promised by a client call.
type RegistrationOptions_Promise struct{ *capnp.Pipeline }

func (p RegistrationOptions_Promise) Struct() (RegistrationOptions, error) {
	s, err := p.Pipeline.Struct()
	return RegistrationOptions{s}, err
}

type CapnpConnectParameters struct{ capnp.Struct }

// CapnpConnectParameters_TypeID is the unique identifier for the type CapnpConnectParameters.
const CapnpConnectParameters_TypeID = 0xa78f37418c1077c8

func NewCapnpConnectParameters(s *capnp.Segment) (CapnpConnectParameters, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 5})
	return CapnpConnectParameters{st}, err
}

func NewRootCapnpConnectParameters(s *capnp.Segment) (CapnpConnectParameters, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 5})
	return CapnpConnectParameters{st}, err
}

func ReadRootCapnpConnectParameters(msg *capnp.Message) (CapnpConnectParameters, error) {
	root, err := msg.RootPtr()
	return CapnpConnectParameters{root.Struct()}, err
}

func (s CapnpConnectParameters) String() string {
	str, _ := text.Marshal(0xa78f37418c1077c8, s.Struct)
	return str
}

func (s CapnpConnectParameters) OriginCert() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return []byte(p.Data()), err
}

func (s CapnpConnectParameters) HasOriginCert() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s CapnpConnectParameters) SetOriginCert(v []byte) error {
	return s.Struct.SetData(0, v)
}

func (s CapnpConnectParameters) CloudflaredID() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return []byte(p.Data()), err
}

func (s CapnpConnectParameters) HasCloudflaredID() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s CapnpConnectParameters) SetCloudflaredID(v []byte) error {
	return s.Struct.SetData(1, v)
}

func (s CapnpConnectParameters) NumPreviousAttempts() uint8 {
	return s.Struct.Uint8(0)
}

func (s CapnpConnectParameters) SetNumPreviousAttempts(v uint8) {
	s.Struct.SetUint8(0, v)
}

func (s CapnpConnectParameters) Tags() (Tag_List, error) {
	p, err := s.Struct.Ptr(2)
	return Tag_List{List: p.List()}, err
}

func (s CapnpConnectParameters) HasTags() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s CapnpConnectParameters) SetTags(v Tag_List) error {
	return s.Struct.SetPtr(2, v.List.ToPtr())
}

// NewTags sets the tags field to a newly
// allocated Tag_List, preferring placement in s's segment.
func (s CapnpConnectParameters) NewTags(n int32) (Tag_List, error) {
	l, err := NewTag_List(s.Struct.Segment(), n)
	if err != nil {
		return Tag_List{}, err
	}
	err = s.Struct.SetPtr(2, l.List.ToPtr())
	return l, err
}

func (s CapnpConnectParameters) CloudflaredVersion() (string, error) {
	p, err := s.Struct.Ptr(3)
	return p.Text(), err
}

func (s CapnpConnectParameters) HasCloudflaredVersion() bool {
	p, err := s.Struct.Ptr(3)
	return p.IsValid() || err != nil
}

func (s CapnpConnectParameters) CloudflaredVersionBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(3)
	return p.TextBytes(), err
}

func (s CapnpConnectParameters) SetCloudflaredVersion(v string) error {
	return s.Struct.SetText(3, v)
}

func (s CapnpConnectParameters) IntentLabel() (string, error) {
	p, err := s.Struct.Ptr(4)
	return p.Text(), err
}

func (s CapnpConnectParameters) HasIntentLabel() bool {
	p, err := s.Struct.Ptr(4)
	return p.IsValid() || err != nil
}

func (s CapnpConnectParameters) IntentLabelBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(4)
	return p.TextBytes(), err
}

func (s CapnpConnectParameters) SetIntentLabel(v string) error {
	return s.Struct.SetText(4, v)
}

// CapnpConnectParameters_List is a list of CapnpConnectParameters.
type CapnpConnectParameters_List struct{ capnp.List }

// NewCapnpConnectParameters creates a new list of CapnpConnectParameters.
func NewCapnpConnectParameters_List(s *capnp.Segment, sz int32) (CapnpConnectParameters_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 5}, sz)
	return CapnpConnectParameters_List{l}, err
}

func (s CapnpConnectParameters_List) At(i int) CapnpConnectParameters {
	return CapnpConnectParameters{s.List.Struct(i)}
}

func (s CapnpConnectParameters_List) Set(i int, v CapnpConnectParameters) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s CapnpConnectParameters_List) String() string {
	str, _ := text.MarshalList(0xa78f37418c1077c8, s.List)
	return str
}

// CapnpConnectParameters_Promise is a wrapper for a CapnpConnectParameters promised by a client call.
type CapnpConnectParameters_Promise struct{ *capnp.Pipeline }

func (p CapnpConnectParameters_Promise) Struct() (CapnpConnectParameters, error) {
	s, err := p.Pipeline.Struct()
	return CapnpConnectParameters{s}, err
}

type ConnectResult struct{ capnp.Struct }
type ConnectResult_result ConnectResult
type ConnectResult_result_Which uint16

const (
	ConnectResult_result_Which_err     ConnectResult_result_Which = 0
	ConnectResult_result_Which_success ConnectResult_result_Which = 1
)

func (w ConnectResult_result_Which) String() string {
	const s = "errsuccess"
	switch w {
	case ConnectResult_result_Which_err:
		return s[0:3]
	case ConnectResult_result_Which_success:
		return s[3:10]

	}
	return "ConnectResult_result_Which(" + strconv.FormatUint(uint64(w), 10) + ")"
}

// ConnectResult_TypeID is the unique identifier for the type ConnectResult.
const ConnectResult_TypeID = 0xff8d9848747c956a

func NewConnectResult(s *capnp.Segment) (ConnectResult, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})
	return ConnectResult{st}, err
}

func NewRootConnectResult(s *capnp.Segment) (ConnectResult, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})
	return ConnectResult{st}, err
}

func ReadRootConnectResult(msg *capnp.Message) (ConnectResult, error) {
	root, err := msg.RootPtr()
	return ConnectResult{root.Struct()}, err
}

func (s ConnectResult) String() string {
	str, _ := text.Marshal(0xff8d9848747c956a, s.Struct)
	return str
}

func (s ConnectResult) Result() ConnectResult_result { return ConnectResult_result(s) }

func (s ConnectResult_result) Which() ConnectResult_result_Which {
	return ConnectResult_result_Which(s.Struct.Uint16(0))
}
func (s ConnectResult_result) Err() (ConnectError, error) {
	if s.Struct.Uint16(0) != 0 {
		panic("Which() != err")
	}
	p, err := s.Struct.Ptr(0)
	return ConnectError{Struct: p.Struct()}, err
}

func (s ConnectResult_result) HasErr() bool {
	if s.Struct.Uint16(0) != 0 {
		return false
	}
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ConnectResult_result) SetErr(v ConnectError) error {
	s.Struct.SetUint16(0, 0)
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewErr sets the err field to a newly
// allocated ConnectError struct, preferring placement in s's segment.
func (s ConnectResult_result) NewErr() (ConnectError, error) {
	s.Struct.SetUint16(0, 0)
	ss, err := NewConnectError(s.Struct.Segment())
	if err != nil {
		return ConnectError{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

func (s ConnectResult_result) Success() (ConnectSuccess, error) {
	if s.Struct.Uint16(0) != 1 {
		panic("Which() != success")
	}
	p, err := s.Struct.Ptr(0)
	return ConnectSuccess{Struct: p.Struct()}, err
}

func (s ConnectResult_result) HasSuccess() bool {
	if s.Struct.Uint16(0) != 1 {
		return false
	}
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ConnectResult_result) SetSuccess(v ConnectSuccess) error {
	s.Struct.SetUint16(0, 1)
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewSuccess sets the success field to a newly
// allocated ConnectSuccess struct, preferring placement in s's segment.
func (s ConnectResult_result) NewSuccess() (ConnectSuccess, error) {
	s.Struct.SetUint16(0, 1)
	ss, err := NewConnectSuccess(s.Struct.Segment())
	if err != nil {
		return ConnectSuccess{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// ConnectResult_List is a list of ConnectResult.
type ConnectResult_List struct{ capnp.List }

// NewConnectResult creates a new list of ConnectResult.
func NewConnectResult_List(s *capnp.Segment, sz int32) (ConnectResult_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)
	return ConnectResult_List{l}, err
}

func (s ConnectResult_List) At(i int) ConnectResult { return ConnectResult{s.List.Struct(i)} }

func (s ConnectResult_List) Set(i int, v ConnectResult) error { return s.List.SetStruct(i, v.Struct) }

func (s ConnectResult_List) String() string {
	str, _ := text.MarshalList(0xff8d9848747c956a, s.List)
	return str
}

// ConnectResult_Promise is a wrapper for a ConnectResult promised by a client call.
type ConnectResult_Promise struct{ *capnp.Pipeline }

func (p ConnectResult_Promise) Struct() (ConnectResult, error) {
	s, err := p.Pipeline.Struct()
	return ConnectResult{s}, err
}

func (p ConnectResult_Promise) Result() ConnectResult_result_Promise {
	return ConnectResult_result_Promise{p.Pipeline}
}

// ConnectResult_result_Promise is a wrapper for a ConnectResult_result promised by a client call.
type ConnectResult_result_Promise struct{ *capnp.Pipeline }

func (p ConnectResult_result_Promise) Struct() (ConnectResult_result, error) {
	s, err := p.Pipeline.Struct()
	return ConnectResult_result{s}, err
}

func (p ConnectResult_result_Promise) Err() ConnectError_Promise {
	return ConnectError_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

func (p ConnectResult_result_Promise) Success() ConnectSuccess_Promise {
	return ConnectSuccess_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type ConnectError struct{ capnp.Struct }

// ConnectError_TypeID is the unique identifier for the type ConnectError.
const ConnectError_TypeID = 0xb14ce48f4e2abb0d

func NewConnectError(s *capnp.Segment) (ConnectError, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 1})
	return ConnectError{st}, err
}

func NewRootConnectError(s *capnp.Segment) (ConnectError, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 16, PointerCount: 1})
	return ConnectError{st}, err
}

func ReadRootConnectError(msg *capnp.Message) (ConnectError, error) {
	root, err := msg.RootPtr()
	return ConnectError{root.Struct()}, err
}

func (s ConnectError) String() string {
	str, _ := text.Marshal(0xb14ce48f4e2abb0d, s.Struct)
	return str
}

func (s ConnectError) Cause() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s ConnectError) HasCause() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ConnectError) CauseBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s ConnectError) SetCause(v string) error {
	return s.Struct.SetText(0, v)
}

func (s ConnectError) RetryAfter() int64 {
	return int64(s.Struct.Uint64(0))
}

func (s ConnectError) SetRetryAfter(v int64) {
	s.Struct.SetUint64(0, uint64(v))
}

func (s ConnectError) ShouldRetry() bool {
	return s.Struct.Bit(64)
}

func (s ConnectError) SetShouldRetry(v bool) {
	s.Struct.SetBit(64, v)
}

// ConnectError_List is a list of ConnectError.
type ConnectError_List struct{ capnp.List }

// NewConnectError creates a new list of ConnectError.
func NewConnectError_List(s *capnp.Segment, sz int32) (ConnectError_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 16, PointerCount: 1}, sz)
	return ConnectError_List{l}, err
}

func (s ConnectError_List) At(i int) ConnectError { return ConnectError{s.List.Struct(i)} }

func (s ConnectError_List) Set(i int, v ConnectError) error { return s.List.SetStruct(i, v.Struct) }

func (s ConnectError_List) String() string {
	str, _ := text.MarshalList(0xb14ce48f4e2abb0d, s.List)
	return str
}

// ConnectError_Promise is a wrapper for a ConnectError promised by a client call.
type ConnectError_Promise struct{ *capnp.Pipeline }

func (p ConnectError_Promise) Struct() (ConnectError, error) {
	s, err := p.Pipeline.Struct()
	return ConnectError{s}, err
}

type ConnectSuccess struct{ capnp.Struct }

// ConnectSuccess_TypeID is the unique identifier for the type ConnectSuccess.
const ConnectSuccess_TypeID = 0x8407e070e0d52605

func NewConnectSuccess(s *capnp.Segment) (ConnectSuccess, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})
	return ConnectSuccess{st}, err
}

func NewRootConnectSuccess(s *capnp.Segment) (ConnectSuccess, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})
	return ConnectSuccess{st}, err
}

func ReadRootConnectSuccess(msg *capnp.Message) (ConnectSuccess, error) {
	root, err := msg.RootPtr()
	return ConnectSuccess{root.Struct()}, err
}

func (s ConnectSuccess) String() string {
	str, _ := text.Marshal(0x8407e070e0d52605, s.Struct)
	return str
}

func (s ConnectSuccess) ServerLocationName() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s ConnectSuccess) HasServerLocationName() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ConnectSuccess) ServerLocationNameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s ConnectSuccess) SetServerLocationName(v string) error {
	return s.Struct.SetText(0, v)
}

func (s ConnectSuccess) ClientConfig() (ClientConfig, error) {
	p, err := s.Struct.Ptr(1)
	return ClientConfig{Struct: p.Struct()}, err
}

func (s ConnectSuccess) HasClientConfig() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s ConnectSuccess) SetClientConfig(v ClientConfig) error {
	return s.Struct.SetPtr(1, v.Struct.ToPtr())
}

// NewClientConfig sets the clientConfig field to a newly
// allocated ClientConfig struct, preferring placement in s's segment.
func (s ConnectSuccess) NewClientConfig() (ClientConfig, error) {
	ss, err := NewClientConfig(s.Struct.Segment())
	if err != nil {
		return ClientConfig{}, err
	}
	err = s.Struct.SetPtr(1, ss.Struct.ToPtr())
	return ss, err
}

// ConnectSuccess_List is a list of ConnectSuccess.
type ConnectSuccess_List struct{ capnp.List }

// NewConnectSuccess creates a new list of ConnectSuccess.
func NewConnectSuccess_List(s *capnp.Segment, sz int32) (ConnectSuccess_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)
	return ConnectSuccess_List{l}, err
}

func (s ConnectSuccess_List) At(i int) ConnectSuccess { return ConnectSuccess{s.List.Struct(i)} }

func (s ConnectSuccess_List) Set(i int, v ConnectSuccess) error { return s.List.SetStruct(i, v.Struct) }

func (s ConnectSuccess_List) String() string {
	str, _ := text.MarshalList(0x8407e070e0d52605, s.List)
	return str
}

// ConnectSuccess_Promise is a wrapper for a ConnectSuccess promised by a client call.
type ConnectSuccess_Promise struct{ *capnp.Pipeline }

func (p ConnectSuccess_Promise) Struct() (ConnectSuccess, error) {
	s, err := p.Pipeline.Struct()
	return ConnectSuccess{s}, err
}

func (p ConnectSuccess_Promise) ClientConfig() ClientConfig_Promise {
	return ClientConfig_Promise{Pipeline: p.Pipeline.GetPipeline(1)}
}

type ClientConfig struct{ capnp.Struct }

// ClientConfig_TypeID is the unique identifier for the type ClientConfig.
const ClientConfig_TypeID = 0xf0a143f1c95a678e

func NewClientConfig(s *capnp.Segment) (ClientConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})
	return ClientConfig{st}, err
}

func NewRootClientConfig(s *capnp.Segment) (ClientConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4})
	return ClientConfig{st}, err
}

func ReadRootClientConfig(msg *capnp.Message) (ClientConfig, error) {
	root, err := msg.RootPtr()
	return ClientConfig{root.Struct()}, err
}

func (s ClientConfig) String() string {
	str, _ := text.Marshal(0xf0a143f1c95a678e, s.Struct)
	return str
}

func (s ClientConfig) Version() uint64 {
	return s.Struct.Uint64(0)
}

func (s ClientConfig) SetVersion(v uint64) {
	s.Struct.SetUint64(0, v)
}

func (s ClientConfig) SupervisorConfig() (SupervisorConfig, error) {
	p, err := s.Struct.Ptr(0)
	return SupervisorConfig{Struct: p.Struct()}, err
}

func (s ClientConfig) HasSupervisorConfig() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ClientConfig) SetSupervisorConfig(v SupervisorConfig) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewSupervisorConfig sets the supervisorConfig field to a newly
// allocated SupervisorConfig struct, preferring placement in s's segment.
func (s ClientConfig) NewSupervisorConfig() (SupervisorConfig, error) {
	ss, err := NewSupervisorConfig(s.Struct.Segment())
	if err != nil {
		return SupervisorConfig{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

func (s ClientConfig) EdgeConnectionConfig() (EdgeConnectionConfig, error) {
	p, err := s.Struct.Ptr(1)
	return EdgeConnectionConfig{Struct: p.Struct()}, err
}

func (s ClientConfig) HasEdgeConnectionConfig() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s ClientConfig) SetEdgeConnectionConfig(v EdgeConnectionConfig) error {
	return s.Struct.SetPtr(1, v.Struct.ToPtr())
}

// NewEdgeConnectionConfig sets the edgeConnectionConfig field to a newly
// allocated EdgeConnectionConfig struct, preferring placement in s's segment.
func (s ClientConfig) NewEdgeConnectionConfig() (EdgeConnectionConfig, error) {
	ss, err := NewEdgeConnectionConfig(s.Struct.Segment())
	if err != nil {
		return EdgeConnectionConfig{}, err
	}
	err = s.Struct.SetPtr(1, ss.Struct.ToPtr())
	return ss, err
}

func (s ClientConfig) DohProxyConfigs() (DoHProxyConfig_List, error) {
	p, err := s.Struct.Ptr(2)
	return DoHProxyConfig_List{List: p.List()}, err
}

func (s ClientConfig) HasDohProxyConfigs() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s ClientConfig) SetDohProxyConfigs(v DoHProxyConfig_List) error {
	return s.Struct.SetPtr(2, v.List.ToPtr())
}

// NewDohProxyConfigs sets the dohProxyConfigs field to a newly
// allocated DoHProxyConfig_List, preferring placement in s's segment.
func (s ClientConfig) NewDohProxyConfigs(n int32) (DoHProxyConfig_List, error) {
	l, err := NewDoHProxyConfig_List(s.Struct.Segment(), n)
	if err != nil {
		return DoHProxyConfig_List{}, err
	}
	err = s.Struct.SetPtr(2, l.List.ToPtr())
	return l, err
}

func (s ClientConfig) ReverseProxyConfigs() (ReverseProxyConfig_List, error) {
	p, err := s.Struct.Ptr(3)
	return ReverseProxyConfig_List{List: p.List()}, err
}

func (s ClientConfig) HasReverseProxyConfigs() bool {
	p, err := s.Struct.Ptr(3)
	return p.IsValid() || err != nil
}

func (s ClientConfig) SetReverseProxyConfigs(v ReverseProxyConfig_List) error {
	return s.Struct.SetPtr(3, v.List.ToPtr())
}

// NewReverseProxyConfigs sets the reverseProxyConfigs field to a newly
// allocated ReverseProxyConfig_List, preferring placement in s's segment.
func (s ClientConfig) NewReverseProxyConfigs(n int32) (ReverseProxyConfig_List, error) {
	l, err := NewReverseProxyConfig_List(s.Struct.Segment(), n)
	if err != nil {
		return ReverseProxyConfig_List{}, err
	}
	err = s.Struct.SetPtr(3, l.List.ToPtr())
	return l, err
}

// ClientConfig_List is a list of ClientConfig.
type ClientConfig_List struct{ capnp.List }

// NewClientConfig creates a new list of ClientConfig.
func NewClientConfig_List(s *capnp.Segment, sz int32) (ClientConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 4}, sz)
	return ClientConfig_List{l}, err
}

func (s ClientConfig_List) At(i int) ClientConfig { return ClientConfig{s.List.Struct(i)} }

func (s ClientConfig_List) Set(i int, v ClientConfig) error { return s.List.SetStruct(i, v.Struct) }

func (s ClientConfig_List) String() string {
	str, _ := text.MarshalList(0xf0a143f1c95a678e, s.List)
	return str
}

// ClientConfig_Promise is a wrapper for a ClientConfig promised by a client call.
type ClientConfig_Promise struct{ *capnp.Pipeline }

func (p ClientConfig_Promise) Struct() (ClientConfig, error) {
	s, err := p.Pipeline.Struct()
	return ClientConfig{s}, err
}

func (p ClientConfig_Promise) SupervisorConfig() SupervisorConfig_Promise {
	return SupervisorConfig_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

func (p ClientConfig_Promise) EdgeConnectionConfig() EdgeConnectionConfig_Promise {
	return EdgeConnectionConfig_Promise{Pipeline: p.Pipeline.GetPipeline(1)}
}

type SupervisorConfig struct{ capnp.Struct }

// SupervisorConfig_TypeID is the unique identifier for the type SupervisorConfig.
const SupervisorConfig_TypeID = 0xf7f49b3f779ae258

func NewSupervisorConfig(s *capnp.Segment) (SupervisorConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 24, PointerCount: 0})
	return SupervisorConfig{st}, err
}

func NewRootSupervisorConfig(s *capnp.Segment) (SupervisorConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 24, PointerCount: 0})
	return SupervisorConfig{st}, err
}

func ReadRootSupervisorConfig(msg *capnp.Message) (SupervisorConfig, error) {
	root, err := msg.RootPtr()
	return SupervisorConfig{root.Struct()}, err
}

func (s SupervisorConfig) String() string {
	str, _ := text.Marshal(0xf7f49b3f779ae258, s.Struct)
	return str
}

func (s SupervisorConfig) AutoUpdateFrequency() int64 {
	return int64(s.Struct.Uint64(0))
}

func (s SupervisorConfig) SetAutoUpdateFrequency(v int64) {
	s.Struct.SetUint64(0, uint64(v))
}

func (s SupervisorConfig) MetricsUpdateFrequency() int64 {
	return int64(s.Struct.Uint64(8))
}

func (s SupervisorConfig) SetMetricsUpdateFrequency(v int64) {
	s.Struct.SetUint64(8, uint64(v))
}

func (s SupervisorConfig) GracePeriod() int64 {
	return int64(s.Struct.Uint64(16))
}

func (s SupervisorConfig) SetGracePeriod(v int64) {
	s.Struct.SetUint64(16, uint64(v))
}

// SupervisorConfig_List is a list of SupervisorConfig.
type SupervisorConfig_List struct{ capnp.List }

// NewSupervisorConfig creates a new list of SupervisorConfig.
func NewSupervisorConfig_List(s *capnp.Segment, sz int32) (SupervisorConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 24, PointerCount: 0}, sz)
	return SupervisorConfig_List{l}, err
}

func (s SupervisorConfig_List) At(i int) SupervisorConfig { return SupervisorConfig{s.List.Struct(i)} }

func (s SupervisorConfig_List) Set(i int, v SupervisorConfig) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s SupervisorConfig_List) String() string {
	str, _ := text.MarshalList(0xf7f49b3f779ae258, s.List)
	return str
}

// SupervisorConfig_Promise is a wrapper for a SupervisorConfig promised by a client call.
type SupervisorConfig_Promise struct{ *capnp.Pipeline }

func (p SupervisorConfig_Promise) Struct() (SupervisorConfig, error) {
	s, err := p.Pipeline.Struct()
	return SupervisorConfig{s}, err
}

type EdgeConnectionConfig struct{ capnp.Struct }

// EdgeConnectionConfig_TypeID is the unique identifier for the type EdgeConnectionConfig.
const EdgeConnectionConfig_TypeID = 0xc744e349009087aa

func NewEdgeConnectionConfig(s *capnp.Segment) (EdgeConnectionConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 32, PointerCount: 1})
	return EdgeConnectionConfig{st}, err
}

func NewRootEdgeConnectionConfig(s *capnp.Segment) (EdgeConnectionConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 32, PointerCount: 1})
	return EdgeConnectionConfig{st}, err
}

func ReadRootEdgeConnectionConfig(msg *capnp.Message) (EdgeConnectionConfig, error) {
	root, err := msg.RootPtr()
	return EdgeConnectionConfig{root.Struct()}, err
}

func (s EdgeConnectionConfig) String() string {
	str, _ := text.Marshal(0xc744e349009087aa, s.Struct)
	return str
}

func (s EdgeConnectionConfig) NumHAConnections() uint8 {
	return s.Struct.Uint8(0)
}

func (s EdgeConnectionConfig) SetNumHAConnections(v uint8) {
	s.Struct.SetUint8(0, v)
}

func (s EdgeConnectionConfig) HeartbeatInterval() int64 {
	return int64(s.Struct.Uint64(8))
}

func (s EdgeConnectionConfig) SetHeartbeatInterval(v int64) {
	s.Struct.SetUint64(8, uint64(v))
}

func (s EdgeConnectionConfig) Timeout() int64 {
	return int64(s.Struct.Uint64(16))
}

func (s EdgeConnectionConfig) SetTimeout(v int64) {
	s.Struct.SetUint64(16, uint64(v))
}

func (s EdgeConnectionConfig) MaxFailedHeartbeats() uint64 {
	return s.Struct.Uint64(24)
}

func (s EdgeConnectionConfig) SetMaxFailedHeartbeats(v uint64) {
	s.Struct.SetUint64(24, v)
}

func (s EdgeConnectionConfig) UserCredentialPath() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s EdgeConnectionConfig) HasUserCredentialPath() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s EdgeConnectionConfig) UserCredentialPathBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s EdgeConnectionConfig) SetUserCredentialPath(v string) error {
	return s.Struct.SetText(0, v)
}

// EdgeConnectionConfig_List is a list of EdgeConnectionConfig.
type EdgeConnectionConfig_List struct{ capnp.List }

// NewEdgeConnectionConfig creates a new list of EdgeConnectionConfig.
func NewEdgeConnectionConfig_List(s *capnp.Segment, sz int32) (EdgeConnectionConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 32, PointerCount: 1}, sz)
	return EdgeConnectionConfig_List{l}, err
}

func (s EdgeConnectionConfig_List) At(i int) EdgeConnectionConfig {
	return EdgeConnectionConfig{s.List.Struct(i)}
}

func (s EdgeConnectionConfig_List) Set(i int, v EdgeConnectionConfig) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s EdgeConnectionConfig_List) String() string {
	str, _ := text.MarshalList(0xc744e349009087aa, s.List)
	return str
}

// EdgeConnectionConfig_Promise is a wrapper for a EdgeConnectionConfig promised by a client call.
type EdgeConnectionConfig_Promise struct{ *capnp.Pipeline }

func (p EdgeConnectionConfig_Promise) Struct() (EdgeConnectionConfig, error) {
	s, err := p.Pipeline.Struct()
	return EdgeConnectionConfig{s}, err
}

type ReverseProxyConfig struct{ capnp.Struct }
type ReverseProxyConfig_originConfig ReverseProxyConfig
type ReverseProxyConfig_originConfig_Which uint16

const (
	ReverseProxyConfig_originConfig_Which_http       ReverseProxyConfig_originConfig_Which = 0
	ReverseProxyConfig_originConfig_Which_websocket  ReverseProxyConfig_originConfig_Which = 1
	ReverseProxyConfig_originConfig_Which_helloWorld ReverseProxyConfig_originConfig_Which = 2
)

func (w ReverseProxyConfig_originConfig_Which) String() string {
	const s = "httpwebsockethelloWorld"
	switch w {
	case ReverseProxyConfig_originConfig_Which_http:
		return s[0:4]
	case ReverseProxyConfig_originConfig_Which_websocket:
		return s[4:13]
	case ReverseProxyConfig_originConfig_Which_helloWorld:
		return s[13:23]

	}
	return "ReverseProxyConfig_originConfig_Which(" + strconv.FormatUint(uint64(w), 10) + ")"
}

// ReverseProxyConfig_TypeID is the unique identifier for the type ReverseProxyConfig.
const ReverseProxyConfig_TypeID = 0xc766a92976e389c4

func NewReverseProxyConfig(s *capnp.Segment) (ReverseProxyConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 32, PointerCount: 2})
	return ReverseProxyConfig{st}, err
}

func NewRootReverseProxyConfig(s *capnp.Segment) (ReverseProxyConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 32, PointerCount: 2})
	return ReverseProxyConfig{st}, err
}

func ReadRootReverseProxyConfig(msg *capnp.Message) (ReverseProxyConfig, error) {
	root, err := msg.RootPtr()
	return ReverseProxyConfig{root.Struct()}, err
}

func (s ReverseProxyConfig) String() string {
	str, _ := text.Marshal(0xc766a92976e389c4, s.Struct)
	return str
}

func (s ReverseProxyConfig) TunnelHostname() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s ReverseProxyConfig) HasTunnelHostname() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ReverseProxyConfig) TunnelHostnameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s ReverseProxyConfig) SetTunnelHostname(v string) error {
	return s.Struct.SetText(0, v)
}

func (s ReverseProxyConfig) OriginConfig() ReverseProxyConfig_originConfig {
	return ReverseProxyConfig_originConfig(s)
}

func (s ReverseProxyConfig_originConfig) Which() ReverseProxyConfig_originConfig_Which {
	return ReverseProxyConfig_originConfig_Which(s.Struct.Uint16(0))
}
func (s ReverseProxyConfig_originConfig) Http() (HTTPOriginConfig, error) {
	if s.Struct.Uint16(0) != 0 {
		panic("Which() != http")
	}
	p, err := s.Struct.Ptr(1)
	return HTTPOriginConfig{Struct: p.Struct()}, err
}

func (s ReverseProxyConfig_originConfig) HasHttp() bool {
	if s.Struct.Uint16(0) != 0 {
		return false
	}
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s ReverseProxyConfig_originConfig) SetHttp(v HTTPOriginConfig) error {
	s.Struct.SetUint16(0, 0)
	return s.Struct.SetPtr(1, v.Struct.ToPtr())
}

// NewHttp sets the http field to a newly
// allocated HTTPOriginConfig struct, preferring placement in s's segment.
func (s ReverseProxyConfig_originConfig) NewHttp() (HTTPOriginConfig, error) {
	s.Struct.SetUint16(0, 0)
	ss, err := NewHTTPOriginConfig(s.Struct.Segment())
	if err != nil {
		return HTTPOriginConfig{}, err
	}
	err = s.Struct.SetPtr(1, ss.Struct.ToPtr())
	return ss, err
}

func (s ReverseProxyConfig_originConfig) Websocket() (WebSocketOriginConfig, error) {
	if s.Struct.Uint16(0) != 1 {
		panic("Which() != websocket")
	}
	p, err := s.Struct.Ptr(1)
	return WebSocketOriginConfig{Struct: p.Struct()}, err
}

func (s ReverseProxyConfig_originConfig) HasWebsocket() bool {
	if s.Struct.Uint16(0) != 1 {
		return false
	}
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s ReverseProxyConfig_originConfig) SetWebsocket(v WebSocketOriginConfig) error {
	s.Struct.SetUint16(0, 1)
	return s.Struct.SetPtr(1, v.Struct.ToPtr())
}

// NewWebsocket sets the websocket field to a newly
// allocated WebSocketOriginConfig struct, preferring placement in s's segment.
func (s ReverseProxyConfig_originConfig) NewWebsocket() (WebSocketOriginConfig, error) {
	s.Struct.SetUint16(0, 1)
	ss, err := NewWebSocketOriginConfig(s.Struct.Segment())
	if err != nil {
		return WebSocketOriginConfig{}, err
	}
	err = s.Struct.SetPtr(1, ss.Struct.ToPtr())
	return ss, err
}

func (s ReverseProxyConfig_originConfig) HelloWorld() (HelloWorldOriginConfig, error) {
	if s.Struct.Uint16(0) != 2 {
		panic("Which() != helloWorld")
	}
	p, err := s.Struct.Ptr(1)
	return HelloWorldOriginConfig{Struct: p.Struct()}, err
}

func (s ReverseProxyConfig_originConfig) HasHelloWorld() bool {
	if s.Struct.Uint16(0) != 2 {
		return false
	}
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s ReverseProxyConfig_originConfig) SetHelloWorld(v HelloWorldOriginConfig) error {
	s.Struct.SetUint16(0, 2)
	return s.Struct.SetPtr(1, v.Struct.ToPtr())
}

// NewHelloWorld sets the helloWorld field to a newly
// allocated HelloWorldOriginConfig struct, preferring placement in s's segment.
func (s ReverseProxyConfig_originConfig) NewHelloWorld() (HelloWorldOriginConfig, error) {
	s.Struct.SetUint16(0, 2)
	ss, err := NewHelloWorldOriginConfig(s.Struct.Segment())
	if err != nil {
		return HelloWorldOriginConfig{}, err
	}
	err = s.Struct.SetPtr(1, ss.Struct.ToPtr())
	return ss, err
}

func (s ReverseProxyConfig) Retries() uint64 {
	return s.Struct.Uint64(8)
}

func (s ReverseProxyConfig) SetRetries(v uint64) {
	s.Struct.SetUint64(8, v)
}

func (s ReverseProxyConfig) ConnectionTimeout() int64 {
	return int64(s.Struct.Uint64(16))
}

func (s ReverseProxyConfig) SetConnectionTimeout(v int64) {
	s.Struct.SetUint64(16, uint64(v))
}

func (s ReverseProxyConfig) CompressionQuality() uint64 {
	return s.Struct.Uint64(24)
}

func (s ReverseProxyConfig) SetCompressionQuality(v uint64) {
	s.Struct.SetUint64(24, v)
}

// ReverseProxyConfig_List is a list of ReverseProxyConfig.
type ReverseProxyConfig_List struct{ capnp.List }

// NewReverseProxyConfig creates a new list of ReverseProxyConfig.
func NewReverseProxyConfig_List(s *capnp.Segment, sz int32) (ReverseProxyConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 32, PointerCount: 2}, sz)
	return ReverseProxyConfig_List{l}, err
}

func (s ReverseProxyConfig_List) At(i int) ReverseProxyConfig {
	return ReverseProxyConfig{s.List.Struct(i)}
}

func (s ReverseProxyConfig_List) Set(i int, v ReverseProxyConfig) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s ReverseProxyConfig_List) String() string {
	str, _ := text.MarshalList(0xc766a92976e389c4, s.List)
	return str
}

// ReverseProxyConfig_Promise is a wrapper for a ReverseProxyConfig promised by a client call.
type ReverseProxyConfig_Promise struct{ *capnp.Pipeline }

func (p ReverseProxyConfig_Promise) Struct() (ReverseProxyConfig, error) {
	s, err := p.Pipeline.Struct()
	return ReverseProxyConfig{s}, err
}

func (p ReverseProxyConfig_Promise) OriginConfig() ReverseProxyConfig_originConfig_Promise {
	return ReverseProxyConfig_originConfig_Promise{p.Pipeline}
}

// ReverseProxyConfig_originConfig_Promise is a wrapper for a ReverseProxyConfig_originConfig promised by a client call.
type ReverseProxyConfig_originConfig_Promise struct{ *capnp.Pipeline }

func (p ReverseProxyConfig_originConfig_Promise) Struct() (ReverseProxyConfig_originConfig, error) {
	s, err := p.Pipeline.Struct()
	return ReverseProxyConfig_originConfig{s}, err
}

func (p ReverseProxyConfig_originConfig_Promise) Http() HTTPOriginConfig_Promise {
	return HTTPOriginConfig_Promise{Pipeline: p.Pipeline.GetPipeline(1)}
}

func (p ReverseProxyConfig_originConfig_Promise) Websocket() WebSocketOriginConfig_Promise {
	return WebSocketOriginConfig_Promise{Pipeline: p.Pipeline.GetPipeline(1)}
}

func (p ReverseProxyConfig_originConfig_Promise) HelloWorld() HelloWorldOriginConfig_Promise {
	return HelloWorldOriginConfig_Promise{Pipeline: p.Pipeline.GetPipeline(1)}
}

type WebSocketOriginConfig struct{ capnp.Struct }

// WebSocketOriginConfig_TypeID is the unique identifier for the type WebSocketOriginConfig.
const WebSocketOriginConfig_TypeID = 0xf9c895683ed9ac4c

func NewWebSocketOriginConfig(s *capnp.Segment) (WebSocketOriginConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})
	return WebSocketOriginConfig{st}, err
}

func NewRootWebSocketOriginConfig(s *capnp.Segment) (WebSocketOriginConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3})
	return WebSocketOriginConfig{st}, err
}

func ReadRootWebSocketOriginConfig(msg *capnp.Message) (WebSocketOriginConfig, error) {
	root, err := msg.RootPtr()
	return WebSocketOriginConfig{root.Struct()}, err
}

func (s WebSocketOriginConfig) String() string {
	str, _ := text.Marshal(0xf9c895683ed9ac4c, s.Struct)
	return str
}

func (s WebSocketOriginConfig) UrlString() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s WebSocketOriginConfig) HasUrlString() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s WebSocketOriginConfig) UrlStringBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s WebSocketOriginConfig) SetUrlString(v string) error {
	return s.Struct.SetText(0, v)
}

func (s WebSocketOriginConfig) TlsVerify() bool {
	return s.Struct.Bit(0)
}

func (s WebSocketOriginConfig) SetTlsVerify(v bool) {
	s.Struct.SetBit(0, v)
}

func (s WebSocketOriginConfig) OriginCAPool() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s WebSocketOriginConfig) HasOriginCAPool() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s WebSocketOriginConfig) OriginCAPoolBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s WebSocketOriginConfig) SetOriginCAPool(v string) error {
	return s.Struct.SetText(1, v)
}

func (s WebSocketOriginConfig) OriginServerName() (string, error) {
	p, err := s.Struct.Ptr(2)
	return p.Text(), err
}

func (s WebSocketOriginConfig) HasOriginServerName() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s WebSocketOriginConfig) OriginServerNameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(2)
	return p.TextBytes(), err
}

func (s WebSocketOriginConfig) SetOriginServerName(v string) error {
	return s.Struct.SetText(2, v)
}

// WebSocketOriginConfig_List is a list of WebSocketOriginConfig.
type WebSocketOriginConfig_List struct{ capnp.List }

// NewWebSocketOriginConfig creates a new list of WebSocketOriginConfig.
func NewWebSocketOriginConfig_List(s *capnp.Segment, sz int32) (WebSocketOriginConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 3}, sz)
	return WebSocketOriginConfig_List{l}, err
}

func (s WebSocketOriginConfig_List) At(i int) WebSocketOriginConfig {
	return WebSocketOriginConfig{s.List.Struct(i)}
}

func (s WebSocketOriginConfig_List) Set(i int, v WebSocketOriginConfig) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s WebSocketOriginConfig_List) String() string {
	str, _ := text.MarshalList(0xf9c895683ed9ac4c, s.List)
	return str
}

// WebSocketOriginConfig_Promise is a wrapper for a WebSocketOriginConfig promised by a client call.
type WebSocketOriginConfig_Promise struct{ *capnp.Pipeline }

func (p WebSocketOriginConfig_Promise) Struct() (WebSocketOriginConfig, error) {
	s, err := p.Pipeline.Struct()
	return WebSocketOriginConfig{s}, err
}

type HTTPOriginConfig struct{ capnp.Struct }

// HTTPOriginConfig_TypeID is the unique identifier for the type HTTPOriginConfig.
const HTTPOriginConfig_TypeID = 0xe4a6a1bc139211b4

func NewHTTPOriginConfig(s *capnp.Segment) (HTTPOriginConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 56, PointerCount: 3})
	return HTTPOriginConfig{st}, err
}

func NewRootHTTPOriginConfig(s *capnp.Segment) (HTTPOriginConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 56, PointerCount: 3})
	return HTTPOriginConfig{st}, err
}

func ReadRootHTTPOriginConfig(msg *capnp.Message) (HTTPOriginConfig, error) {
	root, err := msg.RootPtr()
	return HTTPOriginConfig{root.Struct()}, err
}

func (s HTTPOriginConfig) String() string {
	str, _ := text.Marshal(0xe4a6a1bc139211b4, s.Struct)
	return str
}

func (s HTTPOriginConfig) UrlString() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s HTTPOriginConfig) HasUrlString() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s HTTPOriginConfig) UrlStringBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s HTTPOriginConfig) SetUrlString(v string) error {
	return s.Struct.SetText(0, v)
}

func (s HTTPOriginConfig) TcpKeepAlive() int64 {
	return int64(s.Struct.Uint64(0))
}

func (s HTTPOriginConfig) SetTcpKeepAlive(v int64) {
	s.Struct.SetUint64(0, uint64(v))
}

func (s HTTPOriginConfig) DialDualStack() bool {
	return s.Struct.Bit(64)
}

func (s HTTPOriginConfig) SetDialDualStack(v bool) {
	s.Struct.SetBit(64, v)
}

func (s HTTPOriginConfig) TlsHandshakeTimeout() int64 {
	return int64(s.Struct.Uint64(16))
}

func (s HTTPOriginConfig) SetTlsHandshakeTimeout(v int64) {
	s.Struct.SetUint64(16, uint64(v))
}

func (s HTTPOriginConfig) TlsVerify() bool {
	return s.Struct.Bit(65)
}

func (s HTTPOriginConfig) SetTlsVerify(v bool) {
	s.Struct.SetBit(65, v)
}

func (s HTTPOriginConfig) OriginCAPool() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s HTTPOriginConfig) HasOriginCAPool() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s HTTPOriginConfig) OriginCAPoolBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s HTTPOriginConfig) SetOriginCAPool(v string) error {
	return s.Struct.SetText(1, v)
}

func (s HTTPOriginConfig) OriginServerName() (string, error) {
	p, err := s.Struct.Ptr(2)
	return p.Text(), err
}

func (s HTTPOriginConfig) HasOriginServerName() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s HTTPOriginConfig) OriginServerNameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(2)
	return p.TextBytes(), err
}

func (s HTTPOriginConfig) SetOriginServerName(v string) error {
	return s.Struct.SetText(2, v)
}

func (s HTTPOriginConfig) MaxIdleConnections() uint64 {
	return s.Struct.Uint64(24)
}

func (s HTTPOriginConfig) SetMaxIdleConnections(v uint64) {
	s.Struct.SetUint64(24, v)
}

func (s HTTPOriginConfig) IdleConnectionTimeout() int64 {
	return int64(s.Struct.Uint64(32))
}

func (s HTTPOriginConfig) SetIdleConnectionTimeout(v int64) {
	s.Struct.SetUint64(32, uint64(v))
}

func (s HTTPOriginConfig) ProxyConnectionTimeout() int64 {
	return int64(s.Struct.Uint64(40))
}

func (s HTTPOriginConfig) SetProxyConnectionTimeout(v int64) {
	s.Struct.SetUint64(40, uint64(v))
}

func (s HTTPOriginConfig) ExpectContinueTimeout() int64 {
	return int64(s.Struct.Uint64(48))
}

func (s HTTPOriginConfig) SetExpectContinueTimeout(v int64) {
	s.Struct.SetUint64(48, uint64(v))
}

func (s HTTPOriginConfig) ChunkedEncoding() bool {
	return s.Struct.Bit(66)
}

func (s HTTPOriginConfig) SetChunkedEncoding(v bool) {
	s.Struct.SetBit(66, v)
}

// HTTPOriginConfig_List is a list of HTTPOriginConfig.
type HTTPOriginConfig_List struct{ capnp.List }

// NewHTTPOriginConfig creates a new list of HTTPOriginConfig.
func NewHTTPOriginConfig_List(s *capnp.Segment, sz int32) (HTTPOriginConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 56, PointerCount: 3}, sz)
	return HTTPOriginConfig_List{l}, err
}

func (s HTTPOriginConfig_List) At(i int) HTTPOriginConfig { return HTTPOriginConfig{s.List.Struct(i)} }

func (s HTTPOriginConfig_List) Set(i int, v HTTPOriginConfig) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s HTTPOriginConfig_List) String() string {
	str, _ := text.MarshalList(0xe4a6a1bc139211b4, s.List)
	return str
}

// HTTPOriginConfig_Promise is a wrapper for a HTTPOriginConfig promised by a client call.
type HTTPOriginConfig_Promise struct{ *capnp.Pipeline }

func (p HTTPOriginConfig_Promise) Struct() (HTTPOriginConfig, error) {
	s, err := p.Pipeline.Struct()
	return HTTPOriginConfig{s}, err
}

type DoHProxyConfig struct{ capnp.Struct }

// DoHProxyConfig_TypeID is the unique identifier for the type DoHProxyConfig.
const DoHProxyConfig_TypeID = 0xb167b0bebe562cd0

func NewDoHProxyConfig(s *capnp.Segment) (DoHProxyConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})
	return DoHProxyConfig{st}, err
}

func NewRootDoHProxyConfig(s *capnp.Segment) (DoHProxyConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})
	return DoHProxyConfig{st}, err
}

func ReadRootDoHProxyConfig(msg *capnp.Message) (DoHProxyConfig, error) {
	root, err := msg.RootPtr()
	return DoHProxyConfig{root.Struct()}, err
}

func (s DoHProxyConfig) String() string {
	str, _ := text.Marshal(0xb167b0bebe562cd0, s.Struct)
	return str
}

func (s DoHProxyConfig) ListenHost() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s DoHProxyConfig) HasListenHost() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s DoHProxyConfig) ListenHostBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s DoHProxyConfig) SetListenHost(v string) error {
	return s.Struct.SetText(0, v)
}

func (s DoHProxyConfig) ListenPort() uint16 {
	return s.Struct.Uint16(0)
}

func (s DoHProxyConfig) SetListenPort(v uint16) {
	s.Struct.SetUint16(0, v)
}

func (s DoHProxyConfig) Upstreams() (capnp.TextList, error) {
	p, err := s.Struct.Ptr(1)
	return capnp.TextList{List: p.List()}, err
}

func (s DoHProxyConfig) HasUpstreams() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s DoHProxyConfig) SetUpstreams(v capnp.TextList) error {
	return s.Struct.SetPtr(1, v.List.ToPtr())
}

// NewUpstreams sets the upstreams field to a newly
// allocated capnp.TextList, preferring placement in s's segment.
func (s DoHProxyConfig) NewUpstreams(n int32) (capnp.TextList, error) {
	l, err := capnp.NewTextList(s.Struct.Segment(), n)
	if err != nil {
		return capnp.TextList{}, err
	}
	err = s.Struct.SetPtr(1, l.List.ToPtr())
	return l, err
}

// DoHProxyConfig_List is a list of DoHProxyConfig.
type DoHProxyConfig_List struct{ capnp.List }

// NewDoHProxyConfig creates a new list of DoHProxyConfig.
func NewDoHProxyConfig_List(s *capnp.Segment, sz int32) (DoHProxyConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2}, sz)
	return DoHProxyConfig_List{l}, err
}

func (s DoHProxyConfig_List) At(i int) DoHProxyConfig { return DoHProxyConfig{s.List.Struct(i)} }

func (s DoHProxyConfig_List) Set(i int, v DoHProxyConfig) error { return s.List.SetStruct(i, v.Struct) }

func (s DoHProxyConfig_List) String() string {
	str, _ := text.MarshalList(0xb167b0bebe562cd0, s.List)
	return str
}

// DoHProxyConfig_Promise is a wrapper for a DoHProxyConfig promised by a client call.
type DoHProxyConfig_Promise struct{ *capnp.Pipeline }

func (p DoHProxyConfig_Promise) Struct() (DoHProxyConfig, error) {
	s, err := p.Pipeline.Struct()
	return DoHProxyConfig{s}, err
}

type HelloWorldOriginConfig struct{ capnp.Struct }

// HelloWorldOriginConfig_TypeID is the unique identifier for the type HelloWorldOriginConfig.
const HelloWorldOriginConfig_TypeID = 0x8891f360e47c30d3

func NewHelloWorldOriginConfig(s *capnp.Segment) (HelloWorldOriginConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})
	return HelloWorldOriginConfig{st}, err
}

func NewRootHelloWorldOriginConfig(s *capnp.Segment) (HelloWorldOriginConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})
	return HelloWorldOriginConfig{st}, err
}

func ReadRootHelloWorldOriginConfig(msg *capnp.Message) (HelloWorldOriginConfig, error) {
	root, err := msg.RootPtr()
	return HelloWorldOriginConfig{root.Struct()}, err
}

func (s HelloWorldOriginConfig) String() string {
	str, _ := text.Marshal(0x8891f360e47c30d3, s.Struct)
	return str
}

// HelloWorldOriginConfig_List is a list of HelloWorldOriginConfig.
type HelloWorldOriginConfig_List struct{ capnp.List }

// NewHelloWorldOriginConfig creates a new list of HelloWorldOriginConfig.
func NewHelloWorldOriginConfig_List(s *capnp.Segment, sz int32) (HelloWorldOriginConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)
	return HelloWorldOriginConfig_List{l}, err
}

func (s HelloWorldOriginConfig_List) At(i int) HelloWorldOriginConfig {
	return HelloWorldOriginConfig{s.List.Struct(i)}
}

func (s HelloWorldOriginConfig_List) Set(i int, v HelloWorldOriginConfig) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s HelloWorldOriginConfig_List) String() string {
	str, _ := text.MarshalList(0x8891f360e47c30d3, s.List)
	return str
}

// HelloWorldOriginConfig_Promise is a wrapper for a HelloWorldOriginConfig promised by a client call.
type HelloWorldOriginConfig_Promise struct{ *capnp.Pipeline }

func (p HelloWorldOriginConfig_Promise) Struct() (HelloWorldOriginConfig, error) {
	s, err := p.Pipeline.Struct()
	return HelloWorldOriginConfig{s}, err
}

type Tag struct{ capnp.Struct }

// Tag_TypeID is the unique identifier for the type Tag.
const Tag_TypeID = 0xcbd96442ae3bb01a

func NewTag(s *capnp.Segment) (Tag, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})
	return Tag{st}, err
}

func NewRootTag(s *capnp.Segment) (Tag, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2})
	return Tag{st}, err
}

func ReadRootTag(msg *capnp.Message) (Tag, error) {
	root, err := msg.RootPtr()
	return Tag{root.Struct()}, err
}

func (s Tag) String() string {
	str, _ := text.Marshal(0xcbd96442ae3bb01a, s.Struct)
	return str
}

func (s Tag) Name() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s Tag) HasName() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s Tag) NameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s Tag) SetName(v string) error {
	return s.Struct.SetText(0, v)
}

func (s Tag) Value() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s Tag) HasValue() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s Tag) ValueBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s Tag) SetValue(v string) error {
	return s.Struct.SetText(1, v)
}

// Tag_List is a list of Tag.
type Tag_List struct{ capnp.List }

// NewTag creates a new list of Tag.
func NewTag_List(s *capnp.Segment, sz int32) (Tag_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 2}, sz)
	return Tag_List{l}, err
}

func (s Tag_List) At(i int) Tag { return Tag{s.List.Struct(i)} }

func (s Tag_List) Set(i int, v Tag) error { return s.List.SetStruct(i, v.Struct) }

func (s Tag_List) String() string {
	str, _ := text.MarshalList(0xcbd96442ae3bb01a, s.List)
	return str
}

// Tag_Promise is a wrapper for a Tag promised by a client call.
type Tag_Promise struct{ *capnp.Pipeline }

func (p Tag_Promise) Struct() (Tag, error) {
	s, err := p.Pipeline.Struct()
	return Tag{s}, err
}

type ExistingTunnelPolicy uint16

// ExistingTunnelPolicy_TypeID is the unique identifier for the type ExistingTunnelPolicy.
const ExistingTunnelPolicy_TypeID = 0x84cb9536a2cf6d3c

// Values of ExistingTunnelPolicy.
const (
	ExistingTunnelPolicy_ignore     ExistingTunnelPolicy = 0
	ExistingTunnelPolicy_disconnect ExistingTunnelPolicy = 1
	ExistingTunnelPolicy_balance    ExistingTunnelPolicy = 2
)

// String returns the enum's constant name.
func (c ExistingTunnelPolicy) String() string {
	switch c {
	case ExistingTunnelPolicy_ignore:
		return "ignore"
	case ExistingTunnelPolicy_disconnect:
		return "disconnect"
	case ExistingTunnelPolicy_balance:
		return "balance"

	default:
		return ""
	}
}

// ExistingTunnelPolicyFromString returns the enum value with a name,
// or the zero value if there's no such value.
func ExistingTunnelPolicyFromString(c string) ExistingTunnelPolicy {
	switch c {
	case "ignore":
		return ExistingTunnelPolicy_ignore
	case "disconnect":
		return ExistingTunnelPolicy_disconnect
	case "balance":
		return ExistingTunnelPolicy_balance

	default:
		return 0
	}
}

type ExistingTunnelPolicy_List struct{ capnp.List }

func NewExistingTunnelPolicy_List(s *capnp.Segment, sz int32) (ExistingTunnelPolicy_List, error) {
	l, err := capnp.NewUInt16List(s, sz)
	return ExistingTunnelPolicy_List{l.List}, err
}

func (l ExistingTunnelPolicy_List) At(i int) ExistingTunnelPolicy {
	ul := capnp.UInt16List{List: l.List}
	return ExistingTunnelPolicy(ul.At(i))
}

func (l ExistingTunnelPolicy_List) Set(i int, v ExistingTunnelPolicy) {
	ul := capnp.UInt16List{List: l.List}
	ul.Set(i, uint16(v))
}

type ServerInfo struct{ capnp.Struct }

// ServerInfo_TypeID is the unique identifier for the type ServerInfo.
const ServerInfo_TypeID = 0xf2c68e2547ec3866

func NewServerInfo(s *capnp.Segment) (ServerInfo, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return ServerInfo{st}, err
}

func NewRootServerInfo(s *capnp.Segment) (ServerInfo, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return ServerInfo{st}, err
}

func ReadRootServerInfo(msg *capnp.Message) (ServerInfo, error) {
	root, err := msg.RootPtr()
	return ServerInfo{root.Struct()}, err
}

func (s ServerInfo) String() string {
	str, _ := text.Marshal(0xf2c68e2547ec3866, s.Struct)
	return str
}

func (s ServerInfo) LocationName() (string, error) {
	p, err := s.Struct.Ptr(0)
	return p.Text(), err
}

func (s ServerInfo) HasLocationName() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ServerInfo) LocationNameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return p.TextBytes(), err
}

func (s ServerInfo) SetLocationName(v string) error {
	return s.Struct.SetText(0, v)
}

// ServerInfo_List is a list of ServerInfo.
type ServerInfo_List struct{ capnp.List }

// NewServerInfo creates a new list of ServerInfo.
func NewServerInfo_List(s *capnp.Segment, sz int32) (ServerInfo_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return ServerInfo_List{l}, err
}

func (s ServerInfo_List) At(i int) ServerInfo { return ServerInfo{s.List.Struct(i)} }

func (s ServerInfo_List) Set(i int, v ServerInfo) error { return s.List.SetStruct(i, v.Struct) }

func (s ServerInfo_List) String() string {
	str, _ := text.MarshalList(0xf2c68e2547ec3866, s.List)
	return str
}

// ServerInfo_Promise is a wrapper for a ServerInfo promised by a client call.
type ServerInfo_Promise struct{ *capnp.Pipeline }

func (p ServerInfo_Promise) Struct() (ServerInfo, error) {
	s, err := p.Pipeline.Struct()
	return ServerInfo{s}, err
}

type UseConfigurationResult struct{ capnp.Struct }

// UseConfigurationResult_TypeID is the unique identifier for the type UseConfigurationResult.
const UseConfigurationResult_TypeID = 0xd58a254e7a792b87

func NewUseConfigurationResult(s *capnp.Segment) (UseConfigurationResult, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})
	return UseConfigurationResult{st}, err
}

func NewRootUseConfigurationResult(s *capnp.Segment) (UseConfigurationResult, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1})
	return UseConfigurationResult{st}, err
}

func ReadRootUseConfigurationResult(msg *capnp.Message) (UseConfigurationResult, error) {
	root, err := msg.RootPtr()
	return UseConfigurationResult{root.Struct()}, err
}

func (s UseConfigurationResult) String() string {
	str, _ := text.Marshal(0xd58a254e7a792b87, s.Struct)
	return str
}

func (s UseConfigurationResult) Success() bool {
	return s.Struct.Bit(0)
}

func (s UseConfigurationResult) SetSuccess(v bool) {
	s.Struct.SetBit(0, v)
}

func (s UseConfigurationResult) FailedConfigs() (FailedConfig_List, error) {
	p, err := s.Struct.Ptr(0)
	return FailedConfig_List{List: p.List()}, err
}

func (s UseConfigurationResult) HasFailedConfigs() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s UseConfigurationResult) SetFailedConfigs(v FailedConfig_List) error {
	return s.Struct.SetPtr(0, v.List.ToPtr())
}

// NewFailedConfigs sets the failedConfigs field to a newly
// allocated FailedConfig_List, preferring placement in s's segment.
func (s UseConfigurationResult) NewFailedConfigs(n int32) (FailedConfig_List, error) {
	l, err := NewFailedConfig_List(s.Struct.Segment(), n)
	if err != nil {
		return FailedConfig_List{}, err
	}
	err = s.Struct.SetPtr(0, l.List.ToPtr())
	return l, err
}

// UseConfigurationResult_List is a list of UseConfigurationResult.
type UseConfigurationResult_List struct{ capnp.List }

// NewUseConfigurationResult creates a new list of UseConfigurationResult.
func NewUseConfigurationResult_List(s *capnp.Segment, sz int32) (UseConfigurationResult_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 1}, sz)
	return UseConfigurationResult_List{l}, err
}

func (s UseConfigurationResult_List) At(i int) UseConfigurationResult {
	return UseConfigurationResult{s.List.Struct(i)}
}

func (s UseConfigurationResult_List) Set(i int, v UseConfigurationResult) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s UseConfigurationResult_List) String() string {
	str, _ := text.MarshalList(0xd58a254e7a792b87, s.List)
	return str
}

// UseConfigurationResult_Promise is a wrapper for a UseConfigurationResult promised by a client call.
type UseConfigurationResult_Promise struct{ *capnp.Pipeline }

func (p UseConfigurationResult_Promise) Struct() (UseConfigurationResult, error) {
	s, err := p.Pipeline.Struct()
	return UseConfigurationResult{s}, err
}

type FailedConfig struct{ capnp.Struct }
type FailedConfig_config FailedConfig
type FailedConfig_config_Which uint16

const (
	FailedConfig_config_Which_supervisor     FailedConfig_config_Which = 0
	FailedConfig_config_Which_edgeConnection FailedConfig_config_Which = 1
	FailedConfig_config_Which_doh            FailedConfig_config_Which = 2
	FailedConfig_config_Which_reverseProxy   FailedConfig_config_Which = 3
)

func (w FailedConfig_config_Which) String() string {
	const s = "supervisoredgeConnectiondohreverseProxy"
	switch w {
	case FailedConfig_config_Which_supervisor:
		return s[0:10]
	case FailedConfig_config_Which_edgeConnection:
		return s[10:24]
	case FailedConfig_config_Which_doh:
		return s[24:27]
	case FailedConfig_config_Which_reverseProxy:
		return s[27:39]

	}
	return "FailedConfig_config_Which(" + strconv.FormatUint(uint64(w), 10) + ")"
}

// FailedConfig_TypeID is the unique identifier for the type FailedConfig.
const FailedConfig_TypeID = 0xea20b390b257d1a5

func NewFailedConfig(s *capnp.Segment) (FailedConfig, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})
	return FailedConfig{st}, err
}

func NewRootFailedConfig(s *capnp.Segment) (FailedConfig, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2})
	return FailedConfig{st}, err
}

func ReadRootFailedConfig(msg *capnp.Message) (FailedConfig, error) {
	root, err := msg.RootPtr()
	return FailedConfig{root.Struct()}, err
}

func (s FailedConfig) String() string {
	str, _ := text.Marshal(0xea20b390b257d1a5, s.Struct)
	return str
}

func (s FailedConfig) Config() FailedConfig_config { return FailedConfig_config(s) }

func (s FailedConfig_config) Which() FailedConfig_config_Which {
	return FailedConfig_config_Which(s.Struct.Uint16(0))
}
func (s FailedConfig_config) Supervisor() (SupervisorConfig, error) {
	if s.Struct.Uint16(0) != 0 {
		panic("Which() != supervisor")
	}
	p, err := s.Struct.Ptr(0)
	return SupervisorConfig{Struct: p.Struct()}, err
}

func (s FailedConfig_config) HasSupervisor() bool {
	if s.Struct.Uint16(0) != 0 {
		return false
	}
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s FailedConfig_config) SetSupervisor(v SupervisorConfig) error {
	s.Struct.SetUint16(0, 0)
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewSupervisor sets the supervisor field to a newly
// allocated SupervisorConfig struct, preferring placement in s's segment.
func (s FailedConfig_config) NewSupervisor() (SupervisorConfig, error) {
	s.Struct.SetUint16(0, 0)
	ss, err := NewSupervisorConfig(s.Struct.Segment())
	if err != nil {
		return SupervisorConfig{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

func (s FailedConfig_config) EdgeConnection() (EdgeConnectionConfig, error) {
	if s.Struct.Uint16(0) != 1 {
		panic("Which() != edgeConnection")
	}
	p, err := s.Struct.Ptr(0)
	return EdgeConnectionConfig{Struct: p.Struct()}, err
}

func (s FailedConfig_config) HasEdgeConnection() bool {
	if s.Struct.Uint16(0) != 1 {
		return false
	}
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s FailedConfig_config) SetEdgeConnection(v EdgeConnectionConfig) error {
	s.Struct.SetUint16(0, 1)
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewEdgeConnection sets the edgeConnection field to a newly
// allocated EdgeConnectionConfig struct, preferring placement in s's segment.
func (s FailedConfig_config) NewEdgeConnection() (EdgeConnectionConfig, error) {
	s.Struct.SetUint16(0, 1)
	ss, err := NewEdgeConnectionConfig(s.Struct.Segment())
	if err != nil {
		return EdgeConnectionConfig{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

func (s FailedConfig_config) Doh() (DoHProxyConfig, error) {
	if s.Struct.Uint16(0) != 2 {
		panic("Which() != doh")
	}
	p, err := s.Struct.Ptr(0)
	return DoHProxyConfig{Struct: p.Struct()}, err
}

func (s FailedConfig_config) HasDoh() bool {
	if s.Struct.Uint16(0) != 2 {
		return false
	}
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s FailedConfig_config) SetDoh(v DoHProxyConfig) error {
	s.Struct.SetUint16(0, 2)
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewDoh sets the doh field to a newly
// allocated DoHProxyConfig struct, preferring placement in s's segment.
func (s FailedConfig_config) NewDoh() (DoHProxyConfig, error) {
	s.Struct.SetUint16(0, 2)
	ss, err := NewDoHProxyConfig(s.Struct.Segment())
	if err != nil {
		return DoHProxyConfig{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

func (s FailedConfig_config) ReverseProxy() (ReverseProxyConfig, error) {
	if s.Struct.Uint16(0) != 3 {
		panic("Which() != reverseProxy")
	}
	p, err := s.Struct.Ptr(0)
	return ReverseProxyConfig{Struct: p.Struct()}, err
}

func (s FailedConfig_config) HasReverseProxy() bool {
	if s.Struct.Uint16(0) != 3 {
		return false
	}
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s FailedConfig_config) SetReverseProxy(v ReverseProxyConfig) error {
	s.Struct.SetUint16(0, 3)
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewReverseProxy sets the reverseProxy field to a newly
// allocated ReverseProxyConfig struct, preferring placement in s's segment.
func (s FailedConfig_config) NewReverseProxy() (ReverseProxyConfig, error) {
	s.Struct.SetUint16(0, 3)
	ss, err := NewReverseProxyConfig(s.Struct.Segment())
	if err != nil {
		return ReverseProxyConfig{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

func (s FailedConfig) Reason() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s FailedConfig) HasReason() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s FailedConfig) ReasonBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s FailedConfig) SetReason(v string) error {
	return s.Struct.SetText(1, v)
}

// FailedConfig_List is a list of FailedConfig.
type FailedConfig_List struct{ capnp.List }

// NewFailedConfig creates a new list of FailedConfig.
func NewFailedConfig_List(s *capnp.Segment, sz int32) (FailedConfig_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 2}, sz)
	return FailedConfig_List{l}, err
}

func (s FailedConfig_List) At(i int) FailedConfig { return FailedConfig{s.List.Struct(i)} }

func (s FailedConfig_List) Set(i int, v FailedConfig) error { return s.List.SetStruct(i, v.Struct) }

func (s FailedConfig_List) String() string {
	str, _ := text.MarshalList(0xea20b390b257d1a5, s.List)
	return str
}

// FailedConfig_Promise is a wrapper for a FailedConfig promised by a client call.
type FailedConfig_Promise struct{ *capnp.Pipeline }

func (p FailedConfig_Promise) Struct() (FailedConfig, error) {
	s, err := p.Pipeline.Struct()
	return FailedConfig{s}, err
}

func (p FailedConfig_Promise) Config() FailedConfig_config_Promise {
	return FailedConfig_config_Promise{p.Pipeline}
}

// FailedConfig_config_Promise is a wrapper for a FailedConfig_config promised by a client call.
type FailedConfig_config_Promise struct{ *capnp.Pipeline }

func (p FailedConfig_config_Promise) Struct() (FailedConfig_config, error) {
	s, err := p.Pipeline.Struct()
	return FailedConfig_config{s}, err
}

func (p FailedConfig_config_Promise) Supervisor() SupervisorConfig_Promise {
	return SupervisorConfig_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

func (p FailedConfig_config_Promise) EdgeConnection() EdgeConnectionConfig_Promise {
	return EdgeConnectionConfig_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

func (p FailedConfig_config_Promise) Doh() DoHProxyConfig_Promise {
	return DoHProxyConfig_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

func (p FailedConfig_config_Promise) ReverseProxy() ReverseProxyConfig_Promise {
	return ReverseProxyConfig_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type TunnelServer struct{ Client capnp.Client }

// TunnelServer_TypeID is the unique identifier for the type TunnelServer.
const TunnelServer_TypeID = 0xea58385c65416035

func (c TunnelServer) RegisterTunnel(ctx context.Context, params func(TunnelServer_registerTunnel_Params) error, opts ...capnp.CallOption) TunnelServer_registerTunnel_Results_Promise {
	if c.Client == nil {
		return TunnelServer_registerTunnel_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}
	}
	call := &capnp.Call{
		Ctx: ctx,
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      0,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "registerTunnel",
		},
		Options: capnp.NewCallOptions(opts),
	}
	if params != nil {
		call.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 3}
		call.ParamsFunc = func(s capnp.Struct) error { return params(TunnelServer_registerTunnel_Params{Struct: s}) }
	}
	return TunnelServer_registerTunnel_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}
}
func (c TunnelServer) GetServerInfo(ctx context.Context, params func(TunnelServer_getServerInfo_Params) error, opts ...capnp.CallOption) TunnelServer_getServerInfo_Results_Promise {
	if c.Client == nil {
		return TunnelServer_getServerInfo_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}
	}
	call := &capnp.Call{
		Ctx: ctx,
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      1,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "getServerInfo",
		},
		Options: capnp.NewCallOptions(opts),
	}
	if params != nil {
		call.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 0}
		call.ParamsFunc = func(s capnp.Struct) error { return params(TunnelServer_getServerInfo_Params{Struct: s}) }
	}
	return TunnelServer_getServerInfo_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}
}
func (c TunnelServer) UnregisterTunnel(ctx context.Context, params func(TunnelServer_unregisterTunnel_Params) error, opts ...capnp.CallOption) TunnelServer_unregisterTunnel_Results_Promise {
	if c.Client == nil {
		return TunnelServer_unregisterTunnel_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}
	}
	call := &capnp.Call{
		Ctx: ctx,
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      2,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "unregisterTunnel",
		},
		Options: capnp.NewCallOptions(opts),
	}
	if params != nil {
		call.ParamsSize = capnp.ObjectSize{DataSize: 8, PointerCount: 0}
		call.ParamsFunc = func(s capnp.Struct) error { return params(TunnelServer_unregisterTunnel_Params{Struct: s}) }
	}
	return TunnelServer_unregisterTunnel_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}
}
func (c TunnelServer) Connect(ctx context.Context, params func(TunnelServer_connect_Params) error, opts ...capnp.CallOption) TunnelServer_connect_Results_Promise {
	if c.Client == nil {
		return TunnelServer_connect_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}
	}
	call := &capnp.Call{
		Ctx: ctx,
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      3,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "connect",
		},
		Options: capnp.NewCallOptions(opts),
	}
	if params != nil {
		call.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}
		call.ParamsFunc = func(s capnp.Struct) error { return params(TunnelServer_connect_Params{Struct: s}) }
	}
	return TunnelServer_connect_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}
}

type TunnelServer_Server interface {
	RegisterTunnel(TunnelServer_registerTunnel) error

	GetServerInfo(TunnelServer_getServerInfo) error

	UnregisterTunnel(TunnelServer_unregisterTunnel) error

	Connect(TunnelServer_connect) error
}

func TunnelServer_ServerToClient(s TunnelServer_Server) TunnelServer {
	c, _ := s.(server.Closer)
	return TunnelServer{Client: server.New(TunnelServer_Methods(nil, s), c)}
}

func TunnelServer_Methods(methods []server.Method, s TunnelServer_Server) []server.Method {
	if cap(methods) == 0 {
		methods = make([]server.Method, 0, 4)
	}

	methods = append(methods, server.Method{
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      0,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "registerTunnel",
		},
		Impl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {
			call := TunnelServer_registerTunnel{c, opts, TunnelServer_registerTunnel_Params{Struct: p}, TunnelServer_registerTunnel_Results{Struct: r}}
			return s.RegisterTunnel(call)
		},
		ResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},
	})

	methods = append(methods, server.Method{
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      1,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "getServerInfo",
		},
		Impl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {
			call := TunnelServer_getServerInfo{c, opts, TunnelServer_getServerInfo_Params{Struct: p}, TunnelServer_getServerInfo_Results{Struct: r}}
			return s.GetServerInfo(call)
		},
		ResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},
	})

	methods = append(methods, server.Method{
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      2,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "unregisterTunnel",
		},
		Impl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {
			call := TunnelServer_unregisterTunnel{c, opts, TunnelServer_unregisterTunnel_Params{Struct: p}, TunnelServer_unregisterTunnel_Results{Struct: r}}
			return s.UnregisterTunnel(call)
		},
		ResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 0},
	})

	methods = append(methods, server.Method{
		Method: capnp.Method{
			InterfaceID:   0xea58385c65416035,
			MethodID:      3,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:TunnelServer",
			MethodName:    "connect",
		},
		Impl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {
			call := TunnelServer_connect{c, opts, TunnelServer_connect_Params{Struct: p}, TunnelServer_connect_Results{Struct: r}}
			return s.Connect(call)
		},
		ResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},
	})

	return methods
}

// TunnelServer_registerTunnel holds the arguments for a server call to TunnelServer.registerTunnel.
type TunnelServer_registerTunnel struct {
	Ctx     context.Context
	Options capnp.CallOptions
	Params  TunnelServer_registerTunnel_Params
	Results TunnelServer_registerTunnel_Results
}

// TunnelServer_getServerInfo holds the arguments for a server call to TunnelServer.getServerInfo.
type TunnelServer_getServerInfo struct {
	Ctx     context.Context
	Options capnp.CallOptions
	Params  TunnelServer_getServerInfo_Params
	Results TunnelServer_getServerInfo_Results
}

// TunnelServer_unregisterTunnel holds the arguments for a server call to TunnelServer.unregisterTunnel.
type TunnelServer_unregisterTunnel struct {
	Ctx     context.Context
	Options capnp.CallOptions
	Params  TunnelServer_unregisterTunnel_Params
	Results TunnelServer_unregisterTunnel_Results
}

// TunnelServer_connect holds the arguments for a server call to TunnelServer.connect.
type TunnelServer_connect struct {
	Ctx     context.Context
	Options capnp.CallOptions
	Params  TunnelServer_connect_Params
	Results TunnelServer_connect_Results
}

type TunnelServer_registerTunnel_Params struct{ capnp.Struct }

// TunnelServer_registerTunnel_Params_TypeID is the unique identifier for the type TunnelServer_registerTunnel_Params.
const TunnelServer_registerTunnel_Params_TypeID = 0xb70431c0dc014915

func NewTunnelServer_registerTunnel_Params(s *capnp.Segment) (TunnelServer_registerTunnel_Params, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})
	return TunnelServer_registerTunnel_Params{st}, err
}

func NewRootTunnelServer_registerTunnel_Params(s *capnp.Segment) (TunnelServer_registerTunnel_Params, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3})
	return TunnelServer_registerTunnel_Params{st}, err
}

func ReadRootTunnelServer_registerTunnel_Params(msg *capnp.Message) (TunnelServer_registerTunnel_Params, error) {
	root, err := msg.RootPtr()
	return TunnelServer_registerTunnel_Params{root.Struct()}, err
}

func (s TunnelServer_registerTunnel_Params) String() string {
	str, _ := text.Marshal(0xb70431c0dc014915, s.Struct)
	return str
}

func (s TunnelServer_registerTunnel_Params) OriginCert() ([]byte, error) {
	p, err := s.Struct.Ptr(0)
	return []byte(p.Data()), err
}

func (s TunnelServer_registerTunnel_Params) HasOriginCert() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s TunnelServer_registerTunnel_Params) SetOriginCert(v []byte) error {
	return s.Struct.SetData(0, v)
}

func (s TunnelServer_registerTunnel_Params) Hostname() (string, error) {
	p, err := s.Struct.Ptr(1)
	return p.Text(), err
}

func (s TunnelServer_registerTunnel_Params) HasHostname() bool {
	p, err := s.Struct.Ptr(1)
	return p.IsValid() || err != nil
}

func (s TunnelServer_registerTunnel_Params) HostnameBytes() ([]byte, error) {
	p, err := s.Struct.Ptr(1)
	return p.TextBytes(), err
}

func (s TunnelServer_registerTunnel_Params) SetHostname(v string) error {
	return s.Struct.SetText(1, v)
}

func (s TunnelServer_registerTunnel_Params) Options() (RegistrationOptions, error) {
	p, err := s.Struct.Ptr(2)
	return RegistrationOptions{Struct: p.Struct()}, err
}

func (s TunnelServer_registerTunnel_Params) HasOptions() bool {
	p, err := s.Struct.Ptr(2)
	return p.IsValid() || err != nil
}

func (s TunnelServer_registerTunnel_Params) SetOptions(v RegistrationOptions) error {
	return s.Struct.SetPtr(2, v.Struct.ToPtr())
}

// NewOptions sets the options field to a newly
// allocated RegistrationOptions struct, preferring placement in s's segment.
func (s TunnelServer_registerTunnel_Params) NewOptions() (RegistrationOptions, error) {
	ss, err := NewRegistrationOptions(s.Struct.Segment())
	if err != nil {
		return RegistrationOptions{}, err
	}
	err = s.Struct.SetPtr(2, ss.Struct.ToPtr())
	return ss, err
}

// TunnelServer_registerTunnel_Params_List is a list of TunnelServer_registerTunnel_Params.
type TunnelServer_registerTunnel_Params_List struct{ capnp.List }

// NewTunnelServer_registerTunnel_Params creates a new list of TunnelServer_registerTunnel_Params.
func NewTunnelServer_registerTunnel_Params_List(s *capnp.Segment, sz int32) (TunnelServer_registerTunnel_Params_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 3}, sz)
	return TunnelServer_registerTunnel_Params_List{l}, err
}

func (s TunnelServer_registerTunnel_Params_List) At(i int) TunnelServer_registerTunnel_Params {
	return TunnelServer_registerTunnel_Params{s.List.Struct(i)}
}

func (s TunnelServer_registerTunnel_Params_List) Set(i int, v TunnelServer_registerTunnel_Params) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_registerTunnel_Params_List) String() string {
	str, _ := text.MarshalList(0xb70431c0dc014915, s.List)
	return str
}

// TunnelServer_registerTunnel_Params_Promise is a wrapper for a TunnelServer_registerTunnel_Params promised by a client call.
type TunnelServer_registerTunnel_Params_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_registerTunnel_Params_Promise) Struct() (TunnelServer_registerTunnel_Params, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_registerTunnel_Params{s}, err
}

func (p TunnelServer_registerTunnel_Params_Promise) Options() RegistrationOptions_Promise {
	return RegistrationOptions_Promise{Pipeline: p.Pipeline.GetPipeline(2)}
}

type TunnelServer_registerTunnel_Results struct{ capnp.Struct }

// TunnelServer_registerTunnel_Results_TypeID is the unique identifier for the type TunnelServer_registerTunnel_Results.
const TunnelServer_registerTunnel_Results_TypeID = 0xf2c122394f447e8e

func NewTunnelServer_registerTunnel_Results(s *capnp.Segment) (TunnelServer_registerTunnel_Results, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_registerTunnel_Results{st}, err
}

func NewRootTunnelServer_registerTunnel_Results(s *capnp.Segment) (TunnelServer_registerTunnel_Results, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_registerTunnel_Results{st}, err
}

func ReadRootTunnelServer_registerTunnel_Results(msg *capnp.Message) (TunnelServer_registerTunnel_Results, error) {
	root, err := msg.RootPtr()
	return TunnelServer_registerTunnel_Results{root.Struct()}, err
}

func (s TunnelServer_registerTunnel_Results) String() string {
	str, _ := text.Marshal(0xf2c122394f447e8e, s.Struct)
	return str
}

func (s TunnelServer_registerTunnel_Results) Result() (TunnelRegistration, error) {
	p, err := s.Struct.Ptr(0)
	return TunnelRegistration{Struct: p.Struct()}, err
}

func (s TunnelServer_registerTunnel_Results) HasResult() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s TunnelServer_registerTunnel_Results) SetResult(v TunnelRegistration) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewResult sets the result field to a newly
// allocated TunnelRegistration struct, preferring placement in s's segment.
func (s TunnelServer_registerTunnel_Results) NewResult() (TunnelRegistration, error) {
	ss, err := NewTunnelRegistration(s.Struct.Segment())
	if err != nil {
		return TunnelRegistration{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// TunnelServer_registerTunnel_Results_List is a list of TunnelServer_registerTunnel_Results.
type TunnelServer_registerTunnel_Results_List struct{ capnp.List }

// NewTunnelServer_registerTunnel_Results creates a new list of TunnelServer_registerTunnel_Results.
func NewTunnelServer_registerTunnel_Results_List(s *capnp.Segment, sz int32) (TunnelServer_registerTunnel_Results_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return TunnelServer_registerTunnel_Results_List{l}, err
}

func (s TunnelServer_registerTunnel_Results_List) At(i int) TunnelServer_registerTunnel_Results {
	return TunnelServer_registerTunnel_Results{s.List.Struct(i)}
}

func (s TunnelServer_registerTunnel_Results_List) Set(i int, v TunnelServer_registerTunnel_Results) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_registerTunnel_Results_List) String() string {
	str, _ := text.MarshalList(0xf2c122394f447e8e, s.List)
	return str
}

// TunnelServer_registerTunnel_Results_Promise is a wrapper for a TunnelServer_registerTunnel_Results promised by a client call.
type TunnelServer_registerTunnel_Results_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_registerTunnel_Results_Promise) Struct() (TunnelServer_registerTunnel_Results, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_registerTunnel_Results{s}, err
}

func (p TunnelServer_registerTunnel_Results_Promise) Result() TunnelRegistration_Promise {
	return TunnelRegistration_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type TunnelServer_getServerInfo_Params struct{ capnp.Struct }

// TunnelServer_getServerInfo_Params_TypeID is the unique identifier for the type TunnelServer_getServerInfo_Params.
const TunnelServer_getServerInfo_Params_TypeID = 0xdc3ed6801961e502

func NewTunnelServer_getServerInfo_Params(s *capnp.Segment) (TunnelServer_getServerInfo_Params, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})
	return TunnelServer_getServerInfo_Params{st}, err
}

func NewRootTunnelServer_getServerInfo_Params(s *capnp.Segment) (TunnelServer_getServerInfo_Params, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})
	return TunnelServer_getServerInfo_Params{st}, err
}

func ReadRootTunnelServer_getServerInfo_Params(msg *capnp.Message) (TunnelServer_getServerInfo_Params, error) {
	root, err := msg.RootPtr()
	return TunnelServer_getServerInfo_Params{root.Struct()}, err
}

func (s TunnelServer_getServerInfo_Params) String() string {
	str, _ := text.Marshal(0xdc3ed6801961e502, s.Struct)
	return str
}

// TunnelServer_getServerInfo_Params_List is a list of TunnelServer_getServerInfo_Params.
type TunnelServer_getServerInfo_Params_List struct{ capnp.List }

// NewTunnelServer_getServerInfo_Params creates a new list of TunnelServer_getServerInfo_Params.
func NewTunnelServer_getServerInfo_Params_List(s *capnp.Segment, sz int32) (TunnelServer_getServerInfo_Params_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)
	return TunnelServer_getServerInfo_Params_List{l}, err
}

func (s TunnelServer_getServerInfo_Params_List) At(i int) TunnelServer_getServerInfo_Params {
	return TunnelServer_getServerInfo_Params{s.List.Struct(i)}
}

func (s TunnelServer_getServerInfo_Params_List) Set(i int, v TunnelServer_getServerInfo_Params) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_getServerInfo_Params_List) String() string {
	str, _ := text.MarshalList(0xdc3ed6801961e502, s.List)
	return str
}

// TunnelServer_getServerInfo_Params_Promise is a wrapper for a TunnelServer_getServerInfo_Params promised by a client call.
type TunnelServer_getServerInfo_Params_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_getServerInfo_Params_Promise) Struct() (TunnelServer_getServerInfo_Params, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_getServerInfo_Params{s}, err
}

type TunnelServer_getServerInfo_Results struct{ capnp.Struct }

// TunnelServer_getServerInfo_Results_TypeID is the unique identifier for the type TunnelServer_getServerInfo_Results.
const TunnelServer_getServerInfo_Results_TypeID = 0xe3e37d096a5b564e

func NewTunnelServer_getServerInfo_Results(s *capnp.Segment) (TunnelServer_getServerInfo_Results, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_getServerInfo_Results{st}, err
}

func NewRootTunnelServer_getServerInfo_Results(s *capnp.Segment) (TunnelServer_getServerInfo_Results, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_getServerInfo_Results{st}, err
}

func ReadRootTunnelServer_getServerInfo_Results(msg *capnp.Message) (TunnelServer_getServerInfo_Results, error) {
	root, err := msg.RootPtr()
	return TunnelServer_getServerInfo_Results{root.Struct()}, err
}

func (s TunnelServer_getServerInfo_Results) String() string {
	str, _ := text.Marshal(0xe3e37d096a5b564e, s.Struct)
	return str
}

func (s TunnelServer_getServerInfo_Results) Result() (ServerInfo, error) {
	p, err := s.Struct.Ptr(0)
	return ServerInfo{Struct: p.Struct()}, err
}

func (s TunnelServer_getServerInfo_Results) HasResult() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s TunnelServer_getServerInfo_Results) SetResult(v ServerInfo) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewResult sets the result field to a newly
// allocated ServerInfo struct, preferring placement in s's segment.
func (s TunnelServer_getServerInfo_Results) NewResult() (ServerInfo, error) {
	ss, err := NewServerInfo(s.Struct.Segment())
	if err != nil {
		return ServerInfo{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// TunnelServer_getServerInfo_Results_List is a list of TunnelServer_getServerInfo_Results.
type TunnelServer_getServerInfo_Results_List struct{ capnp.List }

// NewTunnelServer_getServerInfo_Results creates a new list of TunnelServer_getServerInfo_Results.
func NewTunnelServer_getServerInfo_Results_List(s *capnp.Segment, sz int32) (TunnelServer_getServerInfo_Results_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return TunnelServer_getServerInfo_Results_List{l}, err
}

func (s TunnelServer_getServerInfo_Results_List) At(i int) TunnelServer_getServerInfo_Results {
	return TunnelServer_getServerInfo_Results{s.List.Struct(i)}
}

func (s TunnelServer_getServerInfo_Results_List) Set(i int, v TunnelServer_getServerInfo_Results) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_getServerInfo_Results_List) String() string {
	str, _ := text.MarshalList(0xe3e37d096a5b564e, s.List)
	return str
}

// TunnelServer_getServerInfo_Results_Promise is a wrapper for a TunnelServer_getServerInfo_Results promised by a client call.
type TunnelServer_getServerInfo_Results_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_getServerInfo_Results_Promise) Struct() (TunnelServer_getServerInfo_Results, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_getServerInfo_Results{s}, err
}

func (p TunnelServer_getServerInfo_Results_Promise) Result() ServerInfo_Promise {
	return ServerInfo_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type TunnelServer_unregisterTunnel_Params struct{ capnp.Struct }

// TunnelServer_unregisterTunnel_Params_TypeID is the unique identifier for the type TunnelServer_unregisterTunnel_Params.
const TunnelServer_unregisterTunnel_Params_TypeID = 0x9b87b390babc2ccf

func NewTunnelServer_unregisterTunnel_Params(s *capnp.Segment) (TunnelServer_unregisterTunnel_Params, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})
	return TunnelServer_unregisterTunnel_Params{st}, err
}

func NewRootTunnelServer_unregisterTunnel_Params(s *capnp.Segment) (TunnelServer_unregisterTunnel_Params, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0})
	return TunnelServer_unregisterTunnel_Params{st}, err
}

func ReadRootTunnelServer_unregisterTunnel_Params(msg *capnp.Message) (TunnelServer_unregisterTunnel_Params, error) {
	root, err := msg.RootPtr()
	return TunnelServer_unregisterTunnel_Params{root.Struct()}, err
}

func (s TunnelServer_unregisterTunnel_Params) String() string {
	str, _ := text.Marshal(0x9b87b390babc2ccf, s.Struct)
	return str
}

func (s TunnelServer_unregisterTunnel_Params) GracePeriodNanoSec() int64 {
	return int64(s.Struct.Uint64(0))
}

func (s TunnelServer_unregisterTunnel_Params) SetGracePeriodNanoSec(v int64) {
	s.Struct.SetUint64(0, uint64(v))
}

// TunnelServer_unregisterTunnel_Params_List is a list of TunnelServer_unregisterTunnel_Params.
type TunnelServer_unregisterTunnel_Params_List struct{ capnp.List }

// NewTunnelServer_unregisterTunnel_Params creates a new list of TunnelServer_unregisterTunnel_Params.
func NewTunnelServer_unregisterTunnel_Params_List(s *capnp.Segment, sz int32) (TunnelServer_unregisterTunnel_Params_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 8, PointerCount: 0}, sz)
	return TunnelServer_unregisterTunnel_Params_List{l}, err
}

func (s TunnelServer_unregisterTunnel_Params_List) At(i int) TunnelServer_unregisterTunnel_Params {
	return TunnelServer_unregisterTunnel_Params{s.List.Struct(i)}
}

func (s TunnelServer_unregisterTunnel_Params_List) Set(i int, v TunnelServer_unregisterTunnel_Params) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_unregisterTunnel_Params_List) String() string {
	str, _ := text.MarshalList(0x9b87b390babc2ccf, s.List)
	return str
}

// TunnelServer_unregisterTunnel_Params_Promise is a wrapper for a TunnelServer_unregisterTunnel_Params promised by a client call.
type TunnelServer_unregisterTunnel_Params_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_unregisterTunnel_Params_Promise) Struct() (TunnelServer_unregisterTunnel_Params, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_unregisterTunnel_Params{s}, err
}

type TunnelServer_unregisterTunnel_Results struct{ capnp.Struct }

// TunnelServer_unregisterTunnel_Results_TypeID is the unique identifier for the type TunnelServer_unregisterTunnel_Results.
const TunnelServer_unregisterTunnel_Results_TypeID = 0xa29a916d4ebdd894

func NewTunnelServer_unregisterTunnel_Results(s *capnp.Segment) (TunnelServer_unregisterTunnel_Results, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})
	return TunnelServer_unregisterTunnel_Results{st}, err
}

func NewRootTunnelServer_unregisterTunnel_Results(s *capnp.Segment) (TunnelServer_unregisterTunnel_Results, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0})
	return TunnelServer_unregisterTunnel_Results{st}, err
}

func ReadRootTunnelServer_unregisterTunnel_Results(msg *capnp.Message) (TunnelServer_unregisterTunnel_Results, error) {
	root, err := msg.RootPtr()
	return TunnelServer_unregisterTunnel_Results{root.Struct()}, err
}

func (s TunnelServer_unregisterTunnel_Results) String() string {
	str, _ := text.Marshal(0xa29a916d4ebdd894, s.Struct)
	return str
}

// TunnelServer_unregisterTunnel_Results_List is a list of TunnelServer_unregisterTunnel_Results.
type TunnelServer_unregisterTunnel_Results_List struct{ capnp.List }

// NewTunnelServer_unregisterTunnel_Results creates a new list of TunnelServer_unregisterTunnel_Results.
func NewTunnelServer_unregisterTunnel_Results_List(s *capnp.Segment, sz int32) (TunnelServer_unregisterTunnel_Results_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 0}, sz)
	return TunnelServer_unregisterTunnel_Results_List{l}, err
}

func (s TunnelServer_unregisterTunnel_Results_List) At(i int) TunnelServer_unregisterTunnel_Results {
	return TunnelServer_unregisterTunnel_Results{s.List.Struct(i)}
}

func (s TunnelServer_unregisterTunnel_Results_List) Set(i int, v TunnelServer_unregisterTunnel_Results) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_unregisterTunnel_Results_List) String() string {
	str, _ := text.MarshalList(0xa29a916d4ebdd894, s.List)
	return str
}

// TunnelServer_unregisterTunnel_Results_Promise is a wrapper for a TunnelServer_unregisterTunnel_Results promised by a client call.
type TunnelServer_unregisterTunnel_Results_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_unregisterTunnel_Results_Promise) Struct() (TunnelServer_unregisterTunnel_Results, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_unregisterTunnel_Results{s}, err
}

type TunnelServer_connect_Params struct{ capnp.Struct }

// TunnelServer_connect_Params_TypeID is the unique identifier for the type TunnelServer_connect_Params.
const TunnelServer_connect_Params_TypeID = 0xa766b24d4fe5da35

func NewTunnelServer_connect_Params(s *capnp.Segment) (TunnelServer_connect_Params, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_connect_Params{st}, err
}

func NewRootTunnelServer_connect_Params(s *capnp.Segment) (TunnelServer_connect_Params, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_connect_Params{st}, err
}

func ReadRootTunnelServer_connect_Params(msg *capnp.Message) (TunnelServer_connect_Params, error) {
	root, err := msg.RootPtr()
	return TunnelServer_connect_Params{root.Struct()}, err
}

func (s TunnelServer_connect_Params) String() string {
	str, _ := text.Marshal(0xa766b24d4fe5da35, s.Struct)
	return str
}

func (s TunnelServer_connect_Params) Parameters() (CapnpConnectParameters, error) {
	p, err := s.Struct.Ptr(0)
	return CapnpConnectParameters{Struct: p.Struct()}, err
}

func (s TunnelServer_connect_Params) HasParameters() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s TunnelServer_connect_Params) SetParameters(v CapnpConnectParameters) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewParameters sets the parameters field to a newly
// allocated CapnpConnectParameters struct, preferring placement in s's segment.
func (s TunnelServer_connect_Params) NewParameters() (CapnpConnectParameters, error) {
	ss, err := NewCapnpConnectParameters(s.Struct.Segment())
	if err != nil {
		return CapnpConnectParameters{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// TunnelServer_connect_Params_List is a list of TunnelServer_connect_Params.
type TunnelServer_connect_Params_List struct{ capnp.List }

// NewTunnelServer_connect_Params creates a new list of TunnelServer_connect_Params.
func NewTunnelServer_connect_Params_List(s *capnp.Segment, sz int32) (TunnelServer_connect_Params_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return TunnelServer_connect_Params_List{l}, err
}

func (s TunnelServer_connect_Params_List) At(i int) TunnelServer_connect_Params {
	return TunnelServer_connect_Params{s.List.Struct(i)}
}

func (s TunnelServer_connect_Params_List) Set(i int, v TunnelServer_connect_Params) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_connect_Params_List) String() string {
	str, _ := text.MarshalList(0xa766b24d4fe5da35, s.List)
	return str
}

// TunnelServer_connect_Params_Promise is a wrapper for a TunnelServer_connect_Params promised by a client call.
type TunnelServer_connect_Params_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_connect_Params_Promise) Struct() (TunnelServer_connect_Params, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_connect_Params{s}, err
}

func (p TunnelServer_connect_Params_Promise) Parameters() CapnpConnectParameters_Promise {
	return CapnpConnectParameters_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type TunnelServer_connect_Results struct{ capnp.Struct }

// TunnelServer_connect_Results_TypeID is the unique identifier for the type TunnelServer_connect_Results.
const TunnelServer_connect_Results_TypeID = 0xfeac5c8f4899ef7c

func NewTunnelServer_connect_Results(s *capnp.Segment) (TunnelServer_connect_Results, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_connect_Results{st}, err
}

func NewRootTunnelServer_connect_Results(s *capnp.Segment) (TunnelServer_connect_Results, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return TunnelServer_connect_Results{st}, err
}

func ReadRootTunnelServer_connect_Results(msg *capnp.Message) (TunnelServer_connect_Results, error) {
	root, err := msg.RootPtr()
	return TunnelServer_connect_Results{root.Struct()}, err
}

func (s TunnelServer_connect_Results) String() string {
	str, _ := text.Marshal(0xfeac5c8f4899ef7c, s.Struct)
	return str
}

func (s TunnelServer_connect_Results) Result() (ConnectResult, error) {
	p, err := s.Struct.Ptr(0)
	return ConnectResult{Struct: p.Struct()}, err
}

func (s TunnelServer_connect_Results) HasResult() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s TunnelServer_connect_Results) SetResult(v ConnectResult) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewResult sets the result field to a newly
// allocated ConnectResult struct, preferring placement in s's segment.
func (s TunnelServer_connect_Results) NewResult() (ConnectResult, error) {
	ss, err := NewConnectResult(s.Struct.Segment())
	if err != nil {
		return ConnectResult{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// TunnelServer_connect_Results_List is a list of TunnelServer_connect_Results.
type TunnelServer_connect_Results_List struct{ capnp.List }

// NewTunnelServer_connect_Results creates a new list of TunnelServer_connect_Results.
func NewTunnelServer_connect_Results_List(s *capnp.Segment, sz int32) (TunnelServer_connect_Results_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return TunnelServer_connect_Results_List{l}, err
}

func (s TunnelServer_connect_Results_List) At(i int) TunnelServer_connect_Results {
	return TunnelServer_connect_Results{s.List.Struct(i)}
}

func (s TunnelServer_connect_Results_List) Set(i int, v TunnelServer_connect_Results) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s TunnelServer_connect_Results_List) String() string {
	str, _ := text.MarshalList(0xfeac5c8f4899ef7c, s.List)
	return str
}

// TunnelServer_connect_Results_Promise is a wrapper for a TunnelServer_connect_Results promised by a client call.
type TunnelServer_connect_Results_Promise struct{ *capnp.Pipeline }

func (p TunnelServer_connect_Results_Promise) Struct() (TunnelServer_connect_Results, error) {
	s, err := p.Pipeline.Struct()
	return TunnelServer_connect_Results{s}, err
}

func (p TunnelServer_connect_Results_Promise) Result() ConnectResult_Promise {
	return ConnectResult_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type ClientService struct{ Client capnp.Client }

// ClientService_TypeID is the unique identifier for the type ClientService.
const ClientService_TypeID = 0xf143a395ed8b3133

func (c ClientService) UseConfiguration(ctx context.Context, params func(ClientService_useConfiguration_Params) error, opts ...capnp.CallOption) ClientService_useConfiguration_Results_Promise {
	if c.Client == nil {
		return ClientService_useConfiguration_Results_Promise{Pipeline: capnp.NewPipeline(capnp.ErrorAnswer(capnp.ErrNullClient))}
	}
	call := &capnp.Call{
		Ctx: ctx,
		Method: capnp.Method{
			InterfaceID:   0xf143a395ed8b3133,
			MethodID:      0,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:ClientService",
			MethodName:    "useConfiguration",
		},
		Options: capnp.NewCallOptions(opts),
	}
	if params != nil {
		call.ParamsSize = capnp.ObjectSize{DataSize: 0, PointerCount: 1}
		call.ParamsFunc = func(s capnp.Struct) error { return params(ClientService_useConfiguration_Params{Struct: s}) }
	}
	return ClientService_useConfiguration_Results_Promise{Pipeline: capnp.NewPipeline(c.Client.Call(call))}
}

type ClientService_Server interface {
	UseConfiguration(ClientService_useConfiguration) error
}

func ClientService_ServerToClient(s ClientService_Server) ClientService {
	c, _ := s.(server.Closer)
	return ClientService{Client: server.New(ClientService_Methods(nil, s), c)}
}

func ClientService_Methods(methods []server.Method, s ClientService_Server) []server.Method {
	if cap(methods) == 0 {
		methods = make([]server.Method, 0, 1)
	}

	methods = append(methods, server.Method{
		Method: capnp.Method{
			InterfaceID:   0xf143a395ed8b3133,
			MethodID:      0,
			InterfaceName: "tunnelrpc/tunnelrpc.capnp:ClientService",
			MethodName:    "useConfiguration",
		},
		Impl: func(c context.Context, opts capnp.CallOptions, p, r capnp.Struct) error {
			call := ClientService_useConfiguration{c, opts, ClientService_useConfiguration_Params{Struct: p}, ClientService_useConfiguration_Results{Struct: r}}
			return s.UseConfiguration(call)
		},
		ResultsSize: capnp.ObjectSize{DataSize: 0, PointerCount: 1},
	})

	return methods
}

// ClientService_useConfiguration holds the arguments for a server call to ClientService.useConfiguration.
type ClientService_useConfiguration struct {
	Ctx     context.Context
	Options capnp.CallOptions
	Params  ClientService_useConfiguration_Params
	Results ClientService_useConfiguration_Results
}

type ClientService_useConfiguration_Params struct{ capnp.Struct }

// ClientService_useConfiguration_Params_TypeID is the unique identifier for the type ClientService_useConfiguration_Params.
const ClientService_useConfiguration_Params_TypeID = 0xb9d4ef45c2b5fc5b

func NewClientService_useConfiguration_Params(s *capnp.Segment) (ClientService_useConfiguration_Params, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return ClientService_useConfiguration_Params{st}, err
}

func NewRootClientService_useConfiguration_Params(s *capnp.Segment) (ClientService_useConfiguration_Params, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return ClientService_useConfiguration_Params{st}, err
}

func ReadRootClientService_useConfiguration_Params(msg *capnp.Message) (ClientService_useConfiguration_Params, error) {
	root, err := msg.RootPtr()
	return ClientService_useConfiguration_Params{root.Struct()}, err
}

func (s ClientService_useConfiguration_Params) String() string {
	str, _ := text.Marshal(0xb9d4ef45c2b5fc5b, s.Struct)
	return str
}

func (s ClientService_useConfiguration_Params) ClientServiceConfig() (ClientConfig, error) {
	p, err := s.Struct.Ptr(0)
	return ClientConfig{Struct: p.Struct()}, err
}

func (s ClientService_useConfiguration_Params) HasClientServiceConfig() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ClientService_useConfiguration_Params) SetClientServiceConfig(v ClientConfig) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewClientServiceConfig sets the clientServiceConfig field to a newly
// allocated ClientConfig struct, preferring placement in s's segment.
func (s ClientService_useConfiguration_Params) NewClientServiceConfig() (ClientConfig, error) {
	ss, err := NewClientConfig(s.Struct.Segment())
	if err != nil {
		return ClientConfig{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// ClientService_useConfiguration_Params_List is a list of ClientService_useConfiguration_Params.
type ClientService_useConfiguration_Params_List struct{ capnp.List }

// NewClientService_useConfiguration_Params creates a new list of ClientService_useConfiguration_Params.
func NewClientService_useConfiguration_Params_List(s *capnp.Segment, sz int32) (ClientService_useConfiguration_Params_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return ClientService_useConfiguration_Params_List{l}, err
}

func (s ClientService_useConfiguration_Params_List) At(i int) ClientService_useConfiguration_Params {
	return ClientService_useConfiguration_Params{s.List.Struct(i)}
}

func (s ClientService_useConfiguration_Params_List) Set(i int, v ClientService_useConfiguration_Params) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s ClientService_useConfiguration_Params_List) String() string {
	str, _ := text.MarshalList(0xb9d4ef45c2b5fc5b, s.List)
	return str
}

// ClientService_useConfiguration_Params_Promise is a wrapper for a ClientService_useConfiguration_Params promised by a client call.
type ClientService_useConfiguration_Params_Promise struct{ *capnp.Pipeline }

func (p ClientService_useConfiguration_Params_Promise) Struct() (ClientService_useConfiguration_Params, error) {
	s, err := p.Pipeline.Struct()
	return ClientService_useConfiguration_Params{s}, err
}

func (p ClientService_useConfiguration_Params_Promise) ClientServiceConfig() ClientConfig_Promise {
	return ClientConfig_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

type ClientService_useConfiguration_Results struct{ capnp.Struct }

// ClientService_useConfiguration_Results_TypeID is the unique identifier for the type ClientService_useConfiguration_Results.
const ClientService_useConfiguration_Results_TypeID = 0x91f7a001ca145b9d

func NewClientService_useConfiguration_Results(s *capnp.Segment) (ClientService_useConfiguration_Results, error) {
	st, err := capnp.NewStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return ClientService_useConfiguration_Results{st}, err
}

func NewRootClientService_useConfiguration_Results(s *capnp.Segment) (ClientService_useConfiguration_Results, error) {
	st, err := capnp.NewRootStruct(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1})
	return ClientService_useConfiguration_Results{st}, err
}

func ReadRootClientService_useConfiguration_Results(msg *capnp.Message) (ClientService_useConfiguration_Results, error) {
	root, err := msg.RootPtr()
	return ClientService_useConfiguration_Results{root.Struct()}, err
}

func (s ClientService_useConfiguration_Results) String() string {
	str, _ := text.Marshal(0x91f7a001ca145b9d, s.Struct)
	return str
}

func (s ClientService_useConfiguration_Results) Result() (UseConfigurationResult, error) {
	p, err := s.Struct.Ptr(0)
	return UseConfigurationResult{Struct: p.Struct()}, err
}

func (s ClientService_useConfiguration_Results) HasResult() bool {
	p, err := s.Struct.Ptr(0)
	return p.IsValid() || err != nil
}

func (s ClientService_useConfiguration_Results) SetResult(v UseConfigurationResult) error {
	return s.Struct.SetPtr(0, v.Struct.ToPtr())
}

// NewResult sets the result field to a newly
// allocated UseConfigurationResult struct, preferring placement in s's segment.
func (s ClientService_useConfiguration_Results) NewResult() (UseConfigurationResult, error) {
	ss, err := NewUseConfigurationResult(s.Struct.Segment())
	if err != nil {
		return UseConfigurationResult{}, err
	}
	err = s.Struct.SetPtr(0, ss.Struct.ToPtr())
	return ss, err
}

// ClientService_useConfiguration_Results_List is a list of ClientService_useConfiguration_Results.
type ClientService_useConfiguration_Results_List struct{ capnp.List }

// NewClientService_useConfiguration_Results creates a new list of ClientService_useConfiguration_Results.
func NewClientService_useConfiguration_Results_List(s *capnp.Segment, sz int32) (ClientService_useConfiguration_Results_List, error) {
	l, err := capnp.NewCompositeList(s, capnp.ObjectSize{DataSize: 0, PointerCount: 1}, sz)
	return ClientService_useConfiguration_Results_List{l}, err
}

func (s ClientService_useConfiguration_Results_List) At(i int) ClientService_useConfiguration_Results {
	return ClientService_useConfiguration_Results{s.List.Struct(i)}
}

func (s ClientService_useConfiguration_Results_List) Set(i int, v ClientService_useConfiguration_Results) error {
	return s.List.SetStruct(i, v.Struct)
}

func (s ClientService_useConfiguration_Results_List) String() string {
	str, _ := text.MarshalList(0x91f7a001ca145b9d, s.List)
	return str
}

// ClientService_useConfiguration_Results_Promise is a wrapper for a ClientService_useConfiguration_Results promised by a client call.
type ClientService_useConfiguration_Results_Promise struct{ *capnp.Pipeline }

func (p ClientService_useConfiguration_Results_Promise) Struct() (ClientService_useConfiguration_Results, error) {
	s, err := p.Pipeline.Struct()
	return ClientService_useConfiguration_Results{s}, err
}

func (p ClientService_useConfiguration_Results_Promise) Result() UseConfigurationResult_Promise {
	return UseConfigurationResult_Promise{Pipeline: p.Pipeline.GetPipeline(0)}
}

const schema_db8274f9144abc7e = "x\xda\xacY{\x8c\\\xe5u?\xe7~\xb3{\xd7\x8f" +
	"\xf1\xcc\xed\x1d\x843\xf5j+\x0b\x1a\xec`\x17\xe3\xd0" +
	"\xe2m\xc9\xec\xc3vv7k{\xee\xce\xae\x01c$" +
	"_\xcf|\xbb{\xd7w\xee\x1d\xdf\x87\xd9\xb5L\x8c-" +
	"S`\x0b\xc1&\xb1\x84\x89\x89\xc0\x8d\xcbCv\x83\x89" +
	"Q\x0b\x05\x14\xaa\xa6\x84&\x11q\x8b\xab\xd0\x12\x09\x02" +
	"V\x15TDM\"!\xaa\x84[\x9d\xfb\xde\xd9e\x8d" +
	"\xab\xfc\xb3;:s\xbe\xef;\xcf\xdfy\xccu\x99\x05" +
	"]\xc2\x9a\x163\x0b\xa0\x1coi\xf5Z\xfe\xf8\xfc\xdb" +
	"\x8d\xb7\xc5C \x15\xd1\xfb\xfa\x8b\x03\x85O\x9c\x83\xff" +
	"\x09-\x82\x08\xb0\xf6\xd1\xd6\x01\x94\xcf\xb4\x8a\x00\xf2\xe9" +
	"\xd6;\x00\xbd\xbf\xa8\xbf~\xe2O\x8f\xfe\x98\x98\x85\x84" +
	"\x19p\xed\x15\xe2^\x94W\x88\xc4y\xb5\xb8\x05\xd0\xfb" +
	"\xb7\xeb\xf6\xbd\xb7\xe3\xd7G\xee\x9dym\x86n\xbdI" +
	"\x9cFyD\x14\x81y\x8f\xdeV\xf8\x17|\xec\xe3#" +
	" ]\x83\x00-H_\xaf\x11\x17\x0a\x80r\xbfX\x02" +
	"\xf4^\xbf\xf6\xc5\x17\x0e\x7f\xff\x9eo\x83\xf2ED\x08" +
	"\xcek\xe2\xff\"\xa0|\xa7\xcfp\xf1\xbb_\xca\x9c~" +
	"\xfd\x0f\xbe\xe33x'\xcf\xdd\xfc\xec\xe1\xef\xff\xd1\xfb" +
	"0\"\x88\x98\x01X{R\xb4\x88\xf7\x8c\xf8_\x80\xde" +
	"\xb7~\xfe\xd2\xe6\xfa\x91GN\x80\xf4\xc5\xe8\xae#m" +
	"\x82\x00\x19\xef\x86\xff\xb8\xb0e\xd3\xb3\xa3O\x04\xdf\x04" +
	"r\xdc\xdd\xf6,\x1d=\xdaF\xcf\xfc\xe8\x8e\xfc\xfd\xdd" +
	"\x7f\xf6\xe0\x13\xa0\x141m\xa6\x16\xe2|\xbem\x1a\xe5" +
	"sm\xf4\xf1\xa7m7#\xa07\xbd\xee\xa5\xad\xbf\xfe" +
	"K\xfbiPVa\xc6\xfb\xa7\xfb\xde\xdd\xb3\xe2\xa9\xd1" +
	"W}\xa9\x18\xc0\xda\x0d\x0b\xff\x95\xae\xbeu\xe1\xf7\x00" +
	"\xbd\xec?\xac\xdc\xfc\xe0{\x83g\xe8\xea\x94Q\x03!" +
	">Y\xd8\x89\xf2\x82Ed\xd7\x96E\xc4\xfd\xb3k\xb7" +
	"\xbe\xfc\xf23cg\x9a\x05\xf1\xfdur\xd1\x00\xca\xcf" +
	"\xfb\xdc\xcf\xf9\xdcW\xf4\xe3[?X\x93\xf9\xbbP/" +
	"\xe6\x9bo\xf1\xfb\xbe\xf9\x16\x13\xc3m\xbf}\xee\x1f7" +
	"|\xf8\xc6\xf3i\x07\xb4g\x05r\xc0\x9a,)\xbem" +
	"\x1a\xebouv\xbd\x0c\xca5\x88\xde\xc4\xd1}N\xdf" +
	"\xc3\x0fx0\x82\"\x0a\x00ko\xcd\xee\xa5\xcbx\x96" +
	"\xa2\xa3\xfd\x83\x9e\xac\xf1\xe1\xc1\x1f4\x85\x92\xff\xea+" +
	"\xd9\x01\x94\xcfgI\xb4s\xd9\xef\x01~\xfc\xf4=\x87" +
	"\xfb\xdf]\xff\xaaR\xc4L\xb3\xd2\xf5%{Q>\xb0" +
	"\x84>\xde\xb9\xa4\x83\xec\x19[\xb0\x89\xdd\xd7\xfatn" +
	"\x02\xe5Wr\xf4\xf1\xa5\x9c\xcf>p\xdb7\x1fj\xb9" +
	"\xf0\xcdW\x9bMJ\xf1\xb9\xf6\xb5\xbc\x85\xf2/\xf2\xf4" +
	"\xf1\xcd\xfc\x13\x02\xa0W|\xe6\xcf\xff\xb6\xa7\xf6\xe6\x8f" +
	"\xe7H\x01\xf9\x87\xf2G\xf29\x99>\xfdT&\x1d\xef" +
	"\xf9\xd2\xd4\xde\xcdWO\x9fo\xb6\xbf/\xf8\x8a\xc24" +
	"\xca\xdd\x05\xe2\xbe\xa9@\xdc\xc2\x05\xf5\x0bw\xfd\xfbW" +
	"\xdeJE\xdc\xe9\xc2/\x112\xde\xe6\xad\xb7M,\xb8" +
	"\xf3\xddw\xd3\x11\xf7x\xc1\xf7\xccs\x052\xfcY\xe9" +
	"!\xf9\xc5\xc7\xff\xe6=zHl\xb6\xe6\xf9\xc26\x94" +
	"\x7fE\x0f\xad\xbdP\xf0u\x88#\x7f\xae\xb8x\xe7\xca" +
	"N\x94/^Ir}p%\xc9u\xc3\x8en\xbe\xfd" +
	"\xc6[\xde\x07\xa9\xc8f\xe4\xf1\xaa\xa5\x9d(\xdf\xb4\x94" +
	"\x0e\xad[*\xa2\xfc+\xfa\xe8}cl\xdbk\x17{" +
	"\x1f\xff\x9f\xe6\xcb}\x85\xce\xd1\x91w\xfc#\xbfX\xea" +
	"\x9b\x7f\xed\x9a\xbf\xfa\xe0\xe8_\xf7^\x9cu\xfb\x8ab" +
	"\x0f\xca\xeb\x8a$\xc7\x0d\xc5\xaf\xca\xbc\xe8_\xfe\xf5\xf5" +
	"[\xd6-\x7f\xe5\xa3\xb4%6\x15?\"K\xa8E\xb2" +
	"\xc4\xe8\x8d\xff\xfd\xd5\xab\xbf\xf1\xcf\x1f5\xb9\xc7g<" +
	"P\\\x89\xf2\x11\xff\xc6\x07\x88\xf9\xc3\x8d\xdfy\xa3\x98" +
	"+\xfef.A\xcf\x14'P\xfea\xd1\x8f\xc6\xa2/" +
	"\xe8-\xbf|\xe4\x8e\xd2\xb7\x7f\xf31\xe9\xc5\x9aP\xea" +
	"\xe2\x1fnC\xb9e\x19\xdd\x8c\xcb(U\x06O\xbd\xf9" +
	"\x95\xf1\xa3?\xfa\xa4\xd9\x08\xbeCN/;\x88\xf2+" +
	">\xf7K\xcb\x08k\xf6}x\xac\xef\xc1\xed\xa7>M" +
	"ku\xb2\xfd\x05\xdf\xbf\xed\xa4U\x9cJs\x05\xd2\xf9" +
	"\xf6\x1e\x94/\xb4\xd3u\xef\xb4\x97`\x95\xe7\xb8\x86\xc1" +
	"u\xab\x91\xa9\xfeI\xf4\xb1\xba\xba\xaa6\x8cFg\xaf" +
	"i\x18\xbc\xeaT\xdcj\x95\xdb6@\x19Qic\x19" +
	"\x80\x0c\x02H+\x1e\x01P\xaee\xa8\xdc(\xa0\x84X" +
	" \x14\x95n\x98\x00P\xbe\xccP\xe9\x12\xd0\xb3\xb9\xb5" +
	"\x87[\x83&VUG3\x8d\xcd*\xabs\\\x0c\x02" +
	".\x06\xf4\xaa\xba\xc6\x0d\xa7\xd7\x84\x9c1\xaa\x8da>" +
	"\x09\x05@\xcc\x03\xce'\xd8\x86I\xcdv4cl\xd8" +
	"\xa7\x97\xca\xa6\xaeU\xa7H\xba\xc5\x04\x1dR{'\xdd" +
	"!]\xb1\x0d\x00\x05I\xea\x01(ic\x86iq\xaf" +
	"\xa6\xd9UR\x0aX\xd5\xd9\xbfS\xd5U\xa3\xca\xe3\x87" +
	"Zf?\xd4\xc7u\xdd\xbc\xd9\xb4\xf4\xda\x16K\x1b\xd3" +
	"\x8c^\x93\x84\xf5-\x11\x1f\x13\xe70\x9c\xaf[\x85[" +
	"{\xb4*_\xed\xda<8\xe7Z\xbe\x1d\xae\x1a\xe2\xb6" +
	"\xab;6\x80\x92\x89\xad\x99\xed\x04P\xda\x18*\x05\x01" +
	"K\x96\xcf\x80\xf9\x04\x13\x9al\xd2:\xfb\xcd\xc0\x16\x15" +
	"\xdf\xe4\xab]\xc3\xe2c\x9a\xedp+ _U*\xab" +
	"\x96Z\xb7\xd3\x0f\x92\xfb\xf2\x0c\x95e\x02zc\x96Z" +
	"\xe5en\xa1f\xd66\xab\x86Ya\xbc\x8a- `" +
	"\xcb\xfc\x8e\xd8\xa8j:\xaf\x05\xda\xad\xaev\xf8\xff\x95" +
	"<\xcb,\xf6<\xff\x11u\x1b\x80\xb2\x83\xa1\xa2\x0b\x98" +
	"\xc5O\xbd H\xb4\xbd\x00\xca8C\xc5\x110+\xfc" +
	"\xce+\xf8^\xdb\xbd\x1c@\xd1\x19*\x93\x02f\xd9o" +
	"\xbd\x02\x154\xc9\xa5\x80r\x18*wQ@\xb9\x0d\xb2" +
	"\xa9\x0d\xcc\xb40\x9f$Yh\x1d^\x1b#K\x1bP" +
	"\xe2U24\xe6\xa3Z\x100\x885s\x1c\xf3I\xa1" +
	"\x0b\x8fY|\x0f\xb7l^\x86\x9ceNNa>\xa9" +
	"\x09MV\xcf^\xae\xd5#G\xc7\xa7\xe6?_\x0d\xf2" +
	"\xed\xaar\xc7,g\x91\x1d\x173T\x96\x0a\xe85\xe8" +
	"[\xeep`\x96\x8d\xf9\xa4\x81h\x92v\x8ep\xee\xa5" +
	"\xbfaV\x97\xc3[\xac0\xb1\x97\xc6\x8f\x1d\xa3\xc7\x1e" +
	"f\xa8|7\x95\xd8\x8f[\x00\xcac\x0c\x95S\x02\xa2" +
	"\x10x\xec\xa9\x13\x00\xca)\x86\xca\xdf\x0b(1!p" +
	"\xd8s+\x01\x94g\x18*?\x11P\xca\xb0\x025K" +
	"\xd2k\x14l?a\xa8\xfc\\@\xa9%S\xc0\x16\x00" +
	"\xe9\xfcN\x00\xe5\x0d\x86\xca\xdb\x02zf\x90_\xa4\x94" +
	"\x83Y\x100\xebc\x84\xe9\xd6Fu\x15:,^\xeb" +
	"_\x1f\xd3\x0d\xb7^\xb6\xf8\x1e\x0dM\xd7\xeev\x1c^" +
	"\x17\x1b\x8e\x8d\xad `+`\xceQ\xc7l\\\x02X" +
	"f\x88\xf9\xa4\x04\x03\x121\xbe\x13-^\xdb\xca-[" +
	"c\xa6\x11\x83\x92f8\xdcp\x06U\x10wr=\xa6" +
	"\xce\x93uCa\xecP\xe4\x84i`&H\x81c\xca" +
	"b\x96Y\xe6y\xa1\x117\x90m\xba\x18*\x83\x02\xb6" +
	"\xe3\xa7D&;\xf6\x0f\x01(}\x0c\x95a\x01\xdb\x85" +
	"\xdf\x11\x99,\xa9\x90\x1f\xca\x0c\x95\xed\x02\xe6\xc6\x1d\xa7" +
	"\x81\xf9\xa4v\x87\xce\xbe\x83\xef\xb4\xcd\xea.\x0eHp" +
	"\x11\x17\x92\xf0\xdb\xf1\x10\xbe\x80\xe95\xcc'\x9dsS" +
	"\xa4\xb0\xcf\x82\xfe\x92\xb3\xc1\xb2L\xcbG\xd68<6" +
	"\\\x9f(\x11EG\xff\xb6D\x03I\xe8\x0a\xd4Rv" +
	"&\xf2wTU\xd7N\xc0\xdf\xe2\x8e5\xd5=\xea\x00" +
	"\xe3V\x8c3\xf6\xb8\xe9\xea\xb5!\x0e\xa2cM!\x82" +
	"\x808?\xfa\xac7\xfbR\x86\x0f\xc28%'\xc9\xb4" +
	"\x9e\xa1RN\xe4\xdcD\xb4A\x86\xca-$gh\xfe" +
	"\x112\xff0C\xa5!\xa0\xa7S\xfe\x1a}&0\xdb" +
	"\x89\xc5\x0d\x88e\xd3\x0fN\x11\x04\x14\x01=\xb7a;" +
	"\x16W\xeb\x80q\xb4\x11\xff\x92\xcb\x80\xe9&\xb8(\xab" +
	"9?\xef\xe7\xd6!N\xc5M\x03i%\xc2\\\x1c\xe9" +
	"I\x8c=w2\x8d\x9b\xb6c\xa8u\x0e\x00\x91b\xfb" +
	"\xcd\x06\xe1$\xa1H\xdc\xd86\xc5\xc6\xe5W\xb7\xa0\xd2" +
	"\xcc\xa8m'R\xa5\xa6\x1a\x9eF\xffx\xafi\x88\x97" +
	"]\xfeC\x04\x0b\xd0uuX-\xa93\x89\xca\xce\x0a" +
	"*%W1T\xaeK\x97\x9dUd\xa2k\x18*_" +
	"\x16P\xe4\x16U\x90xB\x0a\x1e\xddo\x07\xad\x0e\xe6" +
	"\x93\xe1\xf5\xd2\xe2t\xbb\xce87\x1c-\xe8rf\x85" +
	"\xe1\xf2$]b\x17\xf6_\x9f\xf2k\xe4\xc2M;\x13" +
	"\xbf\x8a\xbb\xf8T\xe4\xa5\x0e^W\xb5\x04\x8dB\xe7v" +
	"\x83\xf8\xb5\x84g\xden),\x8bAQ,\x05\xde\"" +
	"!\x0b\xb1\x90wN\x03(w1T\xeeO\x09y\xdf" +
	"C\x00\xca\xfd\x0c\x95\x87SB\x1e%#\x1ef\xa8\x1c" +
	"'\xccg\x01R\x1d#\x07\x1fg\xa8<) f\x02" +
	"\xc8?I\x90\xff$C\xe5\xac\xe0\x03v_w\xafi" +
	"`(\x84\x0d\x10\xc1\xb57\xceU\xcb\xd9\xc9Ut\xfa" +
	"\x0d\x87[{T\xd4#H\xd8\xefhun\xbaN\x0c" +
	"\x11uu\xd2o9\xb0\xd6\x17\x9c\x12U\xc7\xc6\x05 " +
	"\xe0\x02\xcaH\x9b[\xbd\x16\xaf!yC\xd5\xcb*s" +
	"\xc6?\x8f\x81f\x82xn\x0e\xf3P\xc3\xb2\x8f\xa1r" +
	"/A\x09\xa6\xa6p\xe9\xee\x09\x10|$!\x9dw\xf7" +
	"$-\x8c_\x10\xa9\xcc\xb9d\xc6I\x86\xca\xa1\xb0 " +
	"\xb6\x02H\x07\xc8:\x87\x18*\x87\x85H\xb4>\x13J" +
	"A\x866\xbb:\xec\x91\xf7\x13jj<\xd17\xec\x17" +
	"44\x8da\xdfP\x98X\xaaj\xd6\x1b\x16\x85\xb2f" +
	"\x1a\x8a\xab\xea\x1as\xa6\xe2\x83\xf3\xda\x82 )H\xe5" +
	"-\x8d\x0e\xdfYd\x8c\xeb\"c\xc8\xdd8\x00P\xe9" +
	"B\x86\x95AL\xc2E\xee\xc7\x1e\x80\xcaz\xa2\x971" +
	"\x89\x18y\x13\x16\x01*}D\x1fF\x011\x88\x19Y" +
	"\xc1\xa7\x01*\xc3D\xde\x81I\xab \xdf\xee_\xbf\x9d" +
	"\xe8\xe3\x98t\x0b2\xc7\x95\x00\x95\x1dD\xdfG\xf4V" +
	"\xc1\xb7\xa4<\x85\x13\x00\x95I\xa2\x1f\"\xba\xd8R\xa0" +
	"AG>\x80\x16@\xe5.\xa2\xdfO\xf4\xb6\xa5\x05l" +
	"\x03\x90\xef\xf3\xe9\xf7\x12\xfd[D_\xf0\x85\x02.\x00" +
	"\x90\x8f\xe0A\x80\xcaa\xa2\x1f'\xfaB,\xe0B\x00" +
	"\xf9\x18>\x02P9N\xf4'\x89\xbe\xa8\xb5\x80\x8b\x00" +
	"\xe4\x93\xbe<\x8f\x11\xfd\x14\xc6\xb8\xd6_K\xc3+\x85" +
	"\x95\x96\xb4\x17\xcc\xb4c\xd7\xf2p\x84\xc1\x00\xfb\xcbf" +
	"\x8ef\x18\xcc%\x8b0@\xcc\x01z\x0d\xd3\xd47\xcf" +
	"\x84\xedKu8aX@\xce4\xfakq\x9e\x05\xc1" +
	"4hBGU\xd5\xfb\x1bI\xcfcw\xbb\x8e\xe96" +
	"\xa0\xa3\xa6:\xbc\x16\x17^\xcb56Zf}\x18\xb9" +
	"U\xd7\x0cU\x87\xf8\x9b\xf9b+\xe7\xbaZmV\xd2" +
	"\x09\xcd\x81\xd6\xd1\xe8\x1cV\xc7\x9a\x06\xca\x95\x09j\xc7" +
	" \xb4\xea\xfa\x04\xb4s\xe9\xe4\xe8\xd8\xa3\xea.\x9f\xf5" +
	"\xd2\x1c]\xefHS\x85\x0a\xea\xc6\xacq\xb6'y=" +
	"~\xdc\x0aG\xdc>!\xa9\x0d\x91\x15F\xc3\xd9\x07:" +
	"\xe8\xee\x94?\xe2\x85I\xe8\x8f\xcf\xdb\x0d\x8cq'\xf8" +
	"\xd4o\x8c\x9aTFE\xb5n\xff?O\x0fq;G" +
	"\xa3\xc7%'\xccx\x05r\xe9:\xd77<\\N\xc6" +
	"`\x16\x80d\x1a\x17\x86\xd2\xb8\x90\xc0\xc2D:\xfd\xa3" +
	"\xeePV\xfc<,\x13};&\xf3\x83|+\x9e\x98" +
	"\x91\xff\x99\xee\x00\x17\xb8\x7f}\x8d\xe8\x0d\x1f\x170\xc0" +
	"\x85\xba\x7f\xbfN\xf4\xc94.\xb88=\x13\x17X\x84" +
	"\x0b\x94\xcf\x87\x88~\xd8\xc7\x85L\x80\x0b\x0f\xe0\xb33" +
	"\xf2\x7fAK\x80\x0b\xc7\xf0\x85\x19\xf9\xbf\xb05\xc0\x85" +
	"\x93>\xff\x93D?\xeb\xe3BO\x80\x0bg|\x1cy" +
	"\x86\xe8/\x12.\xb8\x96^q,\xcd\x00\x1cK\x82\xb5" +
	"\xda\xf8\x1a\xe7\x8dn\xc8\xe9\xda\x1e\x1ecvMS\xf5" +
	"\xf5\xae\xaaCG\xc5Q\xab\xbb\x92\x16X\xb7\xfbT\xa3" +
	"f\xe3\xb8\xba\x8b\x13\xd2\x8b\xe9\x9a\xe8\xe8\xf6Vni" +
	"\xa3\x80I\xd3\x1c\xf7\x08\xb9\xb2i6\xb7\x0e~\xef\xc5" +
	"\xad\x00T\xe2\xef\xea\xead\x7fM\xe7\xbd\x18u\x0a\xcc" +
	"H*\x8dF\xdf\x98\x86\x81A\xf9\x1e\xd6:f\xd6\xe5" +
	"F\xd8\x86G\xf5}\xb8\xd4T\xb8\xf9d\x83W\x9d^" +
	"\x13\x0dG3\\>\xeb\x82\xea\xb8k\xec\xe2\xb5\x0dh" +
	"T\xcd\x9af\x8c\xc1\xac\xfe\x9f}\xd6\xf6!\xd5\xd0\xf8" +
	"\xd9\x8c\xa9\xd5\xbd\xb4\xa2\x13\x04\x1fK\xa8<K\x9d\xc9" +
	"\x14]\xaa\xfa\xa7J\x16W\xed\xd4\x008\xcfk\xe1\xb2" +
	")H2z-\xcfZ\x00\xe2E8F\xdbFi\xf7" +
	"^\x10$M\xc4dI\x8b\xd1NV\xba\xdd\x02A\x1a" +
	"\x11Q\x88\x7f\x7f\xc0\xe8\xb7\x03\xa9\x7f\x1a\x04i\x83\x88" +
	",\xfe\xd1\x00\xa3]\x9f\xb4\xae\x07\x04i\x95\xe8E\x13" +
	"\x03\x94\x02q\xba\xd0\x8b\x12\x1f:\xfc\xd4\xefB/\xda" +
	"C`4Y\x00t\xe1\xfe\xb0,tazy\xc5>" +
	"\xab\xbd\x9f\xbbM\xecIZ\x99\x08#\x0fL'\x9dL" +
	"<R=\xf0t\xbaK\x0c7\x03\xc7\x0e\x86{\x85\xb3" +
	"\xa9\xcd\xc0\x19j\x1d\xcf2T~&$\xf52\x0a\xbb" +
	"h\xdf\x83\xa6\x15\xcdx\xf3\xac}\xc2\xe0\x0c;\xb8\xe6" +
	"\xe5\x8fW3\xc7\xfd\x0e\x0f\x83\xablH\x10;\xbd\x11" +
	"Z\x92\xda\x08a4]\x8a3\x00>\xbd\x1fZr\x89" +
	"Q%=+\xf9\x15'\xe3GM\xf4\xeb\x08F\xbfS" +
	"I\x12y?+z\xd1<\x85Q\xb9\"\xe7\xa5]v" +
	"\x99C\xe5\x10\xef\xb0?O%\x88\xf6\xdb\x97\xde\x0d\x04" +
	"\xef\xe4(\xd8\x02\x85\xe2{'R[*\xdd\x0c\xe7\xa1" +
	"\xdc\xe6tK;\x8f\xad\x02\x81\xa3\x064G\x87\x9b\xc2" +
	"oy\xaa\x93\x8e\xe3oy\xd2\x9b\xc7S\xca\xdd\x03a" +
	"P>\x167\x9c\xd2\xa3\xd3\xc9\x06+\x0e\xbf\xa7\x06\x92" +
	")\xc5\x9f\x09C9E\xd7J`S7\xc7\x065\x83" +
	"\xdb\xd4\x825M\xfa\x0dn\xd5U\x83\x1b\xe8\x10\x18\xb9" +
	"\x16!\xeaL\xe4\xea_\x9f\xea\xdc\xe6S\xbf\x12\x06{" +
	"\x10\xebayM\xcd\x91'R+\x96Hy\xe5\x85p" +
	"u\xb1#\xa5\xfc\xed4Gng\xa8\x8c\x0b\xe8\xa9\xae" +
	"c\x8e4j*:|\xa3\xc5w\xbb\\4\xaaS\xc9" +
	"<E\x13E\xd5\x1e\xc1\x06\xf5~\x1b-^\xda\xed\xf2" +
	"4C\xb4\x18\x06Q3k\xb36\xc2s4[7\xf3" +
	"\x9d\x15\xb3\xba\x8b;3\x16\xe6\x01\\F\xaa\xa8C\xc9" +
	"V8\xd2D\x1bJv\xc21\x8c\xec\xa6\x80j0T" +
	"\xf6\xa5`dj:q\xf8\xdc\xd5\xf5\xf7S\x10\xe7Q" +
	"r\xce\xad\xedP\x89\x7f\xaeDK~\x9f\xb9\xccM\x07" +
	"\xc4\xd9\x86\xa9_O\xe9\x11!\xbc\xfc\xff\x02\x00\x00\xff" +
	"\xff~Y\x81&"

func init() {
	schemas.Register(schema_db8274f9144abc7e,
		0x8407e070e0d52605,
		0x84cb9536a2cf6d3c,
		0x8891f360e47c30d3,
		0x91f7a001ca145b9d,
		0x9b87b390babc2ccf,
		0x9e12cfad042ba4f1,
		0xa29a916d4ebdd894,
		0xa766b24d4fe5da35,
		0xa78f37418c1077c8,
		0xaa7386f356bd398a,
		0xb14ce48f4e2abb0d,
		0xb167b0bebe562cd0,
		0xb70431c0dc014915,
		0xb9d4ef45c2b5fc5b,
		0xbe403adc6d018a5a,
		0xc082ef6e0d42ed1d,
		0xc744e349009087aa,
		0xc766a92976e389c4,
		0xc793e50592935b4a,
		0xcbd96442ae3bb01a,
		0xd58a254e7a792b87,
		0xdc3ed6801961e502,
		0xe3e37d096a5b564e,
		0xe4a6a1bc139211b4,
		0xea20b390b257d1a5,
		0xea58385c65416035,
		0xf0a143f1c95a678e,
		0xf143a395ed8b3133,
		0xf2c122394f447e8e,
		0xf2c68e2547ec3866,
		0xf41a0f001ad49e46,
		0xf7f49b3f779ae258,
		0xf9c895683ed9ac4c,
		0xfeac5c8f4899ef7c,
		0xff8d9848747c956a)
}
