2023-01-27 13:37:20 -08:00
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
2022-10-21 23:05:43 +00:00
// Code generated by tailscale/cmd/viewer; DO NOT EDIT.
package ipn
import (
"encoding/json"
"errors"
"net/netip"
2024-04-02 13:32:30 -07:00
"tailscale.com/drive"
2022-10-21 23:05:43 +00:00
"tailscale.com/tailcfg"
2024-05-06 15:22:17 -07:00
"tailscale.com/types/opt"
2022-10-21 23:05:43 +00:00
"tailscale.com/types/persist"
"tailscale.com/types/preftype"
"tailscale.com/types/views"
)
2025-01-30 11:24:25 -06:00
//go:generate go run tailscale.com/cmd/cloner -clonefunc=false -type=LoginProfile,Prefs,ServeConfig,ServiceConfig,TCPPortHandler,HTTPHandler,WebServerConfig
// View returns a read-only view of LoginProfile.
func ( p * LoginProfile ) View ( ) LoginProfileView {
return LoginProfileView { ж : p }
}
// LoginProfileView provides a read-only view over LoginProfile.
//
// Its methods should only be called if `Valid()` returns true.
type LoginProfileView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * LoginProfile
}
// Valid reports whether v's underlying value is non-nil.
func ( v LoginProfileView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v LoginProfileView ) AsStruct ( ) * LoginProfile {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v LoginProfileView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * LoginProfileView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x LoginProfile
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v LoginProfileView ) ID ( ) ProfileID { return v . ж . ID }
func ( v LoginProfileView ) Name ( ) string { return v . ж . Name }
func ( v LoginProfileView ) NetworkProfile ( ) NetworkProfile { return v . ж . NetworkProfile }
func ( v LoginProfileView ) Key ( ) StateKey { return v . ж . Key }
func ( v LoginProfileView ) UserProfile ( ) tailcfg . UserProfile { return v . ж . UserProfile }
func ( v LoginProfileView ) NodeID ( ) tailcfg . StableNodeID { return v . ж . NodeID }
func ( v LoginProfileView ) LocalUserID ( ) WindowsUserID { return v . ж . LocalUserID }
func ( v LoginProfileView ) ControlURL ( ) string { return v . ж . ControlURL }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _LoginProfileViewNeedsRegeneration = LoginProfile ( struct {
ID ProfileID
Name string
NetworkProfile NetworkProfile
Key StateKey
UserProfile tailcfg . UserProfile
NodeID tailcfg . StableNodeID
LocalUserID WindowsUserID
ControlURL string
} { } )
2022-10-21 23:05:43 +00:00
2025-01-14 08:15:27 -08:00
// View returns a read-only view of Prefs.
2022-10-21 23:05:43 +00:00
func ( p * Prefs ) View ( ) PrefsView {
return PrefsView { ж : p }
}
// PrefsView provides a read-only view over Prefs.
//
// Its methods should only be called if `Valid()` returns true.
type PrefsView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * Prefs
}
2025-01-14 08:15:27 -08:00
// Valid reports whether v's underlying value is non-nil.
2022-10-21 23:05:43 +00:00
func ( v PrefsView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v PrefsView ) AsStruct ( ) * Prefs {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v PrefsView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * PrefsView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x Prefs
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2024-04-16 14:53:56 -04:00
func ( v PrefsView ) ControlURL ( ) string { return v . ж . ControlURL }
func ( v PrefsView ) RouteAll ( ) bool { return v . ж . RouteAll }
func ( v PrefsView ) ExitNodeID ( ) tailcfg . StableNodeID { return v . ж . ExitNodeID }
func ( v PrefsView ) ExitNodeIP ( ) netip . Addr { return v . ж . ExitNodeIP }
func ( v PrefsView ) InternalExitNodePrior ( ) tailcfg . StableNodeID { return v . ж . InternalExitNodePrior }
func ( v PrefsView ) ExitNodeAllowLANAccess ( ) bool { return v . ж . ExitNodeAllowLANAccess }
func ( v PrefsView ) CorpDNS ( ) bool { return v . ж . CorpDNS }
func ( v PrefsView ) RunSSH ( ) bool { return v . ж . RunSSH }
func ( v PrefsView ) RunWebClient ( ) bool { return v . ж . RunWebClient }
func ( v PrefsView ) WantRunning ( ) bool { return v . ж . WantRunning }
func ( v PrefsView ) LoggedOut ( ) bool { return v . ж . LoggedOut }
func ( v PrefsView ) ShieldsUp ( ) bool { return v . ж . ShieldsUp }
func ( v PrefsView ) AdvertiseTags ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . AdvertiseTags ) }
func ( v PrefsView ) Hostname ( ) string { return v . ж . Hostname }
func ( v PrefsView ) NotepadURLs ( ) bool { return v . ж . NotepadURLs }
func ( v PrefsView ) ForceDaemon ( ) bool { return v . ж . ForceDaemon }
func ( v PrefsView ) Egg ( ) bool { return v . ж . Egg }
2023-08-18 10:57:04 -07:00
func ( v PrefsView ) AdvertiseRoutes ( ) views . Slice [ netip . Prefix ] {
return views . SliceOf ( v . ж . AdvertiseRoutes )
2022-10-21 23:05:43 +00:00
}
2024-10-16 19:08:06 -04:00
func ( v PrefsView ) AdvertiseServices ( ) views . Slice [ string ] {
return views . SliceOf ( v . ж . AdvertiseServices )
}
2022-10-21 23:05:43 +00:00
func ( v PrefsView ) NoSNAT ( ) bool { return v . ж . NoSNAT }
2024-05-06 15:22:17 -07:00
func ( v PrefsView ) NoStatefulFiltering ( ) opt . Bool { return v . ж . NoStatefulFiltering }
2022-10-21 23:05:43 +00:00
func ( v PrefsView ) NetfilterMode ( ) preftype . NetfilterMode { return v . ж . NetfilterMode }
func ( v PrefsView ) OperatorUser ( ) string { return v . ж . OperatorUser }
2022-11-18 14:42:32 +05:00
func ( v PrefsView ) ProfileName ( ) string { return v . ж . ProfileName }
2023-09-01 14:45:12 -06:00
func ( v PrefsView ) AutoUpdate ( ) AutoUpdatePrefs { return v . ж . AutoUpdate }
2023-10-26 15:55:32 -07:00
func ( v PrefsView ) AppConnector ( ) AppConnectorPrefs { return v . ж . AppConnector }
2023-10-03 11:46:24 +02:00
func ( v PrefsView ) PostureChecking ( ) bool { return v . ж . PostureChecking }
2023-12-04 12:08:56 -05:00
func ( v PrefsView ) NetfilterKind ( ) string { return v . ж . NetfilterKind }
2024-04-03 10:09:58 -07:00
func ( v PrefsView ) DriveShares ( ) views . SliceView [ * drive . Share , drive . ShareView ] {
return views . SliceOfViews [ * drive . Share , drive . ShareView ] ( v . ж . DriveShares )
2024-03-07 10:56:11 -06:00
}
2024-05-17 13:47:57 -07:00
func ( v PrefsView ) AllowSingleHosts ( ) marshalAsTrueInJSON { return v . ж . AllowSingleHosts }
func ( v PrefsView ) Persist ( ) persist . PersistView { return v . ж . Persist . View ( ) }
2022-10-21 23:05:43 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _PrefsViewNeedsRegeneration = Prefs ( struct {
ControlURL string
RouteAll bool
ExitNodeID tailcfg . StableNodeID
ExitNodeIP netip . Addr
2024-04-16 14:53:56 -04:00
InternalExitNodePrior tailcfg . StableNodeID
2022-10-21 23:05:43 +00:00
ExitNodeAllowLANAccess bool
CorpDNS bool
RunSSH bool
2023-10-26 11:35:41 -07:00
RunWebClient bool
2022-10-21 23:05:43 +00:00
WantRunning bool
LoggedOut bool
ShieldsUp bool
AdvertiseTags [ ] string
Hostname string
NotepadURLs bool
ForceDaemon bool
Egg bool
AdvertiseRoutes [ ] netip . Prefix
2024-10-16 19:08:06 -04:00
AdvertiseServices [ ] string
2022-10-21 23:05:43 +00:00
NoSNAT bool
2024-05-06 15:22:17 -07:00
NoStatefulFiltering opt . Bool
2022-10-21 23:05:43 +00:00
NetfilterMode preftype . NetfilterMode
OperatorUser string
2022-11-18 14:42:32 +05:00
ProfileName string
2023-09-01 14:45:12 -06:00
AutoUpdate AutoUpdatePrefs
2023-10-26 15:55:32 -07:00
AppConnector AppConnectorPrefs
2023-10-03 11:46:24 +02:00
PostureChecking bool
2023-12-04 12:08:56 -05:00
NetfilterKind string
2024-04-03 10:09:58 -07:00
DriveShares [ ] * drive . Share
2024-05-17 13:47:57 -07:00
AllowSingleHosts marshalAsTrueInJSON
2022-10-21 23:05:43 +00:00
Persist * persist . Persist
} { } )
2022-11-09 06:10:06 -08:00
2025-01-14 08:15:27 -08:00
// View returns a read-only view of ServeConfig.
2022-11-09 06:10:06 -08:00
func ( p * ServeConfig ) View ( ) ServeConfigView {
return ServeConfigView { ж : p }
}
// ServeConfigView provides a read-only view over ServeConfig.
//
// Its methods should only be called if `Valid()` returns true.
type ServeConfigView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * ServeConfig
}
2025-01-14 08:15:27 -08:00
// Valid reports whether v's underlying value is non-nil.
2022-11-09 06:10:06 -08:00
func ( v ServeConfigView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v ServeConfigView ) AsStruct ( ) * ServeConfig {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v ServeConfigView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * ServeConfigView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x ServeConfig
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2022-11-10 22:58:40 -05:00
func ( v ServeConfigView ) TCP ( ) views . MapFn [ uint16 , * TCPPortHandler , TCPPortHandlerView ] {
2022-11-09 06:10:06 -08:00
return views . MapFnOf ( v . ж . TCP , func ( t * TCPPortHandler ) TCPPortHandlerView {
return t . View ( )
} )
}
func ( v ServeConfigView ) Web ( ) views . MapFn [ HostPort , * WebServerConfig , WebServerConfigView ] {
return views . MapFnOf ( v . ж . Web , func ( t * WebServerConfig ) WebServerConfigView {
return t . View ( )
} )
}
2025-01-21 17:07:34 -05:00
func ( v ServeConfigView ) Services ( ) views . MapFn [ tailcfg . ServiceName , * ServiceConfig , ServiceConfigView ] {
2024-11-28 12:49:37 -05:00
return views . MapFnOf ( v . ж . Services , func ( t * ServiceConfig ) ServiceConfigView {
return t . View ( )
} )
}
2022-11-17 16:09:43 -05:00
func ( v ServeConfigView ) AllowFunnel ( ) views . Map [ HostPort , bool ] {
return views . MapOf ( v . ж . AllowFunnel )
2022-11-07 10:46:42 -05:00
}
2023-09-05 14:33:18 -04:00
func ( v ServeConfigView ) Foreground ( ) views . MapFn [ string , * ServeConfig , ServeConfigView ] {
return views . MapFnOf ( v . ж . Foreground , func ( t * ServeConfig ) ServeConfigView {
return t . View ( )
} )
}
2023-09-11 21:32:51 -04:00
func ( v ServeConfigView ) ETag ( ) string { return v . ж . ETag }
2023-09-05 14:33:18 -04:00
2022-11-09 06:10:06 -08:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _ServeConfigViewNeedsRegeneration = ServeConfig ( struct {
2022-11-17 16:09:43 -05:00
TCP map [ uint16 ] * TCPPortHandler
Web map [ HostPort ] * WebServerConfig
2025-01-21 17:07:34 -05:00
Services map [ tailcfg . ServiceName ] * ServiceConfig
2022-11-17 16:09:43 -05:00
AllowFunnel map [ HostPort ] bool
2023-09-05 14:33:18 -04:00
Foreground map [ string ] * ServeConfig
2023-09-11 21:32:51 -04:00
ETag string
2022-11-09 06:10:06 -08:00
} { } )
2025-01-14 08:15:27 -08:00
// View returns a read-only view of ServiceConfig.
2024-11-28 12:49:37 -05:00
func ( p * ServiceConfig ) View ( ) ServiceConfigView {
return ServiceConfigView { ж : p }
}
// ServiceConfigView provides a read-only view over ServiceConfig.
//
// Its methods should only be called if `Valid()` returns true.
type ServiceConfigView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * ServiceConfig
}
2025-01-14 08:15:27 -08:00
// Valid reports whether v's underlying value is non-nil.
2024-11-28 12:49:37 -05:00
func ( v ServiceConfigView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v ServiceConfigView ) AsStruct ( ) * ServiceConfig {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v ServiceConfigView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * ServiceConfigView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x ServiceConfig
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v ServiceConfigView ) TCP ( ) views . MapFn [ uint16 , * TCPPortHandler , TCPPortHandlerView ] {
return views . MapFnOf ( v . ж . TCP , func ( t * TCPPortHandler ) TCPPortHandlerView {
return t . View ( )
} )
}
func ( v ServiceConfigView ) Web ( ) views . MapFn [ HostPort , * WebServerConfig , WebServerConfigView ] {
return views . MapFnOf ( v . ж . Web , func ( t * WebServerConfig ) WebServerConfigView {
return t . View ( )
} )
}
func ( v ServiceConfigView ) Tun ( ) bool { return v . ж . Tun }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _ServiceConfigViewNeedsRegeneration = ServiceConfig ( struct {
TCP map [ uint16 ] * TCPPortHandler
Web map [ HostPort ] * WebServerConfig
Tun bool
} { } )
2025-01-14 08:15:27 -08:00
// View returns a read-only view of TCPPortHandler.
2022-11-09 06:10:06 -08:00
func ( p * TCPPortHandler ) View ( ) TCPPortHandlerView {
return TCPPortHandlerView { ж : p }
}
// TCPPortHandlerView provides a read-only view over TCPPortHandler.
//
// Its methods should only be called if `Valid()` returns true.
type TCPPortHandlerView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * TCPPortHandler
}
2025-01-14 08:15:27 -08:00
// Valid reports whether v's underlying value is non-nil.
2022-11-09 06:10:06 -08:00
func ( v TCPPortHandlerView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v TCPPortHandlerView ) AsStruct ( ) * TCPPortHandler {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v TCPPortHandlerView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * TCPPortHandlerView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x TCPPortHandler
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2022-11-10 21:24:22 -08:00
func ( v TCPPortHandlerView ) HTTPS ( ) bool { return v . ж . HTTPS }
2023-06-21 12:32:20 -04:00
func ( v TCPPortHandlerView ) HTTP ( ) bool { return v . ж . HTTP }
2022-11-10 21:24:22 -08:00
func ( v TCPPortHandlerView ) TCPForward ( ) string { return v . ж . TCPForward }
func ( v TCPPortHandlerView ) TerminateTLS ( ) string { return v . ж . TerminateTLS }
2022-11-09 06:10:06 -08:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _TCPPortHandlerViewNeedsRegeneration = TCPPortHandler ( struct {
HTTPS bool
2023-06-21 12:32:20 -04:00
HTTP bool
2022-11-09 06:10:06 -08:00
TCPForward string
2022-11-10 21:24:22 -08:00
TerminateTLS string
2022-11-09 06:10:06 -08:00
} { } )
2025-01-14 08:15:27 -08:00
// View returns a read-only view of HTTPHandler.
2022-11-09 06:10:06 -08:00
func ( p * HTTPHandler ) View ( ) HTTPHandlerView {
return HTTPHandlerView { ж : p }
}
// HTTPHandlerView provides a read-only view over HTTPHandler.
//
// Its methods should only be called if `Valid()` returns true.
type HTTPHandlerView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * HTTPHandler
}
2025-01-14 08:15:27 -08:00
// Valid reports whether v's underlying value is non-nil.
2022-11-09 06:10:06 -08:00
func ( v HTTPHandlerView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v HTTPHandlerView ) AsStruct ( ) * HTTPHandler {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v HTTPHandlerView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * HTTPHandlerView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x HTTPHandler
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v HTTPHandlerView ) Path ( ) string { return v . ж . Path }
func ( v HTTPHandlerView ) Proxy ( ) string { return v . ж . Proxy }
2022-11-09 06:55:17 -08:00
func ( v HTTPHandlerView ) Text ( ) string { return v . ж . Text }
2022-11-09 06:10:06 -08:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _HTTPHandlerViewNeedsRegeneration = HTTPHandler ( struct {
Path string
Proxy string
2022-11-09 06:55:17 -08:00
Text string
2022-11-09 06:10:06 -08:00
} { } )
2025-01-14 08:15:27 -08:00
// View returns a read-only view of WebServerConfig.
2022-11-09 06:10:06 -08:00
func ( p * WebServerConfig ) View ( ) WebServerConfigView {
return WebServerConfigView { ж : p }
}
// WebServerConfigView provides a read-only view over WebServerConfig.
//
// Its methods should only be called if `Valid()` returns true.
type WebServerConfigView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
// It is named distinctively to make you think of how dangerous it is to escape
// to callers. You must not let callers be able to mutate it.
ж * WebServerConfig
}
2025-01-14 08:15:27 -08:00
// Valid reports whether v's underlying value is non-nil.
2022-11-09 06:10:06 -08:00
func ( v WebServerConfigView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v WebServerConfigView ) AsStruct ( ) * WebServerConfig {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v WebServerConfigView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * WebServerConfigView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x WebServerConfig
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v WebServerConfigView ) Handlers ( ) views . MapFn [ string , * HTTPHandler , HTTPHandlerView ] {
return views . MapFnOf ( v . ж . Handlers , func ( t * HTTPHandler ) HTTPHandlerView {
return t . View ( )
} )
}
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _WebServerConfigViewNeedsRegeneration = WebServerConfig ( struct {
Handlers map [ string ] * HTTPHandler
} { } )