2023-01-27 21:37:20 +00:00
// Copyright (c) Tailscale Inc & AUTHORS
// SPDX-License-Identifier: BSD-3-Clause
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
// Code generated by tailscale/cmd/viewer; DO NOT EDIT.
2022-05-01 23:23:55 +00:00
package tailcfg
import (
"encoding/json"
"errors"
2022-07-25 03:08:42 +00:00
"net/netip"
2022-05-01 23:24:54 +00:00
"time"
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
"tailscale.com/types/dnstype"
"tailscale.com/types/key"
2022-05-01 23:23:55 +00:00
"tailscale.com/types/opt"
2022-05-01 23:24:54 +00:00
"tailscale.com/types/structs"
2022-08-12 19:34:25 +00:00
"tailscale.com/types/tkatype"
2022-05-01 23:23:55 +00:00
"tailscale.com/types/views"
)
2023-08-20 03:14:32 +00:00
//go:generate go run tailscale.com/cmd/cloner -clonefunc=true -type=User,Node,Hostinfo,NetInfo,Login,DNSConfig,RegisterResponse,RegisterResponseAuth,RegisterRequest,DERPHomeParams,DERPRegion,DERPMap,DERPNode,SSHRule,SSHAction,SSHPrincipal,ControlDialPlan,Location,UserProfile
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
// View returns a readonly view of User.
func ( p * User ) View ( ) UserView {
return UserView { ж : p }
}
// UserView provides a read-only view over User.
//
// Its methods should only be called if `Valid()` returns true.
type UserView struct {
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
2022-05-01 23:23:55 +00:00
// 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.
2022-05-01 23:24:54 +00:00
ж * User
2022-05-01 23:23:55 +00:00
}
2022-05-01 23:24:54 +00:00
// Valid reports whether underlying value is non-nil.
func ( v UserView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v UserView ) AsStruct ( ) * User {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
2022-05-01 23:23:55 +00:00
}
2022-05-01 23:24:54 +00:00
func ( v UserView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * UserView ) UnmarshalJSON ( b [ ] byte ) error {
2022-05-01 23:23:55 +00:00
if v . ж != nil {
2022-05-01 23:24:54 +00:00
return errors . New ( "already initialized" )
2022-05-01 23:23:55 +00:00
}
if len ( b ) == 0 {
return nil
}
2022-05-01 23:24:54 +00:00
var x User
if err := json . Unmarshal ( b , & x ) ; err != nil {
2022-05-01 23:23:55 +00:00
return err
}
2022-05-01 23:24:54 +00:00
v . ж = & x
2022-05-01 23:23:55 +00:00
return nil
}
2022-05-01 23:24:54 +00:00
func ( v UserView ) ID ( ) UserID { return v . ж . ID }
func ( v UserView ) LoginName ( ) string { return v . ж . LoginName }
func ( v UserView ) DisplayName ( ) string { return v . ж . DisplayName }
func ( v UserView ) ProfilePicURL ( ) string { return v . ж . ProfilePicURL }
func ( v UserView ) Logins ( ) views . Slice [ LoginID ] { return views . SliceOf ( v . ж . Logins ) }
func ( v UserView ) Created ( ) time . Time { return v . ж . Created }
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _UserViewNeedsRegeneration = User ( struct {
ID UserID
LoginName string
DisplayName string
ProfilePicURL string
Logins [ ] LoginID
Created time . Time
} { } )
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
// View returns a readonly view of Node.
func ( p * Node ) View ( ) NodeView {
return NodeView { ж : p }
}
// NodeView provides a read-only view over Node.
//
// Its methods should only be called if `Valid()` returns true.
type NodeView 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.
ж * Node
}
// Valid reports whether underlying value is non-nil.
func ( v NodeView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v NodeView ) AsStruct ( ) * Node {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v NodeView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * NodeView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x Node
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
2022-05-01 23:23:55 +00:00
}
2023-08-20 18:35:39 +00:00
func ( v NodeView ) ID ( ) NodeID { return v . ж . ID }
func ( v NodeView ) StableID ( ) StableNodeID { return v . ж . StableID }
func ( v NodeView ) Name ( ) string { return v . ж . Name }
func ( v NodeView ) User ( ) UserID { return v . ж . User }
func ( v NodeView ) Sharer ( ) UserID { return v . ж . Sharer }
func ( v NodeView ) Key ( ) key . NodePublic { return v . ж . Key }
func ( v NodeView ) KeyExpiry ( ) time . Time { return v . ж . KeyExpiry }
func ( v NodeView ) KeySignature ( ) views . ByteSlice [ tkatype . MarshaledSignature ] {
return views . ByteSliceOf ( v . ж . KeySignature )
}
2023-08-18 17:57:04 +00:00
func ( v NodeView ) Machine ( ) key . MachinePublic { return v . ж . Machine }
func ( v NodeView ) DiscoKey ( ) key . DiscoPublic { return v . ж . DiscoKey }
func ( v NodeView ) Addresses ( ) views . Slice [ netip . Prefix ] { return views . SliceOf ( v . ж . Addresses ) }
func ( v NodeView ) AllowedIPs ( ) views . Slice [ netip . Prefix ] { return views . SliceOf ( v . ж . AllowedIPs ) }
2023-10-01 04:05:02 +00:00
func ( v NodeView ) Endpoints ( ) views . Slice [ netip . AddrPort ] { return views . SliceOf ( v . ж . Endpoints ) }
2023-08-18 17:57:04 +00:00
func ( v NodeView ) DERP ( ) string { return v . ж . DERP }
func ( v NodeView ) Hostinfo ( ) HostinfoView { return v . ж . Hostinfo }
func ( v NodeView ) Created ( ) time . Time { return v . ж . Created }
func ( v NodeView ) Cap ( ) CapabilityVersion { return v . ж . Cap }
func ( v NodeView ) Tags ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . Tags ) }
func ( v NodeView ) PrimaryRoutes ( ) views . Slice [ netip . Prefix ] { return views . SliceOf ( v . ж . PrimaryRoutes ) }
2022-05-01 23:24:54 +00:00
func ( v NodeView ) LastSeen ( ) * time . Time {
if v . ж . LastSeen == nil {
return nil
}
x := * v . ж . LastSeen
return & x
2022-05-01 23:23:55 +00:00
}
2022-05-01 23:24:54 +00:00
func ( v NodeView ) Online ( ) * bool {
if v . ж . Online == nil {
return nil
}
x := * v . ж . Online
return & x
2022-05-01 23:23:55 +00:00
}
2023-09-06 17:17:25 +00:00
func ( v NodeView ) MachineAuthorized ( ) bool { return v . ж . MachineAuthorized }
func ( v NodeView ) Capabilities ( ) views . Slice [ NodeCapability ] { return views . SliceOf ( v . ж . Capabilities ) }
2023-09-18 15:52:22 +00:00
func ( v NodeView ) CapMap ( ) views . MapFn [ NodeCapability , [ ] RawMessage , views . Slice [ RawMessage ] ] {
return views . MapFnOf ( v . ж . CapMap , func ( t [ ] RawMessage ) views . Slice [ RawMessage ] {
return views . SliceOf ( t )
} )
}
func ( v NodeView ) UnsignedPeerAPIOnly ( ) bool { return v . ж . UnsignedPeerAPIOnly }
func ( v NodeView ) ComputedName ( ) string { return v . ж . ComputedName }
func ( v NodeView ) ComputedNameWithHost ( ) string { return v . ж . ComputedNameWithHost }
func ( v NodeView ) DataPlaneAuditLogID ( ) string { return v . ж . DataPlaneAuditLogID }
func ( v NodeView ) Expired ( ) bool { return v . ж . Expired }
2023-04-13 17:12:31 +00:00
func ( v NodeView ) SelfNodeV4MasqAddrForThisPeer ( ) * netip . Addr {
if v . ж . SelfNodeV4MasqAddrForThisPeer == nil {
return nil
}
x := * v . ж . SelfNodeV4MasqAddrForThisPeer
return & x
2023-03-03 00:05:07 +00:00
}
2023-04-13 17:12:31 +00:00
2023-09-19 00:03:53 +00:00
func ( v NodeView ) SelfNodeV6MasqAddrForThisPeer ( ) * netip . Addr {
if v . ж . SelfNodeV6MasqAddrForThisPeer == nil {
return nil
}
x := * v . ж . SelfNodeV6MasqAddrForThisPeer
return & x
}
2023-09-14 17:04:31 +00:00
func ( v NodeView ) IsWireGuardOnly ( ) bool { return v . ж . IsWireGuardOnly }
func ( v NodeView ) ExitNodeDNSResolvers ( ) views . SliceView [ * dnstype . Resolver , dnstype . ResolverView ] {
return views . SliceOfViews [ * dnstype . Resolver , dnstype . ResolverView ] ( v . ж . ExitNodeDNSResolvers )
}
2023-03-03 00:05:07 +00:00
func ( v NodeView ) Equal ( v2 NodeView ) bool { return v . ж . Equal ( v2 . ж ) }
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _NodeViewNeedsRegeneration = Node ( struct {
2023-03-03 00:05:07 +00:00
ID NodeID
StableID StableNodeID
Name string
User UserID
Sharer UserID
Key key . NodePublic
KeyExpiry time . Time
KeySignature tkatype . MarshaledSignature
Machine key . MachinePublic
DiscoKey key . DiscoPublic
Addresses [ ] netip . Prefix
AllowedIPs [ ] netip . Prefix
2023-10-01 04:05:02 +00:00
Endpoints [ ] netip . AddrPort
2023-03-03 00:05:07 +00:00
DERP string
Hostinfo HostinfoView
Created time . Time
Cap CapabilityVersion
Tags [ ] string
PrimaryRoutes [ ] netip . Prefix
LastSeen * time . Time
Online * bool
MachineAuthorized bool
2023-09-06 17:17:25 +00:00
Capabilities [ ] NodeCapability
2023-09-18 15:52:22 +00:00
CapMap NodeCapMap
2023-03-03 00:05:07 +00:00
UnsignedPeerAPIOnly bool
ComputedName string
computedHostIfDifferent string
ComputedNameWithHost string
DataPlaneAuditLogID string
Expired bool
2023-04-13 17:12:31 +00:00
SelfNodeV4MasqAddrForThisPeer * netip . Addr
2023-09-19 00:03:53 +00:00
SelfNodeV6MasqAddrForThisPeer * netip . Addr
2023-04-06 00:28:28 +00:00
IsWireGuardOnly bool
2023-09-14 17:04:31 +00:00
ExitNodeDNSResolvers [ ] * dnstype . Resolver
2022-05-01 23:24:54 +00:00
} { } )
// View returns a readonly view of Hostinfo.
func ( p * Hostinfo ) View ( ) HostinfoView {
return HostinfoView { ж : p }
2022-05-01 23:23:55 +00:00
}
2022-05-01 23:24:54 +00:00
// HostinfoView provides a read-only view over Hostinfo.
//
// Its methods should only be called if `Valid()` returns true.
type HostinfoView 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.
ж * Hostinfo
}
// Valid reports whether underlying value is non-nil.
func ( v HostinfoView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v HostinfoView ) AsStruct ( ) * Hostinfo {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
func ( v HostinfoView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
func ( v * HostinfoView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x Hostinfo
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2023-08-18 17:57:04 +00:00
func ( v HostinfoView ) IPNVersion ( ) string { return v . ж . IPNVersion }
func ( v HostinfoView ) FrontendLogID ( ) string { return v . ж . FrontendLogID }
func ( v HostinfoView ) BackendLogID ( ) string { return v . ж . BackendLogID }
func ( v HostinfoView ) OS ( ) string { return v . ж . OS }
func ( v HostinfoView ) OSVersion ( ) string { return v . ж . OSVersion }
func ( v HostinfoView ) Container ( ) opt . Bool { return v . ж . Container }
func ( v HostinfoView ) Env ( ) string { return v . ж . Env }
func ( v HostinfoView ) Distro ( ) string { return v . ж . Distro }
func ( v HostinfoView ) DistroVersion ( ) string { return v . ж . DistroVersion }
func ( v HostinfoView ) DistroCodeName ( ) string { return v . ж . DistroCodeName }
func ( v HostinfoView ) App ( ) string { return v . ж . App }
func ( v HostinfoView ) Desktop ( ) opt . Bool { return v . ж . Desktop }
func ( v HostinfoView ) Package ( ) string { return v . ж . Package }
func ( v HostinfoView ) DeviceModel ( ) string { return v . ж . DeviceModel }
func ( v HostinfoView ) PushDeviceToken ( ) string { return v . ж . PushDeviceToken }
func ( v HostinfoView ) Hostname ( ) string { return v . ж . Hostname }
func ( v HostinfoView ) ShieldsUp ( ) bool { return v . ж . ShieldsUp }
func ( v HostinfoView ) ShareeNode ( ) bool { return v . ж . ShareeNode }
func ( v HostinfoView ) NoLogsNoSupport ( ) bool { return v . ж . NoLogsNoSupport }
func ( v HostinfoView ) WireIngress ( ) bool { return v . ж . WireIngress }
func ( v HostinfoView ) AllowsUpdate ( ) bool { return v . ж . AllowsUpdate }
func ( v HostinfoView ) Machine ( ) string { return v . ж . Machine }
func ( v HostinfoView ) GoArch ( ) string { return v . ж . GoArch }
func ( v HostinfoView ) GoArchVar ( ) string { return v . ж . GoArchVar }
func ( v HostinfoView ) GoVersion ( ) string { return v . ж . GoVersion }
func ( v HostinfoView ) RoutableIPs ( ) views . Slice [ netip . Prefix ] { return views . SliceOf ( v . ж . RoutableIPs ) }
func ( v HostinfoView ) RequestTags ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . RequestTags ) }
2023-10-05 16:49:30 +00:00
func ( v HostinfoView ) WoLMACs ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . WoLMACs ) }
2023-08-18 17:57:04 +00:00
func ( v HostinfoView ) Services ( ) views . Slice [ Service ] { return views . SliceOf ( v . ж . Services ) }
func ( v HostinfoView ) NetInfo ( ) NetInfoView { return v . ж . NetInfo . View ( ) }
func ( v HostinfoView ) SSH_HostKeys ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . SSH_HostKeys ) }
func ( v HostinfoView ) Cloud ( ) string { return v . ж . Cloud }
func ( v HostinfoView ) Userspace ( ) opt . Bool { return v . ж . Userspace }
func ( v HostinfoView ) UserspaceRouter ( ) opt . Bool { return v . ж . UserspaceRouter }
2023-11-10 02:00:56 +00:00
func ( v HostinfoView ) AppConnector ( ) opt . Bool { return v . ж . AppConnector }
2023-06-16 17:04:07 +00:00
func ( v HostinfoView ) Location ( ) * Location {
if v . ж . Location == nil {
return nil
}
x := * v . ж . Location
return & x
}
func ( v HostinfoView ) Equal ( v2 HostinfoView ) bool { return v . ж . Equal ( v2 . ж ) }
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _HostinfoViewNeedsRegeneration = Hostinfo ( struct {
2022-08-30 19:30:55 +00:00
IPNVersion string
FrontendLogID string
BackendLogID string
OS string
OSVersion string
2022-09-11 17:57:18 +00:00
Container opt . Bool
Env string
Distro string
DistroVersion string
DistroCodeName string
2023-02-27 17:58:54 +00:00
App string
2022-08-30 19:30:55 +00:00
Desktop opt . Bool
Package string
DeviceModel string
2023-01-29 22:04:40 +00:00
PushDeviceToken string
2022-08-30 19:30:55 +00:00
Hostname string
ShieldsUp bool
ShareeNode bool
2022-09-13 14:09:57 +00:00
NoLogsNoSupport bool
2022-11-16 04:30:53 +00:00
WireIngress bool
2023-01-21 18:04:43 +00:00
AllowsUpdate bool
2023-01-22 18:16:15 +00:00
Machine string
2022-08-30 19:30:55 +00:00
GoArch string
2023-01-22 18:16:15 +00:00
GoArchVar string
2022-08-30 19:30:55 +00:00
GoVersion string
RoutableIPs [ ] netip . Prefix
RequestTags [ ] string
2023-10-05 16:49:30 +00:00
WoLMACs [ ] string
2022-08-30 19:30:55 +00:00
Services [ ] Service
NetInfo * NetInfo
SSH_HostKeys [ ] string
Cloud string
Userspace opt . Bool
UserspaceRouter opt . Bool
2023-11-10 02:00:56 +00:00
AppConnector opt . Bool
2023-06-16 17:04:07 +00:00
Location * Location
2022-05-01 23:24:54 +00:00
} { } )
// View returns a readonly view of NetInfo.
func ( p * NetInfo ) View ( ) NetInfoView {
return NetInfoView { ж : p }
}
// NetInfoView provides a read-only view over NetInfo.
//
// Its methods should only be called if `Valid()` returns true.
2022-05-01 23:23:55 +00:00
type NetInfoView struct {
2022-05-01 23:24:54 +00:00
// ж is the underlying mutable value, named with a hard-to-type
// character that looks pointy like a pointer.
2022-05-01 23:23:55 +00:00
// 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.
ж * NetInfo
}
2022-05-01 23:24:54 +00:00
// Valid reports whether underlying value is non-nil.
2022-05-01 23:23:55 +00:00
func ( v NetInfoView ) Valid ( ) bool { return v . ж != nil }
2022-05-01 23:24:54 +00:00
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v NetInfoView ) AsStruct ( ) * NetInfo {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v NetInfoView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * NetInfoView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x NetInfo
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2022-05-01 23:23:55 +00:00
func ( v NetInfoView ) MappingVariesByDestIP ( ) opt . Bool { return v . ж . MappingVariesByDestIP }
func ( v NetInfoView ) HairPinning ( ) opt . Bool { return v . ж . HairPinning }
func ( v NetInfoView ) WorkingIPv6 ( ) opt . Bool { return v . ж . WorkingIPv6 }
2022-07-18 23:56:10 +00:00
func ( v NetInfoView ) OSHasIPv6 ( ) opt . Bool { return v . ж . OSHasIPv6 }
2022-05-01 23:23:55 +00:00
func ( v NetInfoView ) WorkingUDP ( ) opt . Bool { return v . ж . WorkingUDP }
2022-08-04 21:10:13 +00:00
func ( v NetInfoView ) WorkingICMPv4 ( ) opt . Bool { return v . ж . WorkingICMPv4 }
2022-05-01 23:23:55 +00:00
func ( v NetInfoView ) HavePortMap ( ) bool { return v . ж . HavePortMap }
func ( v NetInfoView ) UPnP ( ) opt . Bool { return v . ж . UPnP }
func ( v NetInfoView ) PMP ( ) opt . Bool { return v . ж . PMP }
func ( v NetInfoView ) PCP ( ) opt . Bool { return v . ж . PCP }
func ( v NetInfoView ) PreferredDERP ( ) int { return v . ж . PreferredDERP }
func ( v NetInfoView ) LinkType ( ) string { return v . ж . LinkType }
2022-05-09 16:30:39 +00:00
func ( v NetInfoView ) DERPLatency ( ) views . Map [ string , float64 ] { return views . MapOf ( v . ж . DERPLatency ) }
2023-08-15 21:52:04 +00:00
func ( v NetInfoView ) FirewallMode ( ) string { return v . ж . FirewallMode }
2022-05-09 16:30:39 +00:00
func ( v NetInfoView ) String ( ) string { return v . ж . String ( ) }
2022-05-01 23:23:55 +00:00
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _NetInfoViewNeedsRegeneration = NetInfo ( struct {
MappingVariesByDestIP opt . Bool
HairPinning opt . Bool
WorkingIPv6 opt . Bool
2022-07-18 23:56:10 +00:00
OSHasIPv6 opt . Bool
2022-05-01 23:24:54 +00:00
WorkingUDP opt . Bool
2022-08-04 21:10:13 +00:00
WorkingICMPv4 opt . Bool
2022-05-01 23:24:54 +00:00
HavePortMap bool
UPnP opt . Bool
PMP opt . Bool
PCP opt . Bool
PreferredDERP int
LinkType string
DERPLatency map [ string ] float64
2023-08-15 21:52:04 +00:00
FirewallMode string
2022-05-01 23:24:54 +00:00
} { } )
// View returns a readonly view of Login.
func ( p * Login ) View ( ) LoginView {
return LoginView { ж : p }
}
// LoginView provides a read-only view over Login.
//
// Its methods should only be called if `Valid()` returns true.
type LoginView 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.
ж * Login
}
// Valid reports whether underlying value is non-nil.
func ( v LoginView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v LoginView ) AsStruct ( ) * Login {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v LoginView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * LoginView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x Login
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
2022-05-01 23:23:55 +00:00
}
2022-05-01 23:24:54 +00:00
v . ж = & x
return nil
}
func ( v LoginView ) ID ( ) LoginID { return v . ж . ID }
func ( v LoginView ) Provider ( ) string { return v . ж . Provider }
func ( v LoginView ) LoginName ( ) string { return v . ж . LoginName }
func ( v LoginView ) DisplayName ( ) string { return v . ж . DisplayName }
func ( v LoginView ) ProfilePicURL ( ) string { return v . ж . ProfilePicURL }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _LoginViewNeedsRegeneration = Login ( struct {
_ structs . Incomparable
ID LoginID
Provider string
LoginName string
DisplayName string
ProfilePicURL string
} { } )
// View returns a readonly view of DNSConfig.
func ( p * DNSConfig ) View ( ) DNSConfigView {
return DNSConfigView { ж : p }
}
// DNSConfigView provides a read-only view over DNSConfig.
//
// Its methods should only be called if `Valid()` returns true.
type DNSConfigView 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.
ж * DNSConfig
2022-05-01 23:23:55 +00:00
}
2022-05-01 23:24:54 +00:00
// Valid reports whether underlying value is non-nil.
func ( v DNSConfigView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v DNSConfigView ) AsStruct ( ) * DNSConfig {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v DNSConfigView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * DNSConfigView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x DNSConfig
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v DNSConfigView ) Resolvers ( ) views . SliceView [ * dnstype . Resolver , dnstype . ResolverView ] {
return views . SliceOfViews [ * dnstype . Resolver , dnstype . ResolverView ] ( v . ж . Resolvers )
}
2022-05-09 16:30:39 +00:00
func ( v DNSConfigView ) Routes ( ) views . MapFn [ string , [ ] * dnstype . Resolver , views . SliceView [ * dnstype . Resolver , dnstype . ResolverView ] ] {
return views . MapFnOf ( v . ж . Routes , func ( t [ ] * dnstype . Resolver ) views . SliceView [ * dnstype . Resolver , dnstype . ResolverView ] {
return views . SliceOfViews [ * dnstype . Resolver , dnstype . ResolverView ] ( t )
} )
}
2022-05-01 23:24:54 +00:00
func ( v DNSConfigView ) FallbackResolvers ( ) views . SliceView [ * dnstype . Resolver , dnstype . ResolverView ] {
return views . SliceOfViews [ * dnstype . Resolver , dnstype . ResolverView ] ( v . ж . FallbackResolvers )
}
func ( v DNSConfigView ) Domains ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . Domains ) }
func ( v DNSConfigView ) Proxied ( ) bool { return v . ж . Proxied }
2022-07-25 03:08:42 +00:00
func ( v DNSConfigView ) Nameservers ( ) views . Slice [ netip . Addr ] { return views . SliceOf ( v . ж . Nameservers ) }
2022-05-01 23:24:54 +00:00
func ( v DNSConfigView ) CertDomains ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . CertDomains ) }
func ( v DNSConfigView ) ExtraRecords ( ) views . Slice [ DNSRecord ] { return views . SliceOf ( v . ж . ExtraRecords ) }
func ( v DNSConfigView ) ExitNodeFilteredSet ( ) views . Slice [ string ] {
return views . SliceOf ( v . ж . ExitNodeFilteredSet )
}
2023-08-16 22:27:33 +00:00
func ( v DNSConfigView ) TempCorpIssue13969 ( ) string { return v . ж . TempCorpIssue13969 }
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _DNSConfigViewNeedsRegeneration = DNSConfig ( struct {
Resolvers [ ] * dnstype . Resolver
Routes map [ string ] [ ] * dnstype . Resolver
FallbackResolvers [ ] * dnstype . Resolver
Domains [ ] string
Proxied bool
2022-07-25 03:08:42 +00:00
Nameservers [ ] netip . Addr
2022-05-01 23:24:54 +00:00
CertDomains [ ] string
ExtraRecords [ ] DNSRecord
ExitNodeFilteredSet [ ] string
2023-08-16 22:27:33 +00:00
TempCorpIssue13969 string
2022-05-01 23:24:54 +00:00
} { } )
// View returns a readonly view of RegisterResponse.
func ( p * RegisterResponse ) View ( ) RegisterResponseView {
return RegisterResponseView { ж : p }
}
// RegisterResponseView provides a read-only view over RegisterResponse.
//
// Its methods should only be called if `Valid()` returns true.
type RegisterResponseView 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.
ж * RegisterResponse
}
// Valid reports whether underlying value is non-nil.
func ( v RegisterResponseView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v RegisterResponseView ) AsStruct ( ) * RegisterResponse {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v RegisterResponseView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * RegisterResponseView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x RegisterResponse
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2023-08-20 18:35:39 +00:00
func ( v RegisterResponseView ) User ( ) UserView { return v . ж . User . View ( ) }
func ( v RegisterResponseView ) Login ( ) Login { return v . ж . Login }
func ( v RegisterResponseView ) NodeKeyExpired ( ) bool { return v . ж . NodeKeyExpired }
func ( v RegisterResponseView ) MachineAuthorized ( ) bool { return v . ж . MachineAuthorized }
func ( v RegisterResponseView ) AuthURL ( ) string { return v . ж . AuthURL }
func ( v RegisterResponseView ) NodeKeySignature ( ) views . ByteSlice [ tkatype . MarshaledSignature ] {
return views . ByteSliceOf ( v . ж . NodeKeySignature )
}
func ( v RegisterResponseView ) Error ( ) string { return v . ж . Error }
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _RegisterResponseViewNeedsRegeneration = RegisterResponse ( struct {
User User
Login Login
NodeKeyExpired bool
MachineAuthorized bool
AuthURL string
2022-10-13 17:43:00 +00:00
NodeKeySignature tkatype . MarshaledSignature
2022-05-01 23:24:54 +00:00
Error string
} { } )
2023-08-20 03:14:32 +00:00
// View returns a readonly view of RegisterResponseAuth.
func ( p * RegisterResponseAuth ) View ( ) RegisterResponseAuthView {
return RegisterResponseAuthView { ж : p }
}
// RegisterResponseAuthView provides a read-only view over RegisterResponseAuth.
//
// Its methods should only be called if `Valid()` returns true.
type RegisterResponseAuthView 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.
ж * RegisterResponseAuth
}
// Valid reports whether underlying value is non-nil.
func ( v RegisterResponseAuthView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v RegisterResponseAuthView ) AsStruct ( ) * RegisterResponseAuth {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v RegisterResponseAuthView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * RegisterResponseAuthView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x RegisterResponseAuth
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v RegisterResponseAuthView ) Provider ( ) string { return v . ж . Provider }
func ( v RegisterResponseAuthView ) LoginName ( ) string { return v . ж . LoginName }
func ( v RegisterResponseAuthView ) Oauth2Token ( ) * Oauth2Token {
if v . ж . Oauth2Token == nil {
return nil
}
x := * v . ж . Oauth2Token
return & x
}
func ( v RegisterResponseAuthView ) AuthKey ( ) string { return v . ж . AuthKey }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _RegisterResponseAuthViewNeedsRegeneration = RegisterResponseAuth ( struct {
_ structs . Incomparable
Provider string
LoginName string
Oauth2Token * Oauth2Token
AuthKey string
} { } )
// View returns a readonly view of RegisterRequest.
func ( p * RegisterRequest ) View ( ) RegisterRequestView {
return RegisterRequestView { ж : p }
}
// RegisterRequestView provides a read-only view over RegisterRequest.
//
// Its methods should only be called if `Valid()` returns true.
type RegisterRequestView 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.
ж * RegisterRequest
}
// Valid reports whether underlying value is non-nil.
func ( v RegisterRequestView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v RegisterRequestView ) AsStruct ( ) * RegisterRequest {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v RegisterRequestView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * RegisterRequestView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x RegisterRequest
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v RegisterRequestView ) Version ( ) CapabilityVersion { return v . ж . Version }
func ( v RegisterRequestView ) NodeKey ( ) key . NodePublic { return v . ж . NodeKey }
func ( v RegisterRequestView ) OldNodeKey ( ) key . NodePublic { return v . ж . OldNodeKey }
func ( v RegisterRequestView ) NLKey ( ) key . NLPublic { return v . ж . NLKey }
func ( v RegisterRequestView ) Auth ( ) RegisterResponseAuthView { return v . ж . Auth . View ( ) }
func ( v RegisterRequestView ) Expiry ( ) time . Time { return v . ж . Expiry }
func ( v RegisterRequestView ) Followup ( ) string { return v . ж . Followup }
func ( v RegisterRequestView ) Hostinfo ( ) HostinfoView { return v . ж . Hostinfo . View ( ) }
func ( v RegisterRequestView ) Ephemeral ( ) bool { return v . ж . Ephemeral }
2023-08-20 18:35:39 +00:00
func ( v RegisterRequestView ) NodeKeySignature ( ) views . ByteSlice [ tkatype . MarshaledSignature ] {
return views . ByteSliceOf ( v . ж . NodeKeySignature )
}
func ( v RegisterRequestView ) SignatureType ( ) SignatureType { return v . ж . SignatureType }
2023-08-20 03:14:32 +00:00
func ( v RegisterRequestView ) Timestamp ( ) * time . Time {
if v . ж . Timestamp == nil {
return nil
}
x := * v . ж . Timestamp
return & x
}
2023-08-20 18:35:39 +00:00
func ( v RegisterRequestView ) DeviceCert ( ) views . ByteSlice [ [ ] byte ] {
return views . ByteSliceOf ( v . ж . DeviceCert )
}
func ( v RegisterRequestView ) Signature ( ) views . ByteSlice [ [ ] byte ] {
return views . ByteSliceOf ( v . ж . Signature )
}
2023-10-13 18:13:41 +00:00
func ( v RegisterRequestView ) Tailnet ( ) string { return v . ж . Tailnet }
2023-08-20 03:14:32 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _RegisterRequestViewNeedsRegeneration = RegisterRequest ( struct {
_ structs . Incomparable
Version CapabilityVersion
NodeKey key . NodePublic
OldNodeKey key . NodePublic
NLKey key . NLPublic
Auth RegisterResponseAuth
Expiry time . Time
Followup string
Hostinfo * Hostinfo
Ephemeral bool
NodeKeySignature tkatype . MarshaledSignature
SignatureType SignatureType
Timestamp * time . Time
DeviceCert [ ] byte
Signature [ ] byte
2023-10-13 18:13:41 +00:00
Tailnet string
2023-08-20 03:14:32 +00:00
} { } )
2023-07-12 18:45:46 +00:00
// View returns a readonly view of DERPHomeParams.
func ( p * DERPHomeParams ) View ( ) DERPHomeParamsView {
return DERPHomeParamsView { ж : p }
}
// DERPHomeParamsView provides a read-only view over DERPHomeParams.
//
// Its methods should only be called if `Valid()` returns true.
type DERPHomeParamsView 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.
ж * DERPHomeParams
}
// Valid reports whether underlying value is non-nil.
func ( v DERPHomeParamsView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v DERPHomeParamsView ) AsStruct ( ) * DERPHomeParams {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v DERPHomeParamsView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * DERPHomeParamsView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x DERPHomeParams
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v DERPHomeParamsView ) RegionScore ( ) views . Map [ int , float64 ] {
return views . MapOf ( v . ж . RegionScore )
}
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _DERPHomeParamsViewNeedsRegeneration = DERPHomeParams ( struct {
RegionScore map [ int ] float64
} { } )
2022-05-01 23:24:54 +00:00
// View returns a readonly view of DERPRegion.
func ( p * DERPRegion ) View ( ) DERPRegionView {
return DERPRegionView { ж : p }
}
// DERPRegionView provides a read-only view over DERPRegion.
//
// Its methods should only be called if `Valid()` returns true.
type DERPRegionView 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.
ж * DERPRegion
}
// Valid reports whether underlying value is non-nil.
func ( v DERPRegionView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v DERPRegionView ) AsStruct ( ) * DERPRegion {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v DERPRegionView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * DERPRegionView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x DERPRegion
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v DERPRegionView ) RegionID ( ) int { return v . ж . RegionID }
func ( v DERPRegionView ) RegionCode ( ) string { return v . ж . RegionCode }
func ( v DERPRegionView ) RegionName ( ) string { return v . ж . RegionName }
func ( v DERPRegionView ) Avoid ( ) bool { return v . ж . Avoid }
func ( v DERPRegionView ) Nodes ( ) views . SliceView [ * DERPNode , DERPNodeView ] {
return views . SliceOfViews [ * DERPNode , DERPNodeView ] ( v . ж . Nodes )
}
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _DERPRegionViewNeedsRegeneration = DERPRegion ( struct {
RegionID int
RegionCode string
RegionName string
Avoid bool
Nodes [ ] * DERPNode
} { } )
// View returns a readonly view of DERPMap.
func ( p * DERPMap ) View ( ) DERPMapView {
return DERPMapView { ж : p }
}
// DERPMapView provides a read-only view over DERPMap.
//
// Its methods should only be called if `Valid()` returns true.
type DERPMapView 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.
ж * DERPMap
}
// Valid reports whether underlying value is non-nil.
func ( v DERPMapView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v DERPMapView ) AsStruct ( ) * DERPMap {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v DERPMapView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * DERPMapView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x DERPMap
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
2023-07-12 18:45:46 +00:00
func ( v DERPMapView ) HomeParams ( ) DERPHomeParamsView { return v . ж . HomeParams . View ( ) }
2022-05-09 16:30:39 +00:00
func ( v DERPMapView ) Regions ( ) views . MapFn [ int , * DERPRegion , DERPRegionView ] {
return views . MapFnOf ( v . ж . Regions , func ( t * DERPRegion ) DERPRegionView {
return t . View ( )
} )
}
2022-05-01 23:24:54 +00:00
func ( v DERPMapView ) OmitDefaultRegions ( ) bool { return v . ж . OmitDefaultRegions }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _DERPMapViewNeedsRegeneration = DERPMap ( struct {
2023-07-12 18:45:46 +00:00
HomeParams * DERPHomeParams
2022-05-01 23:24:54 +00:00
Regions map [ int ] * DERPRegion
OmitDefaultRegions bool
} { } )
// View returns a readonly view of DERPNode.
func ( p * DERPNode ) View ( ) DERPNodeView {
return DERPNodeView { ж : p }
}
// DERPNodeView provides a read-only view over DERPNode.
//
// Its methods should only be called if `Valid()` returns true.
type DERPNodeView 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.
ж * DERPNode
}
// Valid reports whether underlying value is non-nil.
func ( v DERPNodeView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v DERPNodeView ) AsStruct ( ) * DERPNode {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v DERPNodeView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * DERPNodeView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x DERPNode
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v DERPNodeView ) Name ( ) string { return v . ж . Name }
func ( v DERPNodeView ) RegionID ( ) int { return v . ж . RegionID }
func ( v DERPNodeView ) HostName ( ) string { return v . ж . HostName }
func ( v DERPNodeView ) CertName ( ) string { return v . ж . CertName }
func ( v DERPNodeView ) IPv4 ( ) string { return v . ж . IPv4 }
func ( v DERPNodeView ) IPv6 ( ) string { return v . ж . IPv6 }
func ( v DERPNodeView ) STUNPort ( ) int { return v . ж . STUNPort }
func ( v DERPNodeView ) STUNOnly ( ) bool { return v . ж . STUNOnly }
func ( v DERPNodeView ) DERPPort ( ) int { return v . ж . DERPPort }
func ( v DERPNodeView ) InsecureForTests ( ) bool { return v . ж . InsecureForTests }
func ( v DERPNodeView ) STUNTestIP ( ) string { return v . ж . STUNTestIP }
2023-04-20 14:21:46 +00:00
func ( v DERPNodeView ) CanPort80 ( ) bool { return v . ж . CanPort80 }
2022-05-01 23:24:54 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _DERPNodeViewNeedsRegeneration = DERPNode ( struct {
Name string
RegionID int
HostName string
CertName string
IPv4 string
IPv6 string
STUNPort int
STUNOnly bool
DERPPort int
InsecureForTests bool
STUNTestIP string
2023-04-20 14:21:46 +00:00
CanPort80 bool
2022-05-01 23:24:54 +00:00
} { } )
2022-07-27 03:48:38 +00:00
// View returns a readonly view of SSHRule.
func ( p * SSHRule ) View ( ) SSHRuleView {
return SSHRuleView { ж : p }
}
// SSHRuleView provides a read-only view over SSHRule.
//
// Its methods should only be called if `Valid()` returns true.
type SSHRuleView 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.
ж * SSHRule
}
// Valid reports whether underlying value is non-nil.
func ( v SSHRuleView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v SSHRuleView ) AsStruct ( ) * SSHRule {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v SSHRuleView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * SSHRuleView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x SSHRule
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v SSHRuleView ) RuleExpires ( ) * time . Time {
if v . ж . RuleExpires == nil {
return nil
}
x := * v . ж . RuleExpires
return & x
}
func ( v SSHRuleView ) Principals ( ) views . SliceView [ * SSHPrincipal , SSHPrincipalView ] {
return views . SliceOfViews [ * SSHPrincipal , SSHPrincipalView ] ( v . ж . Principals )
}
func ( v SSHRuleView ) SSHUsers ( ) views . Map [ string , string ] { return views . MapOf ( v . ж . SSHUsers ) }
2023-03-21 19:59:05 +00:00
func ( v SSHRuleView ) Action ( ) SSHActionView { return v . ж . Action . View ( ) }
2023-03-21 19:29:24 +00:00
2022-07-27 03:48:38 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _SSHRuleViewNeedsRegeneration = SSHRule ( struct {
RuleExpires * time . Time
Principals [ ] * SSHPrincipal
SSHUsers map [ string ] string
Action * SSHAction
2023-03-21 19:59:05 +00:00
} { } )
// View returns a readonly view of SSHAction.
func ( p * SSHAction ) View ( ) SSHActionView {
return SSHActionView { ж : p }
}
// SSHActionView provides a read-only view over SSHAction.
//
// Its methods should only be called if `Valid()` returns true.
type SSHActionView 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.
ж * SSHAction
}
// Valid reports whether underlying value is non-nil.
func ( v SSHActionView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v SSHActionView ) AsStruct ( ) * SSHAction {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v SSHActionView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * SSHActionView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x SSHAction
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v SSHActionView ) Message ( ) string { return v . ж . Message }
func ( v SSHActionView ) Reject ( ) bool { return v . ж . Reject }
func ( v SSHActionView ) Accept ( ) bool { return v . ж . Accept }
func ( v SSHActionView ) SessionDuration ( ) time . Duration { return v . ж . SessionDuration }
func ( v SSHActionView ) AllowAgentForwarding ( ) bool { return v . ж . AllowAgentForwarding }
func ( v SSHActionView ) HoldAndDelegate ( ) string { return v . ж . HoldAndDelegate }
func ( v SSHActionView ) AllowLocalPortForwarding ( ) bool { return v . ж . AllowLocalPortForwarding }
2023-06-09 01:39:27 +00:00
func ( v SSHActionView ) AllowRemotePortForwarding ( ) bool { return v . ж . AllowRemotePortForwarding }
2023-03-21 19:59:05 +00:00
func ( v SSHActionView ) Recorders ( ) views . Slice [ netip . AddrPort ] { return views . SliceOf ( v . ж . Recorders ) }
2023-04-20 04:10:55 +00:00
func ( v SSHActionView ) OnRecordingFailure ( ) * SSHRecorderFailureAction {
if v . ж . OnRecordingFailure == nil {
return nil
}
x := * v . ж . OnRecordingFailure
return & x
}
2023-03-21 19:59:05 +00:00
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _SSHActionViewNeedsRegeneration = SSHAction ( struct {
2023-06-09 01:39:27 +00:00
Message string
Reject bool
Accept bool
SessionDuration time . Duration
AllowAgentForwarding bool
HoldAndDelegate string
AllowLocalPortForwarding bool
AllowRemotePortForwarding bool
Recorders [ ] netip . AddrPort
OnRecordingFailure * SSHRecorderFailureAction
2022-07-27 03:48:38 +00:00
} { } )
// View returns a readonly view of SSHPrincipal.
func ( p * SSHPrincipal ) View ( ) SSHPrincipalView {
return SSHPrincipalView { ж : p }
}
// SSHPrincipalView provides a read-only view over SSHPrincipal.
//
// Its methods should only be called if `Valid()` returns true.
type SSHPrincipalView 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.
ж * SSHPrincipal
}
// Valid reports whether underlying value is non-nil.
func ( v SSHPrincipalView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v SSHPrincipalView ) AsStruct ( ) * SSHPrincipal {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v SSHPrincipalView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * SSHPrincipalView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x SSHPrincipal
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v SSHPrincipalView ) Node ( ) StableNodeID { return v . ж . Node }
func ( v SSHPrincipalView ) NodeIP ( ) string { return v . ж . NodeIP }
func ( v SSHPrincipalView ) UserLogin ( ) string { return v . ж . UserLogin }
func ( v SSHPrincipalView ) Any ( ) bool { return v . ж . Any }
func ( v SSHPrincipalView ) PubKeys ( ) views . Slice [ string ] { return views . SliceOf ( v . ж . PubKeys ) }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _SSHPrincipalViewNeedsRegeneration = SSHPrincipal ( struct {
Node StableNodeID
NodeIP string
UserLogin string
Any bool
PubKeys [ ] string
} { } )
2022-10-05 14:18:26 +00:00
// View returns a readonly view of ControlDialPlan.
func ( p * ControlDialPlan ) View ( ) ControlDialPlanView {
return ControlDialPlanView { ж : p }
}
// ControlDialPlanView provides a read-only view over ControlDialPlan.
//
// Its methods should only be called if `Valid()` returns true.
type ControlDialPlanView 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.
ж * ControlDialPlan
}
// Valid reports whether underlying value is non-nil.
func ( v ControlDialPlanView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v ControlDialPlanView ) AsStruct ( ) * ControlDialPlan {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v ControlDialPlanView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * ControlDialPlanView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x ControlDialPlan
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v ControlDialPlanView ) Candidates ( ) views . Slice [ ControlIPCandidate ] {
return views . SliceOf ( v . ж . Candidates )
}
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _ControlDialPlanViewNeedsRegeneration = ControlDialPlan ( struct {
Candidates [ ] ControlIPCandidate
} { } )
2023-06-16 17:04:07 +00:00
// View returns a readonly view of Location.
func ( p * Location ) View ( ) LocationView {
return LocationView { ж : p }
}
// LocationView provides a read-only view over Location.
//
// Its methods should only be called if `Valid()` returns true.
type LocationView 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.
ж * Location
}
// Valid reports whether underlying value is non-nil.
func ( v LocationView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v LocationView ) AsStruct ( ) * Location {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v LocationView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * LocationView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x Location
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v LocationView ) Country ( ) string { return v . ж . Country }
func ( v LocationView ) CountryCode ( ) string { return v . ж . CountryCode }
func ( v LocationView ) City ( ) string { return v . ж . City }
func ( v LocationView ) CityCode ( ) string { return v . ж . CityCode }
func ( v LocationView ) Priority ( ) int { return v . ж . Priority }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _LocationViewNeedsRegeneration = Location ( struct {
Country string
CountryCode string
City string
CityCode string
Priority int
} { } )
2023-07-23 21:48:03 +00:00
// View returns a readonly view of UserProfile.
func ( p * UserProfile ) View ( ) UserProfileView {
return UserProfileView { ж : p }
}
// UserProfileView provides a read-only view over UserProfile.
//
// Its methods should only be called if `Valid()` returns true.
type UserProfileView 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.
ж * UserProfile
}
// Valid reports whether underlying value is non-nil.
func ( v UserProfileView ) Valid ( ) bool { return v . ж != nil }
// AsStruct returns a clone of the underlying value which aliases no memory with
// the original.
func ( v UserProfileView ) AsStruct ( ) * UserProfile {
if v . ж == nil {
return nil
}
return v . ж . Clone ( )
}
func ( v UserProfileView ) MarshalJSON ( ) ( [ ] byte , error ) { return json . Marshal ( v . ж ) }
func ( v * UserProfileView ) UnmarshalJSON ( b [ ] byte ) error {
if v . ж != nil {
return errors . New ( "already initialized" )
}
if len ( b ) == 0 {
return nil
}
var x UserProfile
if err := json . Unmarshal ( b , & x ) ; err != nil {
return err
}
v . ж = & x
return nil
}
func ( v UserProfileView ) ID ( ) UserID { return v . ж . ID }
func ( v UserProfileView ) LoginName ( ) string { return v . ж . LoginName }
func ( v UserProfileView ) DisplayName ( ) string { return v . ж . DisplayName }
func ( v UserProfileView ) ProfilePicURL ( ) string { return v . ж . ProfilePicURL }
func ( v UserProfileView ) Roles ( ) emptyStructJSONSlice { return v . ж . Roles }
func ( v UserProfileView ) Equal ( v2 UserProfileView ) bool { return v . ж . Equal ( v2 . ж ) }
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
var _UserProfileViewNeedsRegeneration = UserProfile ( struct {
ID UserID
LoginName string
DisplayName string
ProfilePicURL string
Roles emptyStructJSONSlice
} { } )