Documentation
¶
Overview ¶
Package api provides primitives to interact with the openapi HTTP API.
Code generated by github.com/deepmap/oapi-codegen version v1.11.1-0.20220912230023-4a1477f6a8ba DO NOT EDIT.
Index ¶
- Constants
- type AccessiblePeer
- type Account
- type AccountExtraSettings
- type AccountOnboarding
- type AccountRequest
- type AccountSettings
- type AvailablePorts
- type Checks
- type City
- type CityName
- type Country
- type CountryCode
- type CreateSetupKeyRequest
- type DNSSettings
- type Event
- type EventActivityCode
- type GeoLocationCheck
- type GeoLocationCheckAction
- type GetApiEventsNetworkTrafficParams
- type GetApiEventsNetworkTrafficParamsConnectionType
- type GetApiEventsNetworkTrafficParamsDirection
- type GetApiEventsNetworkTrafficParamsType
- type GetApiPeersParams
- type GetApiPeersPeerIdIngressPortsParams
- type GetApiUsersParams
- type Group
- type GroupIssued
- type GroupMinimum
- type GroupMinimumIssued
- type GroupRequest
- type IngressPeer
- type IngressPeerCreateRequest
- type IngressPeerUpdateRequest
- type IngressPortAllocation
- type IngressPortAllocationPortMapping
- type IngressPortAllocationPortMappingProtocol
- type IngressPortAllocationRequest
- type IngressPortAllocationRequestDirectPort
- type IngressPortAllocationRequestDirectPortProtocol
- type IngressPortAllocationRequestPortRange
- type IngressPortAllocationRequestPortRangeProtocol
- type Location
- type MinKernelVersionCheck
- type MinVersionCheck
- type NBVersionCheck
- type Nameserver
- type NameserverGroup
- type NameserverGroupRequest
- type NameserverNsType
- type Network
- type NetworkRequest
- type NetworkResource
- type NetworkResourceMinimum
- type NetworkResourceRequest
- type NetworkResourceType
- type NetworkRouter
- type NetworkRouterRequest
- type NetworkTrafficEndpoint
- type NetworkTrafficEvent
- type NetworkTrafficEventsResponse
- type NetworkTrafficICMP
- type NetworkTrafficLocation
- type NetworkTrafficPolicy
- type NetworkTrafficSubEvent
- type NetworkTrafficUser
- type OSVersionCheck
- type Peer
- type PeerBatch
- type PeerMinimum
- type PeerNetworkRangeCheck
- type PeerNetworkRangeCheckAction
- type PeerRequest
- type PeerTemporaryAccessRequest
- type PeerTemporaryAccessResponse
- type PersonalAccessToken
- type PersonalAccessTokenGenerated
- type PersonalAccessTokenRequest
- type Policy
- type PolicyCreate
- type PolicyMinimum
- type PolicyRule
- type PolicyRuleAction
- type PolicyRuleMinimum
- type PolicyRuleMinimumAction
- type PolicyRuleMinimumProtocol
- type PolicyRuleProtocol
- type PolicyRuleUpdate
- type PolicyRuleUpdateAction
- type PolicyRuleUpdateProtocol
- type PolicyUpdate
- type PostApiDnsNameserversJSONRequestBody
- type PostApiGroupsJSONRequestBody
- type PostApiIngressPeersJSONRequestBody
- type PostApiNetworksJSONRequestBody
- type PostApiNetworksNetworkIdResourcesJSONRequestBody
- type PostApiNetworksNetworkIdRoutersJSONRequestBody
- type PostApiPeersPeerIdIngressPortsJSONRequestBody
- type PostApiPeersPeerIdTemporaryAccessJSONRequestBody
- type PostApiPoliciesJSONRequestBody
- type PostApiPostureChecksJSONRequestBody
- type PostApiRoutesJSONRequestBody
- type PostApiSetupKeysJSONRequestBody
- type PostApiUsersJSONRequestBody
- type PostApiUsersUserIdTokensJSONRequestBody
- type PostureCheck
- type PostureCheckUpdate
- type Process
- type ProcessCheck
- type PutApiAccountsAccountIdJSONRequestBody
- type PutApiDnsNameserversNsgroupIdJSONRequestBody
- type PutApiDnsSettingsJSONRequestBody
- type PutApiGroupsGroupIdJSONRequestBody
- type PutApiIngressPeersIngressPeerIdJSONRequestBody
- type PutApiNetworksNetworkIdJSONRequestBody
- type PutApiNetworksNetworkIdResourcesResourceIdJSONRequestBody
- type PutApiNetworksNetworkIdRoutersRouterIdJSONRequestBody
- type PutApiPeersPeerIdIngressPortsAllocationIdJSONRequestBody
- type PutApiPeersPeerIdJSONRequestBody
- type PutApiPoliciesPolicyIdJSONRequestBody
- type PutApiPostureChecksPostureCheckIdJSONRequestBody
- type PutApiRoutesRouteIdJSONRequestBody
- type PutApiSetupKeysKeyIdJSONRequestBody
- type PutApiUsersUserIdJSONRequestBody
- type Resource
- type ResourceType
- type Route
- type RouteRequest
- type RulePortRange
- type SetupKey
- type SetupKeyBase
- type SetupKeyClear
- type SetupKeyRequest
- type User
- type UserCreateRequest
- type UserPermissions
- type UserRequest
- type UserStatus
Constants ¶
const ( BearerAuthScopes = "BearerAuth.Scopes" TokenAuthScopes = "TokenAuth.Scopes" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessiblePeer ¶
type AccessiblePeer struct {
// CityName Commonly used English name of the city
CityName CityName `json:"city_name"`
// Connected Peer to Management connection status
Connected bool `json:"connected"`
// CountryCode 2-letter ISO 3166-1 alpha-2 code that represents the country
CountryCode CountryCode `json:"country_code"`
// DnsLabel Peer's DNS label is the parsed peer name for domain resolution. It is used to form an FQDN by appending the account's domain to the peer label. e.g. peer-dns-label.netbird.cloud
DnsLabel string `json:"dns_label"`
// GeonameId Unique identifier from the GeoNames database for a specific geographical location.
GeonameId int `json:"geoname_id"`
// Id Peer ID
Id string `json:"id"`
// Ip Peer's IP address
Ip string `json:"ip"`
// LastSeen Last time peer connected to Netbird's management service
LastSeen time.Time `json:"last_seen"`
// Name Peer's hostname
Name string `json:"name"`
// Os Peer's operating system and version
Os string `json:"os"`
// UserId User ID of the user that enrolled this peer
UserId string `json:"user_id"`
}
AccessiblePeer defines model for AccessiblePeer.
type Account ¶
type Account struct {
// CreatedAt Account creation date (UTC)
CreatedAt time.Time `json:"created_at"`
// CreatedBy Account creator
CreatedBy string `json:"created_by"`
// Domain Account domain
Domain string `json:"domain"`
// DomainCategory Account domain category
DomainCategory string `json:"domain_category"`
// Id Account ID
Id string `json:"id"`
Onboarding AccountOnboarding `json:"onboarding"`
Settings AccountSettings `json:"settings"`
}
Account defines model for Account.
type AccountExtraSettings ¶
type AccountExtraSettings struct {
// NetworkTrafficLogsEnabled Enables or disables network traffic logging. If enabled, all network traffic events from peers will be stored.
NetworkTrafficLogsEnabled bool `json:"network_traffic_logs_enabled"`
// NetworkTrafficLogsGroups Limits traffic logging to these groups. If unset all peers are enabled.
NetworkTrafficLogsGroups []string `json:"network_traffic_logs_groups"`
// NetworkTrafficPacketCounterEnabled Enables or disables network traffic packet counter. If enabled, network packets and their size will be counted and reported. (This can have an slight impact on performance)
NetworkTrafficPacketCounterEnabled bool `json:"network_traffic_packet_counter_enabled"`
// PeerApprovalEnabled (Cloud only) Enables or disables peer approval globally. If enabled, all peers added will be in pending state until approved by an admin.
PeerApprovalEnabled bool `json:"peer_approval_enabled"`
// UserApprovalRequired Enables manual approval for new users joining via domain matching. When enabled, users are blocked with pending approval status until explicitly approved by an admin.
UserApprovalRequired bool `json:"user_approval_required"`
}
AccountExtraSettings defines model for AccountExtraSettings.
type AccountOnboarding ¶
type AccountOnboarding struct {
// OnboardingFlowPending Indicates whether the account onboarding flow is pending
OnboardingFlowPending bool `json:"onboarding_flow_pending"`
// SignupFormPending Indicates whether the account signup form is pending
SignupFormPending bool `json:"signup_form_pending"`
}
AccountOnboarding defines model for AccountOnboarding.
type AccountRequest ¶
type AccountRequest struct {
Onboarding *AccountOnboarding `json:"onboarding,omitempty"`
Settings AccountSettings `json:"settings"`
}
AccountRequest defines model for AccountRequest.
type AccountSettings ¶
type AccountSettings struct {
// DnsDomain Allows to define a custom dns domain for the account
DnsDomain *string `json:"dns_domain,omitempty"`
Extra *AccountExtraSettings `json:"extra,omitempty"`
// GroupsPropagationEnabled Allows propagate the new user auto groups to peers that belongs to the user
GroupsPropagationEnabled *bool `json:"groups_propagation_enabled,omitempty"`
// JwtAllowGroups List of groups to which users are allowed access
JwtAllowGroups *[]string `json:"jwt_allow_groups,omitempty"`
// JwtGroupsClaimName Name of the claim from which we extract groups names to add it to account groups.
JwtGroupsClaimName *string `json:"jwt_groups_claim_name,omitempty"`
// JwtGroupsEnabled Allows extract groups from JWT claim and add it to account groups.
JwtGroupsEnabled *bool `json:"jwt_groups_enabled,omitempty"`
// LazyConnectionEnabled Enables or disables experimental lazy connection
LazyConnectionEnabled *bool `json:"lazy_connection_enabled,omitempty"`
// NetworkRange Allows to define a custom network range for the account in CIDR format
NetworkRange *string `json:"network_range,omitempty"`
// PeerInactivityExpiration Period of time of inactivity after which peer session expires (seconds).
PeerInactivityExpiration int `json:"peer_inactivity_expiration"`
// PeerInactivityExpirationEnabled Enables or disables peer inactivity expiration globally. After peer's session has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
PeerInactivityExpirationEnabled bool `json:"peer_inactivity_expiration_enabled"`
// PeerLoginExpiration Period of time after which peer login expires (seconds).
PeerLoginExpiration int `json:"peer_login_expiration"`
// PeerLoginExpirationEnabled Enables or disables peer login expiration globally. After peer's login has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
PeerLoginExpirationEnabled bool `json:"peer_login_expiration_enabled"`
// RegularUsersViewBlocked Allows blocking regular users from viewing parts of the system.
RegularUsersViewBlocked bool `json:"regular_users_view_blocked"`
// RoutingPeerDnsResolutionEnabled Enables or disables DNS resolution on the routing peers
RoutingPeerDnsResolutionEnabled *bool `json:"routing_peer_dns_resolution_enabled,omitempty"`
}
AccountSettings defines model for AccountSettings.
type AvailablePorts ¶
type AvailablePorts struct {
// Tcp Number of available TCP ports left on the ingress peer
Tcp int `json:"tcp"`
// Udp Number of available UDP ports left on the ingress peer
Udp int `json:"udp"`
}
AvailablePorts defines model for AvailablePorts.
type Checks ¶
type Checks struct {
// GeoLocationCheck Posture check for geo location
GeoLocationCheck *GeoLocationCheck `json:"geo_location_check,omitempty"`
// NbVersionCheck Posture check for the version of operating system
NbVersionCheck *NBVersionCheck `json:"nb_version_check,omitempty"`
// OsVersionCheck Posture check for the version of operating system
OsVersionCheck *OSVersionCheck `json:"os_version_check,omitempty"`
// PeerNetworkRangeCheck Posture check for allow or deny access based on peer local network addresses
PeerNetworkRangeCheck *PeerNetworkRangeCheck `json:"peer_network_range_check,omitempty"`
// ProcessCheck Posture Check for binaries exist and are running in the peer’s system
ProcessCheck *ProcessCheck `json:"process_check,omitempty"`
}
Checks List of objects that perform the actual checks
type City ¶
type City struct {
// CityName Commonly used English name of the city
CityName string `json:"city_name"`
// GeonameId Integer ID of the record in GeoNames database
GeonameId int `json:"geoname_id"`
}
City Describe city geographical location information
type Country ¶
type Country struct {
// CountryCode 2-letter ISO 3166-1 alpha-2 code that represents the country
CountryCode CountryCode `json:"country_code"`
// CountryName Commonly used English name of the country
CountryName string `json:"country_name"`
}
Country Describe country geographical location information
type CountryCode ¶
type CountryCode = string
CountryCode 2-letter ISO 3166-1 alpha-2 code that represents the country
type CreateSetupKeyRequest ¶
type CreateSetupKeyRequest struct {
// AllowExtraDnsLabels Allow extra DNS labels to be added to the peer
AllowExtraDnsLabels *bool `json:"allow_extra_dns_labels,omitempty"`
// AutoGroups List of group IDs to auto-assign to peers registered with this key
AutoGroups []string `json:"auto_groups"`
// Ephemeral Indicate that the peer will be ephemeral or not
Ephemeral *bool `json:"ephemeral,omitempty"`
// ExpiresIn Expiration time in seconds
ExpiresIn int `json:"expires_in"`
// Name Setup Key name
Name string `json:"name"`
// Type Setup key type, one-off for single time usage and reusable
Type string `json:"type"`
// UsageLimit A number of times this key can be used. The value of 0 indicates the unlimited usage.
UsageLimit int `json:"usage_limit"`
}
CreateSetupKeyRequest defines model for CreateSetupKeyRequest.
type DNSSettings ¶
type DNSSettings struct {
// DisabledManagementGroups Groups whose DNS management is disabled
DisabledManagementGroups []string `json:"disabled_management_groups"`
}
DNSSettings defines model for DNSSettings.
type Event ¶
type Event struct {
// Activity The activity that occurred during the event
Activity string `json:"activity"`
// ActivityCode The string code of the activity that occurred during the event
ActivityCode EventActivityCode `json:"activity_code"`
// Id Event unique identifier
Id string `json:"id"`
// InitiatorEmail The e-mail address of the initiator of the event. E.g., an e-mail of a user that triggered the event.
InitiatorEmail string `json:"initiator_email"`
// InitiatorId The ID of the initiator of the event. E.g., an ID of a user that triggered the event.
InitiatorId string `json:"initiator_id"`
// InitiatorName The name of the initiator of the event.
InitiatorName string `json:"initiator_name"`
// Meta The metadata of the event
Meta map[string]string `json:"meta"`
// TargetId The ID of the target of the event. E.g., an ID of the peer that a user removed.
TargetId string `json:"target_id"`
// Timestamp The date and time when the event occurred
Timestamp time.Time `json:"timestamp"`
}
Event defines model for Event.
type EventActivityCode ¶
type EventActivityCode string
EventActivityCode The string code of the activity that occurred during the event
const ( EventActivityCodeAccountCreate EventActivityCode = "account.create" EventActivityCodeAccountSettingPeerLoginExpirationDisable EventActivityCode = "account.setting.peer.login.expiration.disable" EventActivityCodeAccountSettingPeerLoginExpirationEnable EventActivityCode = "account.setting.peer.login.expiration.enable" EventActivityCodeAccountSettingPeerLoginExpirationUpdate EventActivityCode = "account.setting.peer.login.expiration.update" EventActivityCodeDnsSettingDisabledManagementGroupAdd EventActivityCode = "dns.setting.disabled.management.group.add" EventActivityCodeDnsSettingDisabledManagementGroupDelete EventActivityCode = "dns.setting.disabled.management.group.delete" EventActivityCodeGroupAdd EventActivityCode = "group.add" EventActivityCodeGroupUpdate EventActivityCode = "group.update" EventActivityCodeNameserverGroupAdd EventActivityCode = "nameserver.group.add" EventActivityCodeNameserverGroupDelete EventActivityCode = "nameserver.group.delete" EventActivityCodeNameserverGroupUpdate EventActivityCode = "nameserver.group.update" EventActivityCodePeerLoginExpirationDisable EventActivityCode = "peer.login.expiration.disable" EventActivityCodePeerLoginExpirationEnable EventActivityCode = "peer.login.expiration.enable" EventActivityCodePeerLoginExpire EventActivityCode = "peer.login.expire" EventActivityCodePeerRename EventActivityCode = "peer.rename" EventActivityCodePeerSshDisable EventActivityCode = "peer.ssh.disable" EventActivityCodePeerSshEnable EventActivityCode = "peer.ssh.enable" EventActivityCodePersonalAccessTokenCreate EventActivityCode = "personal.access.token.create" EventActivityCodePersonalAccessTokenDelete EventActivityCode = "personal.access.token.delete" EventActivityCodePolicyAdd EventActivityCode = "policy.add" EventActivityCodePolicyDelete EventActivityCode = "policy.delete" EventActivityCodePolicyUpdate EventActivityCode = "policy.update" EventActivityCodeRouteAdd EventActivityCode = "route.add" EventActivityCodeRouteDelete EventActivityCode = "route.delete" EventActivityCodeRouteUpdate EventActivityCode = "route.update" EventActivityCodeRuleAdd EventActivityCode = "rule.add" EventActivityCodeRuleDelete EventActivityCode = "rule.delete" EventActivityCodeRuleUpdate EventActivityCode = "rule.update" EventActivityCodeServiceUserCreate EventActivityCode = "service.user.create" EventActivityCodeServiceUserDelete EventActivityCode = "service.user.delete" EventActivityCodeSetupkeyAdd EventActivityCode = "setupkey.add" EventActivityCodeSetupkeyGroupAdd EventActivityCode = "setupkey.group.add" EventActivityCodeSetupkeyGroupDelete EventActivityCode = "setupkey.group.delete" EventActivityCodeSetupkeyOveruse EventActivityCode = "setupkey.overuse" EventActivityCodeSetupkeyPeerAdd EventActivityCode = "setupkey.peer.add" EventActivityCodeSetupkeyRevoke EventActivityCode = "setupkey.revoke" EventActivityCodeSetupkeyUpdate EventActivityCode = "setupkey.update" EventActivityCodeUserBlock EventActivityCode = "user.block" EventActivityCodeUserGroupAdd EventActivityCode = "user.group.add" EventActivityCodeUserGroupDelete EventActivityCode = "user.group.delete" EventActivityCodeUserInvite EventActivityCode = "user.invite" EventActivityCodeUserJoin EventActivityCode = "user.join" EventActivityCodeUserPeerAdd EventActivityCode = "user.peer.add" EventActivityCodeUserPeerDelete EventActivityCode = "user.peer.delete" EventActivityCodeUserPeerLogin EventActivityCode = "user.peer.login" EventActivityCodeUserRoleUpdate EventActivityCode = "user.role.update" EventActivityCodeUserUnblock EventActivityCode = "user.unblock" )
Defines values for EventActivityCode.
type GeoLocationCheck ¶
type GeoLocationCheck struct {
// Action Action to take upon policy match
Action GeoLocationCheckAction `json:"action"`
// Locations List of geo locations to which the policy applies
Locations []Location `json:"locations"`
}
GeoLocationCheck Posture check for geo location
type GeoLocationCheckAction ¶
type GeoLocationCheckAction string
GeoLocationCheckAction Action to take upon policy match
const ( GeoLocationCheckActionAllow GeoLocationCheckAction = "allow" GeoLocationCheckActionDeny GeoLocationCheckAction = "deny" )
Defines values for GeoLocationCheckAction.
type GetApiEventsNetworkTrafficParams ¶
type GetApiEventsNetworkTrafficParams struct {
// Page Page number
Page *int `form:"page,omitempty" json:"page,omitempty"`
// PageSize Number of items per page
PageSize *int `form:"page_size,omitempty" json:"page_size,omitempty"`
// UserId Filter by user ID
UserId *string `form:"user_id,omitempty" json:"user_id,omitempty"`
// ReporterId Filter by reporter ID
ReporterId *string `form:"reporter_id,omitempty" json:"reporter_id,omitempty"`
// Protocol Filter by protocol
Protocol *int `form:"protocol,omitempty" json:"protocol,omitempty"`
// Type Filter by event type
Type *GetApiEventsNetworkTrafficParamsType `form:"type,omitempty" json:"type,omitempty"`
// ConnectionType Filter by connection type
ConnectionType *GetApiEventsNetworkTrafficParamsConnectionType `form:"connection_type,omitempty" json:"connection_type,omitempty"`
// Direction Filter by direction
Direction *GetApiEventsNetworkTrafficParamsDirection `form:"direction,omitempty" json:"direction,omitempty"`
// Search Case-insensitive partial match on user email, source/destination names, and source/destination addresses
Search *string `form:"search,omitempty" json:"search,omitempty"`
// StartDate Start date for filtering events (ISO 8601 format, e.g., 2024-01-01T00:00:00Z).
StartDate *time.Time `form:"start_date,omitempty" json:"start_date,omitempty"`
// EndDate End date for filtering events (ISO 8601 format, e.g., 2024-01-31T23:59:59Z).
EndDate *time.Time `form:"end_date,omitempty" json:"end_date,omitempty"`
}
GetApiEventsNetworkTrafficParams defines parameters for GetApiEventsNetworkTraffic.
type GetApiEventsNetworkTrafficParamsConnectionType ¶
type GetApiEventsNetworkTrafficParamsConnectionType string
GetApiEventsNetworkTrafficParamsConnectionType defines parameters for GetApiEventsNetworkTraffic.
const ( GetApiEventsNetworkTrafficParamsConnectionTypeP2P GetApiEventsNetworkTrafficParamsConnectionType = "P2P" GetApiEventsNetworkTrafficParamsConnectionTypeROUTED GetApiEventsNetworkTrafficParamsConnectionType = "ROUTED" )
Defines values for GetApiEventsNetworkTrafficParamsConnectionType.
type GetApiEventsNetworkTrafficParamsDirection ¶
type GetApiEventsNetworkTrafficParamsDirection string
GetApiEventsNetworkTrafficParamsDirection defines parameters for GetApiEventsNetworkTraffic.
const ( GetApiEventsNetworkTrafficParamsDirectionDIRECTIONUNKNOWN GetApiEventsNetworkTrafficParamsDirection = "DIRECTION_UNKNOWN" GetApiEventsNetworkTrafficParamsDirectionEGRESS GetApiEventsNetworkTrafficParamsDirection = "EGRESS" GetApiEventsNetworkTrafficParamsDirectionINGRESS GetApiEventsNetworkTrafficParamsDirection = "INGRESS" )
Defines values for GetApiEventsNetworkTrafficParamsDirection.
type GetApiEventsNetworkTrafficParamsType ¶
type GetApiEventsNetworkTrafficParamsType string
GetApiEventsNetworkTrafficParamsType defines parameters for GetApiEventsNetworkTraffic.
const ( GetApiEventsNetworkTrafficParamsTypeTYPEDROP GetApiEventsNetworkTrafficParamsType = "TYPE_DROP" GetApiEventsNetworkTrafficParamsTypeTYPEEND GetApiEventsNetworkTrafficParamsType = "TYPE_END" GetApiEventsNetworkTrafficParamsTypeTYPESTART GetApiEventsNetworkTrafficParamsType = "TYPE_START" GetApiEventsNetworkTrafficParamsTypeTYPEUNKNOWN GetApiEventsNetworkTrafficParamsType = "TYPE_UNKNOWN" )
Defines values for GetApiEventsNetworkTrafficParamsType.
type GetApiPeersParams ¶
type GetApiPeersParams struct {
// Name Filter peers by name
Name *string `form:"name,omitempty" json:"name,omitempty"`
// Ip Filter peers by IP address
Ip *string `form:"ip,omitempty" json:"ip,omitempty"`
}
GetApiPeersParams defines parameters for GetApiPeers.
type GetApiPeersPeerIdIngressPortsParams ¶
type GetApiPeersPeerIdIngressPortsParams struct {
// Name Filters ingress port allocations by name
Name *string `form:"name,omitempty" json:"name,omitempty"`
}
GetApiPeersPeerIdIngressPortsParams defines parameters for GetApiPeersPeerIdIngressPorts.
type GetApiUsersParams ¶
type GetApiUsersParams struct {
// ServiceUser Filters users and returns either regular users or service users
ServiceUser *bool `form:"service_user,omitempty" json:"service_user,omitempty"`
}
GetApiUsersParams defines parameters for GetApiUsers.
type Group ¶
type Group struct {
// Id Group ID
Id string `json:"id"`
// Issued How the group was issued (api, integration, jwt)
Issued *GroupIssued `json:"issued,omitempty"`
// Name Group Name identifier
Name string `json:"name"`
// Peers List of peers object
Peers []PeerMinimum `json:"peers"`
// PeersCount Count of peers associated to the group
PeersCount int `json:"peers_count"`
Resources []Resource `json:"resources"`
// ResourcesCount Count of resources associated to the group
ResourcesCount int `json:"resources_count"`
}
Group defines model for Group.
type GroupIssued ¶
type GroupIssued string
GroupIssued How the group was issued (api, integration, jwt)
const ( GroupIssuedApi GroupIssued = "api" GroupIssuedIntegration GroupIssued = "integration" GroupIssuedJwt GroupIssued = "jwt" )
Defines values for GroupIssued.
type GroupMinimum ¶
type GroupMinimum struct {
// Id Group ID
Id string `json:"id"`
// Issued How the group was issued (api, integration, jwt)
Issued *GroupMinimumIssued `json:"issued,omitempty"`
// Name Group Name identifier
Name string `json:"name"`
// PeersCount Count of peers associated to the group
PeersCount int `json:"peers_count"`
// ResourcesCount Count of resources associated to the group
ResourcesCount int `json:"resources_count"`
}
GroupMinimum defines model for GroupMinimum.
type GroupMinimumIssued ¶
type GroupMinimumIssued string
GroupMinimumIssued How the group was issued (api, integration, jwt)
const ( GroupMinimumIssuedApi GroupMinimumIssued = "api" GroupMinimumIssuedIntegration GroupMinimumIssued = "integration" GroupMinimumIssuedJwt GroupMinimumIssued = "jwt" )
Defines values for GroupMinimumIssued.
type GroupRequest ¶
type GroupRequest struct {
// Name Group name identifier
Name string `json:"name"`
// Peers List of peers ids
Peers *[]string `json:"peers,omitempty"`
Resources *[]Resource `json:"resources,omitempty"`
}
GroupRequest defines model for GroupRequest.
type IngressPeer ¶
type IngressPeer struct {
AvailablePorts AvailablePorts `json:"available_ports"`
// Connected Indicates if an ingress peer is connected to the management server
Connected bool `json:"connected"`
// Enabled Indicates if an ingress peer is enabled
Enabled bool `json:"enabled"`
// Fallback Indicates if an ingress peer can be used as a fallback if no ingress peer can be found in the region of the forwarded peer
Fallback bool `json:"fallback"`
// Id ID of the ingress peer
Id string `json:"id"`
// IngressIp Ingress IP address of the ingress peer where the traffic arrives
IngressIp string `json:"ingress_ip"`
// PeerId ID of the peer that is used as an ingress peer
PeerId string `json:"peer_id"`
// Region Region of the ingress peer
Region string `json:"region"`
}
IngressPeer defines model for IngressPeer.
type IngressPeerCreateRequest ¶
type IngressPeerCreateRequest struct {
// Enabled Defines if an ingress peer is enabled
Enabled bool `json:"enabled"`
// Fallback Defines if an ingress peer can be used as a fallback if no ingress peer can be found in the region of the forwarded peer
Fallback bool `json:"fallback"`
// PeerId ID of the peer that is used as an ingress peer
PeerId string `json:"peer_id"`
}
IngressPeerCreateRequest defines model for IngressPeerCreateRequest.
type IngressPeerUpdateRequest ¶
type IngressPeerUpdateRequest struct {
// Enabled Defines if an ingress peer is enabled
Enabled bool `json:"enabled"`
// Fallback Defines if an ingress peer can be used as a fallback if no ingress peer can be found in the region of the forwarded peer
Fallback bool `json:"fallback"`
}
IngressPeerUpdateRequest defines model for IngressPeerUpdateRequest.
type IngressPortAllocation ¶
type IngressPortAllocation struct {
// Enabled Indicates if an ingress port allocation is enabled
Enabled bool `json:"enabled"`
// Id ID of the ingress port allocation
Id string `json:"id"`
// IngressIp Ingress IP address of the ingress peer where the traffic arrives
IngressIp string `json:"ingress_ip"`
// IngressPeerId ID of the ingress peer that forwards the ports
IngressPeerId string `json:"ingress_peer_id"`
// Name Name of the ingress port allocation
Name string `json:"name"`
// PortRangeMappings List of port ranges that are allowed to be used by the ingress peer
PortRangeMappings []IngressPortAllocationPortMapping `json:"port_range_mappings"`
// Region Region of the ingress peer
Region string `json:"region"`
}
IngressPortAllocation defines model for IngressPortAllocation.
type IngressPortAllocationPortMapping ¶
type IngressPortAllocationPortMapping struct {
// IngressEnd The ending port of the range of ingress ports mapped to the forwarded ports
IngressEnd int `json:"ingress_end"`
// IngressStart The starting port of the range of ingress ports mapped to the forwarded ports
IngressStart int `json:"ingress_start"`
// Protocol Protocol accepted by the ports
Protocol IngressPortAllocationPortMappingProtocol `json:"protocol"`
// TranslatedEnd The ending port of the translated range of forwarded ports
TranslatedEnd int `json:"translated_end"`
// TranslatedStart The starting port of the translated range of forwarded ports
TranslatedStart int `json:"translated_start"`
}
IngressPortAllocationPortMapping defines model for IngressPortAllocationPortMapping.
type IngressPortAllocationPortMappingProtocol ¶
type IngressPortAllocationPortMappingProtocol string
IngressPortAllocationPortMappingProtocol Protocol accepted by the ports
const ( IngressPortAllocationPortMappingProtocolTcp IngressPortAllocationPortMappingProtocol = "tcp" IngressPortAllocationPortMappingProtocolTcpudp IngressPortAllocationPortMappingProtocol = "tcp/udp" IngressPortAllocationPortMappingProtocolUdp IngressPortAllocationPortMappingProtocol = "udp" )
Defines values for IngressPortAllocationPortMappingProtocol.
type IngressPortAllocationRequest ¶
type IngressPortAllocationRequest struct {
DirectPort *IngressPortAllocationRequestDirectPort `json:"direct_port,omitempty"`
// Enabled Indicates if an ingress port allocation is enabled
Enabled bool `json:"enabled"`
// Name Name of the ingress port allocation
Name string `json:"name"`
// PortRanges List of port ranges that are forwarded by the ingress peer
PortRanges *[]IngressPortAllocationRequestPortRange `json:"port_ranges,omitempty"`
}
IngressPortAllocationRequest defines model for IngressPortAllocationRequest.
type IngressPortAllocationRequestDirectPort ¶
type IngressPortAllocationRequestDirectPort struct {
// Count The number of ports to be forwarded
Count int `json:"count"`
// Protocol The protocol accepted by the port
Protocol IngressPortAllocationRequestDirectPortProtocol `json:"protocol"`
}
IngressPortAllocationRequestDirectPort defines model for IngressPortAllocationRequestDirectPort.
type IngressPortAllocationRequestDirectPortProtocol ¶
type IngressPortAllocationRequestDirectPortProtocol string
IngressPortAllocationRequestDirectPortProtocol The protocol accepted by the port
const ( IngressPortAllocationRequestDirectPortProtocolTcp IngressPortAllocationRequestDirectPortProtocol = "tcp" IngressPortAllocationRequestDirectPortProtocolTcpudp IngressPortAllocationRequestDirectPortProtocol = "tcp/udp" IngressPortAllocationRequestDirectPortProtocolUdp IngressPortAllocationRequestDirectPortProtocol = "udp" )
Defines values for IngressPortAllocationRequestDirectPortProtocol.
type IngressPortAllocationRequestPortRange ¶
type IngressPortAllocationRequestPortRange struct {
// End The ending port of the range of forwarded ports
End int `json:"end"`
// Protocol The protocol accepted by the port range
Protocol IngressPortAllocationRequestPortRangeProtocol `json:"protocol"`
// Start The starting port of the range of forwarded ports
Start int `json:"start"`
}
IngressPortAllocationRequestPortRange defines model for IngressPortAllocationRequestPortRange.
type IngressPortAllocationRequestPortRangeProtocol ¶
type IngressPortAllocationRequestPortRangeProtocol string
IngressPortAllocationRequestPortRangeProtocol The protocol accepted by the port range
const ( IngressPortAllocationRequestPortRangeProtocolTcp IngressPortAllocationRequestPortRangeProtocol = "tcp" IngressPortAllocationRequestPortRangeProtocolTcpudp IngressPortAllocationRequestPortRangeProtocol = "tcp/udp" IngressPortAllocationRequestPortRangeProtocolUdp IngressPortAllocationRequestPortRangeProtocol = "udp" )
Defines values for IngressPortAllocationRequestPortRangeProtocol.
type Location ¶
type Location struct {
// CityName Commonly used English name of the city
CityName *CityName `json:"city_name,omitempty"`
// CountryCode 2-letter ISO 3166-1 alpha-2 code that represents the country
CountryCode CountryCode `json:"country_code"`
}
Location Describe geographical location information
type MinKernelVersionCheck ¶
type MinKernelVersionCheck struct {
// MinKernelVersion Minimum acceptable version
MinKernelVersion string `json:"min_kernel_version"`
}
MinKernelVersionCheck Posture check with the kernel version
type MinVersionCheck ¶
type MinVersionCheck struct {
// MinVersion Minimum acceptable version
MinVersion string `json:"min_version"`
}
MinVersionCheck Posture check for the version of operating system
type NBVersionCheck ¶
type NBVersionCheck = MinVersionCheck
NBVersionCheck Posture check for the version of operating system
type Nameserver ¶
type Nameserver struct {
// Ip Nameserver IP
Ip string `json:"ip"`
// NsType Nameserver Type
NsType NameserverNsType `json:"ns_type"`
// Port Nameserver Port
Port int `json:"port"`
}
Nameserver defines model for Nameserver.
type NameserverGroup ¶
type NameserverGroup struct {
// Description Description of the nameserver group
Description string `json:"description"`
// Domains Match domain list. It should be empty only if primary is true.
Domains []string `json:"domains"`
// Enabled Nameserver group status
Enabled bool `json:"enabled"`
// Groups Distribution group IDs that defines group of peers that will use this nameserver group
Groups []string `json:"groups"`
// Id Nameserver group ID
Id string `json:"id"`
// Name Name of nameserver group name
Name string `json:"name"`
// Nameservers Nameserver list
Nameservers []Nameserver `json:"nameservers"`
// Primary Defines if a nameserver group is primary that resolves all domains. It should be true only if domains list is empty.
Primary bool `json:"primary"`
// SearchDomainsEnabled Search domain status for match domains. It should be true only if domains list is not empty.
SearchDomainsEnabled bool `json:"search_domains_enabled"`
}
NameserverGroup defines model for NameserverGroup.
type NameserverGroupRequest ¶
type NameserverGroupRequest struct {
// Description Description of the nameserver group
Description string `json:"description"`
// Domains Match domain list. It should be empty only if primary is true.
Domains []string `json:"domains"`
// Enabled Nameserver group status
Enabled bool `json:"enabled"`
// Groups Distribution group IDs that defines group of peers that will use this nameserver group
Groups []string `json:"groups"`
// Name Name of nameserver group name
Name string `json:"name"`
// Nameservers Nameserver list
Nameservers []Nameserver `json:"nameservers"`
// Primary Defines if a nameserver group is primary that resolves all domains. It should be true only if domains list is empty.
Primary bool `json:"primary"`
// SearchDomainsEnabled Search domain status for match domains. It should be true only if domains list is not empty.
SearchDomainsEnabled bool `json:"search_domains_enabled"`
}
NameserverGroupRequest defines model for NameserverGroupRequest.
type NameserverNsType ¶
type NameserverNsType string
NameserverNsType Nameserver Type
const (
NameserverNsTypeUdp NameserverNsType = "udp"
)
Defines values for NameserverNsType.
type Network ¶
type Network struct {
// Description Network description
Description *string `json:"description,omitempty"`
// Id Network ID
Id string `json:"id"`
// Name Network name
Name string `json:"name"`
// Policies List of policy IDs associated with the network
Policies []string `json:"policies"`
// Resources List of network resource IDs associated with the network
Resources []string `json:"resources"`
// Routers List of router IDs associated with the network
Routers []string `json:"routers"`
// RoutingPeersCount Count of routing peers associated with the network
RoutingPeersCount int `json:"routing_peers_count"`
}
Network defines model for Network.
type NetworkRequest ¶
type NetworkRequest struct {
// Description Network description
Description *string `json:"description,omitempty"`
// Name Network name
Name string `json:"name"`
}
NetworkRequest defines model for NetworkRequest.
type NetworkResource ¶
type NetworkResource struct {
// Address Network resource address (either a direct host like 1.1.1.1 or 1.1.1.1/32, or a subnet like 192.168.178.0/24, or domains like example.com and *.example.com)
Address string `json:"address"`
// Description Network resource description
Description *string `json:"description,omitempty"`
// Enabled Network resource status
Enabled bool `json:"enabled"`
// Groups Groups that the resource belongs to
Groups []GroupMinimum `json:"groups"`
// Id Network Resource ID
Id string `json:"id"`
// Name Network resource name
Name string `json:"name"`
// Type Network resource type based of the address
Type NetworkResourceType `json:"type"`
}
NetworkResource defines model for NetworkResource.
type NetworkResourceMinimum ¶
type NetworkResourceMinimum struct {
// Address Network resource address (either a direct host like 1.1.1.1 or 1.1.1.1/32, or a subnet like 192.168.178.0/24, or domains like example.com and *.example.com)
Address string `json:"address"`
// Description Network resource description
Description *string `json:"description,omitempty"`
// Enabled Network resource status
Enabled bool `json:"enabled"`
// Name Network resource name
Name string `json:"name"`
}
NetworkResourceMinimum defines model for NetworkResourceMinimum.
type NetworkResourceRequest ¶
type NetworkResourceRequest struct {
// Address Network resource address (either a direct host like 1.1.1.1 or 1.1.1.1/32, or a subnet like 192.168.178.0/24, or domains like example.com and *.example.com)
Address string `json:"address"`
// Description Network resource description
Description *string `json:"description,omitempty"`
// Enabled Network resource status
Enabled bool `json:"enabled"`
// Groups Group IDs containing the resource
Groups []string `json:"groups"`
// Name Network resource name
Name string `json:"name"`
}
NetworkResourceRequest defines model for NetworkResourceRequest.
type NetworkResourceType ¶
type NetworkResourceType string
NetworkResourceType Network resource type based of the address
const ( NetworkResourceTypeDomain NetworkResourceType = "domain" NetworkResourceTypeHost NetworkResourceType = "host" NetworkResourceTypeSubnet NetworkResourceType = "subnet" )
Defines values for NetworkResourceType.
type NetworkRouter ¶
type NetworkRouter struct {
// Enabled Network router status
Enabled bool `json:"enabled"`
// Id Network Router Id
Id string `json:"id"`
// Masquerade Indicate if peer should masquerade traffic to this route's prefix
Masquerade bool `json:"masquerade"`
// Metric Route metric number. Lowest number has higher priority
Metric int `json:"metric"`
// Peer Peer Identifier associated with route. This property can not be set together with `peer_groups`
Peer *string `json:"peer,omitempty"`
// PeerGroups Peers Group Identifier associated with route. This property can not be set together with `peer`
PeerGroups *[]string `json:"peer_groups,omitempty"`
}
NetworkRouter defines model for NetworkRouter.
type NetworkRouterRequest ¶
type NetworkRouterRequest struct {
// Enabled Network router status
Enabled bool `json:"enabled"`
// Masquerade Indicate if peer should masquerade traffic to this route's prefix
Masquerade bool `json:"masquerade"`
// Metric Route metric number. Lowest number has higher priority
Metric int `json:"metric"`
// Peer Peer Identifier associated with route. This property can not be set together with `peer_groups`
Peer *string `json:"peer,omitempty"`
// PeerGroups Peers Group Identifier associated with route. This property can not be set together with `peer`
PeerGroups *[]string `json:"peer_groups,omitempty"`
}
NetworkRouterRequest defines model for NetworkRouterRequest.
type NetworkTrafficEndpoint ¶
type NetworkTrafficEndpoint struct {
// Address IP address (and possibly port) in string form.
Address string `json:"address"`
// DnsLabel DNS label/name if available.
DnsLabel *string `json:"dns_label"`
GeoLocation NetworkTrafficLocation `json:"geo_location"`
// Id ID of this endpoint (e.g., peer ID or resource ID).
Id string `json:"id"`
// Name Name is the name of the endpoint object (e.g., a peer name).
Name string `json:"name"`
// Os Operating system of the peer, if applicable.
Os *string `json:"os"`
// Type Type of the endpoint object (e.g., UNKNOWN, PEER, HOST_RESOURCE).
Type string `json:"type"`
}
NetworkTrafficEndpoint defines model for NetworkTrafficEndpoint.
type NetworkTrafficEvent ¶
type NetworkTrafficEvent struct {
Destination NetworkTrafficEndpoint `json:"destination"`
// Direction Direction of the traffic (e.g. DIRECTION_UNKNOWN, INGRESS, EGRESS).
Direction string `json:"direction"`
// Events List of events that are correlated to this flow (e.g., start, end).
Events []NetworkTrafficSubEvent `json:"events"`
// FlowId FlowID is the ID of the connection flow. Not unique because it can be the same for multiple events (e.g., start and end of the connection).
FlowId string `json:"flow_id"`
Icmp NetworkTrafficICMP `json:"icmp"`
Policy NetworkTrafficPolicy `json:"policy"`
// Protocol Protocol is the protocol of the traffic (e.g. 1 = ICMP, 6 = TCP, 17 = UDP, etc.).
Protocol int `json:"protocol"`
// ReporterId ID of the reporter of the event (e.g., the peer that reported the event).
ReporterId string `json:"reporter_id"`
// RxBytes Number of bytes received.
RxBytes int `json:"rx_bytes"`
// RxPackets Number of packets received.
RxPackets int `json:"rx_packets"`
Source NetworkTrafficEndpoint `json:"source"`
// TxBytes Number of bytes transmitted.
TxBytes int `json:"tx_bytes"`
// TxPackets Number of packets transmitted.
TxPackets int `json:"tx_packets"`
User NetworkTrafficUser `json:"user"`
}
NetworkTrafficEvent defines model for NetworkTrafficEvent.
type NetworkTrafficEventsResponse ¶
type NetworkTrafficEventsResponse struct {
// Data List of network traffic events
Data []NetworkTrafficEvent `json:"data"`
// Page Current page number
Page int `json:"page"`
// PageSize Number of items per page
PageSize int `json:"page_size"`
// TotalPages Total number of pages available
TotalPages int `json:"total_pages"`
// TotalRecords Total number of event records available
TotalRecords int `json:"total_records"`
}
NetworkTrafficEventsResponse defines model for NetworkTrafficEventsResponse.
type NetworkTrafficICMP ¶
type NetworkTrafficICMP struct {
// Code ICMP code (if applicable).
Code int `json:"code"`
// Type ICMP type (if applicable).
Type int `json:"type"`
}
NetworkTrafficICMP defines model for NetworkTrafficICMP.
type NetworkTrafficLocation ¶
type NetworkTrafficLocation struct {
// CityName Name of the city (if known).
CityName string `json:"city_name"`
// CountryCode ISO country code (if known).
CountryCode string `json:"country_code"`
}
NetworkTrafficLocation defines model for NetworkTrafficLocation.
type NetworkTrafficPolicy ¶
type NetworkTrafficPolicy struct {
// Id ID of the policy that allowed this event.
Id string `json:"id"`
// Name Name of the policy that allowed this event.
Name string `json:"name"`
}
NetworkTrafficPolicy defines model for NetworkTrafficPolicy.
type NetworkTrafficSubEvent ¶
type NetworkTrafficSubEvent struct {
// Timestamp Timestamp of the event as sent by the peer.
Timestamp time.Time `json:"timestamp"`
// Type Type of the event (e.g., TYPE_UNKNOWN, TYPE_START, TYPE_END, TYPE_DROP).
Type string `json:"type"`
}
NetworkTrafficSubEvent defines model for NetworkTrafficSubEvent.
type NetworkTrafficUser ¶
type NetworkTrafficUser struct {
// Email Email of the user who initiated the event (if any).
Email string `json:"email"`
// Id UserID is the ID of the user that initiated the event (can be empty as not every event is user-initiated).
Id string `json:"id"`
// Name Name of the user who initiated the event (if any).
Name string `json:"name"`
}
NetworkTrafficUser defines model for NetworkTrafficUser.
type OSVersionCheck ¶
type OSVersionCheck struct {
// Android Posture check for the version of operating system
Android *MinVersionCheck `json:"android,omitempty"`
// Darwin Posture check for the version of operating system
Darwin *MinVersionCheck `json:"darwin,omitempty"`
// Ios Posture check for the version of operating system
Ios *MinVersionCheck `json:"ios,omitempty"`
// Linux Posture check with the kernel version
Linux *MinKernelVersionCheck `json:"linux,omitempty"`
// Windows Posture check with the kernel version
Windows *MinKernelVersionCheck `json:"windows,omitempty"`
}
OSVersionCheck Posture check for the version of operating system
type Peer ¶
type Peer struct {
// ApprovalRequired (Cloud only) Indicates whether peer needs approval
ApprovalRequired bool `json:"approval_required"`
// CityName Commonly used English name of the city
CityName CityName `json:"city_name"`
// Connected Peer to Management connection status
Connected bool `json:"connected"`
// ConnectionIp Peer's public connection IP address
ConnectionIp string `json:"connection_ip"`
// CountryCode 2-letter ISO 3166-1 alpha-2 code that represents the country
CountryCode CountryCode `json:"country_code"`
// CreatedAt Peer creation date (UTC)
CreatedAt time.Time `json:"created_at"`
// DnsLabel Peer's DNS label is the parsed peer name for domain resolution. It is used to form an FQDN by appending the account's domain to the peer label. e.g. peer-dns-label.netbird.cloud
DnsLabel string `json:"dns_label"`
// Ephemeral Indicates whether the peer is ephemeral or not
Ephemeral bool `json:"ephemeral"`
// ExtraDnsLabels Extra DNS labels added to the peer
ExtraDnsLabels []string `json:"extra_dns_labels"`
// GeonameId Unique identifier from the GeoNames database for a specific geographical location.
GeonameId int `json:"geoname_id"`
// Groups Groups that the peer belongs to
Groups []GroupMinimum `json:"groups"`
// Hostname Hostname of the machine
Hostname string `json:"hostname"`
// Id Peer ID
Id string `json:"id"`
// InactivityExpirationEnabled Indicates whether peer inactivity expiration has been enabled or not
InactivityExpirationEnabled bool `json:"inactivity_expiration_enabled"`
// Ip Peer's IP address
Ip string `json:"ip"`
// KernelVersion Peer's operating system kernel version
KernelVersion string `json:"kernel_version"`
// LastLogin Last time this peer performed log in (authentication). E.g., user authenticated.
LastLogin time.Time `json:"last_login"`
// LastSeen Last time peer connected to Netbird's management service
LastSeen time.Time `json:"last_seen"`
// LoginExpirationEnabled Indicates whether peer login expiration has been enabled or not
LoginExpirationEnabled bool `json:"login_expiration_enabled"`
// LoginExpired Indicates whether peer's login expired or not
LoginExpired bool `json:"login_expired"`
// Name Peer's hostname
Name string `json:"name"`
// Os Peer's operating system and version
Os string `json:"os"`
// SerialNumber System serial number
SerialNumber string `json:"serial_number"`
// SshEnabled Indicates whether SSH server is enabled on this peer
SshEnabled bool `json:"ssh_enabled"`
// UiVersion Peer's desktop UI version
UiVersion string `json:"ui_version"`
// UserId User ID of the user that enrolled this peer
UserId string `json:"user_id"`
// Version Peer's daemon or cli version
Version string `json:"version"`
}
Peer defines model for Peer.
type PeerBatch ¶
type PeerBatch struct {
// AccessiblePeersCount Number of accessible peers
AccessiblePeersCount int `json:"accessible_peers_count"`
// ApprovalRequired (Cloud only) Indicates whether peer needs approval
ApprovalRequired bool `json:"approval_required"`
// CityName Commonly used English name of the city
CityName CityName `json:"city_name"`
// Connected Peer to Management connection status
Connected bool `json:"connected"`
// ConnectionIp Peer's public connection IP address
ConnectionIp string `json:"connection_ip"`
// CountryCode 2-letter ISO 3166-1 alpha-2 code that represents the country
CountryCode CountryCode `json:"country_code"`
// CreatedAt Peer creation date (UTC)
CreatedAt time.Time `json:"created_at"`
// DnsLabel Peer's DNS label is the parsed peer name for domain resolution. It is used to form an FQDN by appending the account's domain to the peer label. e.g. peer-dns-label.netbird.cloud
DnsLabel string `json:"dns_label"`
// Ephemeral Indicates whether the peer is ephemeral or not
Ephemeral bool `json:"ephemeral"`
// ExtraDnsLabels Extra DNS labels added to the peer
ExtraDnsLabels []string `json:"extra_dns_labels"`
// GeonameId Unique identifier from the GeoNames database for a specific geographical location.
GeonameId int `json:"geoname_id"`
// Groups Groups that the peer belongs to
Groups []GroupMinimum `json:"groups"`
// Hostname Hostname of the machine
Hostname string `json:"hostname"`
// Id Peer ID
Id string `json:"id"`
// InactivityExpirationEnabled Indicates whether peer inactivity expiration has been enabled or not
InactivityExpirationEnabled bool `json:"inactivity_expiration_enabled"`
// Ip Peer's IP address
Ip string `json:"ip"`
// KernelVersion Peer's operating system kernel version
KernelVersion string `json:"kernel_version"`
// LastLogin Last time this peer performed log in (authentication). E.g., user authenticated.
LastLogin time.Time `json:"last_login"`
// LastSeen Last time peer connected to Netbird's management service
LastSeen time.Time `json:"last_seen"`
// LoginExpirationEnabled Indicates whether peer login expiration has been enabled or not
LoginExpirationEnabled bool `json:"login_expiration_enabled"`
// LoginExpired Indicates whether peer's login expired or not
LoginExpired bool `json:"login_expired"`
// Name Peer's hostname
Name string `json:"name"`
// Os Peer's operating system and version
Os string `json:"os"`
// SerialNumber System serial number
SerialNumber string `json:"serial_number"`
// SshEnabled Indicates whether SSH server is enabled on this peer
SshEnabled bool `json:"ssh_enabled"`
// UiVersion Peer's desktop UI version
UiVersion string `json:"ui_version"`
// UserId User ID of the user that enrolled this peer
UserId string `json:"user_id"`
// Version Peer's daemon or cli version
Version string `json:"version"`
}
PeerBatch defines model for PeerBatch.
type PeerMinimum ¶
type PeerMinimum struct {
// Id Peer ID
Id string `json:"id"`
// Name Peer's hostname
Name string `json:"name"`
}
PeerMinimum defines model for PeerMinimum.
type PeerNetworkRangeCheck ¶
type PeerNetworkRangeCheck struct {
// Action Action to take upon policy match
Action PeerNetworkRangeCheckAction `json:"action"`
// Ranges List of peer network ranges in CIDR notation
Ranges []string `json:"ranges"`
}
PeerNetworkRangeCheck Posture check for allow or deny access based on peer local network addresses
type PeerNetworkRangeCheckAction ¶
type PeerNetworkRangeCheckAction string
PeerNetworkRangeCheckAction Action to take upon policy match
const ( PeerNetworkRangeCheckActionAllow PeerNetworkRangeCheckAction = "allow" PeerNetworkRangeCheckActionDeny PeerNetworkRangeCheckAction = "deny" )
Defines values for PeerNetworkRangeCheckAction.
type PeerRequest ¶
type PeerRequest struct {
// ApprovalRequired (Cloud only) Indicates whether peer needs approval
ApprovalRequired *bool `json:"approval_required,omitempty"`
InactivityExpirationEnabled bool `json:"inactivity_expiration_enabled"`
// Ip Peer's IP address
Ip *string `json:"ip,omitempty"`
LoginExpirationEnabled bool `json:"login_expiration_enabled"`
Name string `json:"name"`
SshEnabled bool `json:"ssh_enabled"`
}
PeerRequest defines model for PeerRequest.
type PeerTemporaryAccessRequest ¶ added in v0.59.0
type PeerTemporaryAccessRequest struct {
// Name Peer's hostname
Name string `json:"name"`
// Rules List of temporary access rules
Rules []string `json:"rules"`
// WgPubKey Peer's WireGuard public key
WgPubKey string `json:"wg_pub_key"`
}
PeerTemporaryAccessRequest defines model for PeerTemporaryAccessRequest.
type PeerTemporaryAccessResponse ¶ added in v0.59.0
type PeerTemporaryAccessResponse struct {
// Id Peer ID
Id string `json:"id"`
// Name Peer's hostname
Name string `json:"name"`
// Rules List of temporary access rules
Rules []string `json:"rules"`
}
PeerTemporaryAccessResponse defines model for PeerTemporaryAccessResponse.
type PersonalAccessToken ¶
type PersonalAccessToken struct {
// CreatedAt Date the token was created
CreatedAt time.Time `json:"created_at"`
// CreatedBy User ID of the user who created the token
CreatedBy string `json:"created_by"`
// ExpirationDate Date the token expires
ExpirationDate time.Time `json:"expiration_date"`
// Id ID of a token
Id string `json:"id"`
// LastUsed Date the token was last used
LastUsed *time.Time `json:"last_used,omitempty"`
// Name Name of the token
Name string `json:"name"`
}
PersonalAccessToken defines model for PersonalAccessToken.
type PersonalAccessTokenGenerated ¶
type PersonalAccessTokenGenerated struct {
PersonalAccessToken PersonalAccessToken `json:"personal_access_token"`
// PlainToken Plain text representation of the generated token
PlainToken string `json:"plain_token"`
}
PersonalAccessTokenGenerated defines model for PersonalAccessTokenGenerated.
type PersonalAccessTokenRequest ¶
type PersonalAccessTokenRequest struct {
// ExpiresIn Expiration in days
ExpiresIn int `json:"expires_in"`
// Name Name of the token
Name string `json:"name"`
}
PersonalAccessTokenRequest defines model for PersonalAccessTokenRequest.
type Policy ¶
type Policy struct {
// Description Policy friendly description
Description *string `json:"description,omitempty"`
// Enabled Policy status
Enabled bool `json:"enabled"`
// Id Policy ID
Id *string `json:"id,omitempty"`
// Name Policy name identifier
Name string `json:"name"`
// Rules Policy rule object for policy UI editor
Rules []PolicyRule `json:"rules"`
// SourcePostureChecks Posture checks ID's applied to policy source groups
SourcePostureChecks []string `json:"source_posture_checks"`
}
Policy defines model for Policy.
type PolicyCreate ¶
type PolicyCreate struct {
// Description Policy friendly description
Description *string `json:"description,omitempty"`
// Enabled Policy status
Enabled bool `json:"enabled"`
// Name Policy name identifier
Name string `json:"name"`
// Rules Policy rule object for policy UI editor
Rules []PolicyRuleUpdate `json:"rules"`
// SourcePostureChecks Posture checks ID's applied to policy source groups
SourcePostureChecks *[]string `json:"source_posture_checks,omitempty"`
}
PolicyCreate defines model for PolicyCreate.
type PolicyMinimum ¶
type PolicyMinimum struct {
// Description Policy friendly description
Description *string `json:"description,omitempty"`
// Enabled Policy status
Enabled bool `json:"enabled"`
// Name Policy name identifier
Name string `json:"name"`
}
PolicyMinimum defines model for PolicyMinimum.
type PolicyRule ¶
type PolicyRule struct {
// Action Policy rule accept or drops packets
Action PolicyRuleAction `json:"action"`
// Bidirectional Define if the rule is applicable in both directions, sources, and destinations.
Bidirectional bool `json:"bidirectional"`
// Description Policy rule friendly description
Description *string `json:"description,omitempty"`
DestinationResource *Resource `json:"destinationResource,omitempty"`
// Destinations Policy rule destination group IDs
Destinations *[]GroupMinimum `json:"destinations,omitempty"`
// Enabled Policy rule status
Enabled bool `json:"enabled"`
// Id Policy rule ID
Id *string `json:"id,omitempty"`
// Name Policy rule name identifier
Name string `json:"name"`
// PortRanges Policy rule affected ports ranges list
PortRanges *[]RulePortRange `json:"port_ranges,omitempty"`
// Ports Policy rule affected ports
Ports *[]string `json:"ports,omitempty"`
// Protocol Policy rule type of the traffic
Protocol PolicyRuleProtocol `json:"protocol"`
SourceResource *Resource `json:"sourceResource,omitempty"`
// Sources Policy rule source group IDs
Sources *[]GroupMinimum `json:"sources,omitempty"`
}
PolicyRule defines model for PolicyRule.
type PolicyRuleAction ¶
type PolicyRuleAction string
PolicyRuleAction Policy rule accept or drops packets
const ( PolicyRuleActionAccept PolicyRuleAction = "accept" PolicyRuleActionDrop PolicyRuleAction = "drop" )
Defines values for PolicyRuleAction.
type PolicyRuleMinimum ¶
type PolicyRuleMinimum struct {
// Action Policy rule accept or drops packets
Action PolicyRuleMinimumAction `json:"action"`
// Bidirectional Define if the rule is applicable in both directions, sources, and destinations.
Bidirectional bool `json:"bidirectional"`
// Description Policy rule friendly description
Description *string `json:"description,omitempty"`
// Enabled Policy rule status
Enabled bool `json:"enabled"`
// Name Policy rule name identifier
Name string `json:"name"`
// PortRanges Policy rule affected ports ranges list
PortRanges *[]RulePortRange `json:"port_ranges,omitempty"`
// Ports Policy rule affected ports
Ports *[]string `json:"ports,omitempty"`
// Protocol Policy rule type of the traffic
Protocol PolicyRuleMinimumProtocol `json:"protocol"`
}
PolicyRuleMinimum defines model for PolicyRuleMinimum.
type PolicyRuleMinimumAction ¶
type PolicyRuleMinimumAction string
PolicyRuleMinimumAction Policy rule accept or drops packets
const ( PolicyRuleMinimumActionAccept PolicyRuleMinimumAction = "accept" PolicyRuleMinimumActionDrop PolicyRuleMinimumAction = "drop" )
Defines values for PolicyRuleMinimumAction.
type PolicyRuleMinimumProtocol ¶
type PolicyRuleMinimumProtocol string
PolicyRuleMinimumProtocol Policy rule type of the traffic
const ( PolicyRuleMinimumProtocolAll PolicyRuleMinimumProtocol = "all" PolicyRuleMinimumProtocolIcmp PolicyRuleMinimumProtocol = "icmp" PolicyRuleMinimumProtocolTcp PolicyRuleMinimumProtocol = "tcp" PolicyRuleMinimumProtocolUdp PolicyRuleMinimumProtocol = "udp" )
Defines values for PolicyRuleMinimumProtocol.
type PolicyRuleProtocol ¶
type PolicyRuleProtocol string
PolicyRuleProtocol Policy rule type of the traffic
const ( PolicyRuleProtocolAll PolicyRuleProtocol = "all" PolicyRuleProtocolIcmp PolicyRuleProtocol = "icmp" PolicyRuleProtocolTcp PolicyRuleProtocol = "tcp" PolicyRuleProtocolUdp PolicyRuleProtocol = "udp" )
Defines values for PolicyRuleProtocol.
type PolicyRuleUpdate ¶
type PolicyRuleUpdate struct {
// Action Policy rule accept or drops packets
Action PolicyRuleUpdateAction `json:"action"`
// Bidirectional Define if the rule is applicable in both directions, sources, and destinations.
Bidirectional bool `json:"bidirectional"`
// Description Policy rule friendly description
Description *string `json:"description,omitempty"`
DestinationResource *Resource `json:"destinationResource,omitempty"`
// Destinations Policy rule destination group IDs
Destinations *[]string `json:"destinations,omitempty"`
// Enabled Policy rule status
Enabled bool `json:"enabled"`
// Id Policy rule ID
Id *string `json:"id,omitempty"`
// Name Policy rule name identifier
Name string `json:"name"`
// PortRanges Policy rule affected ports ranges list
PortRanges *[]RulePortRange `json:"port_ranges,omitempty"`
// Ports Policy rule affected ports
Ports *[]string `json:"ports,omitempty"`
// Protocol Policy rule type of the traffic
Protocol PolicyRuleUpdateProtocol `json:"protocol"`
SourceResource *Resource `json:"sourceResource,omitempty"`
// Sources Policy rule source group IDs
Sources *[]string `json:"sources,omitempty"`
}
PolicyRuleUpdate defines model for PolicyRuleUpdate.
type PolicyRuleUpdateAction ¶
type PolicyRuleUpdateAction string
PolicyRuleUpdateAction Policy rule accept or drops packets
const ( PolicyRuleUpdateActionAccept PolicyRuleUpdateAction = "accept" PolicyRuleUpdateActionDrop PolicyRuleUpdateAction = "drop" )
Defines values for PolicyRuleUpdateAction.
type PolicyRuleUpdateProtocol ¶
type PolicyRuleUpdateProtocol string
PolicyRuleUpdateProtocol Policy rule type of the traffic
const ( PolicyRuleUpdateProtocolAll PolicyRuleUpdateProtocol = "all" PolicyRuleUpdateProtocolIcmp PolicyRuleUpdateProtocol = "icmp" PolicyRuleUpdateProtocolTcp PolicyRuleUpdateProtocol = "tcp" PolicyRuleUpdateProtocolUdp PolicyRuleUpdateProtocol = "udp" )
Defines values for PolicyRuleUpdateProtocol.
type PolicyUpdate ¶
type PolicyUpdate struct {
// Description Policy friendly description
Description *string `json:"description,omitempty"`
// Enabled Policy status
Enabled bool `json:"enabled"`
// Name Policy name identifier
Name string `json:"name"`
// Rules Policy rule object for policy UI editor
Rules []PolicyRuleUpdate `json:"rules"`
// SourcePostureChecks Posture checks ID's applied to policy source groups
SourcePostureChecks *[]string `json:"source_posture_checks,omitempty"`
}
PolicyUpdate defines model for PolicyUpdate.
type PostApiDnsNameserversJSONRequestBody ¶
type PostApiDnsNameserversJSONRequestBody = NameserverGroupRequest
PostApiDnsNameserversJSONRequestBody defines body for PostApiDnsNameservers for application/json ContentType.
type PostApiGroupsJSONRequestBody ¶
type PostApiGroupsJSONRequestBody = GroupRequest
PostApiGroupsJSONRequestBody defines body for PostApiGroups for application/json ContentType.
type PostApiIngressPeersJSONRequestBody ¶
type PostApiIngressPeersJSONRequestBody = IngressPeerCreateRequest
PostApiIngressPeersJSONRequestBody defines body for PostApiIngressPeers for application/json ContentType.
type PostApiNetworksJSONRequestBody ¶
type PostApiNetworksJSONRequestBody = NetworkRequest
PostApiNetworksJSONRequestBody defines body for PostApiNetworks for application/json ContentType.
type PostApiNetworksNetworkIdResourcesJSONRequestBody ¶
type PostApiNetworksNetworkIdResourcesJSONRequestBody = NetworkResourceRequest
PostApiNetworksNetworkIdResourcesJSONRequestBody defines body for PostApiNetworksNetworkIdResources for application/json ContentType.
type PostApiNetworksNetworkIdRoutersJSONRequestBody ¶
type PostApiNetworksNetworkIdRoutersJSONRequestBody = NetworkRouterRequest
PostApiNetworksNetworkIdRoutersJSONRequestBody defines body for PostApiNetworksNetworkIdRouters for application/json ContentType.
type PostApiPeersPeerIdIngressPortsJSONRequestBody ¶
type PostApiPeersPeerIdIngressPortsJSONRequestBody = IngressPortAllocationRequest
PostApiPeersPeerIdIngressPortsJSONRequestBody defines body for PostApiPeersPeerIdIngressPorts for application/json ContentType.
type PostApiPeersPeerIdTemporaryAccessJSONRequestBody ¶ added in v0.59.0
type PostApiPeersPeerIdTemporaryAccessJSONRequestBody = PeerTemporaryAccessRequest
PostApiPeersPeerIdTemporaryAccessJSONRequestBody defines body for PostApiPeersPeerIdTemporaryAccess for application/json ContentType.
type PostApiPoliciesJSONRequestBody ¶
type PostApiPoliciesJSONRequestBody = PolicyUpdate
PostApiPoliciesJSONRequestBody defines body for PostApiPolicies for application/json ContentType.
type PostApiPostureChecksJSONRequestBody ¶
type PostApiPostureChecksJSONRequestBody = PostureCheckUpdate
PostApiPostureChecksJSONRequestBody defines body for PostApiPostureChecks for application/json ContentType.
type PostApiRoutesJSONRequestBody ¶
type PostApiRoutesJSONRequestBody = RouteRequest
PostApiRoutesJSONRequestBody defines body for PostApiRoutes for application/json ContentType.
type PostApiSetupKeysJSONRequestBody ¶
type PostApiSetupKeysJSONRequestBody = CreateSetupKeyRequest
PostApiSetupKeysJSONRequestBody defines body for PostApiSetupKeys for application/json ContentType.
type PostApiUsersJSONRequestBody ¶
type PostApiUsersJSONRequestBody = UserCreateRequest
PostApiUsersJSONRequestBody defines body for PostApiUsers for application/json ContentType.
type PostApiUsersUserIdTokensJSONRequestBody ¶
type PostApiUsersUserIdTokensJSONRequestBody = PersonalAccessTokenRequest
PostApiUsersUserIdTokensJSONRequestBody defines body for PostApiUsersUserIdTokens for application/json ContentType.
type PostureCheck ¶
type PostureCheck struct {
// Checks List of objects that perform the actual checks
Checks Checks `json:"checks"`
// Description Posture check friendly description
Description *string `json:"description,omitempty"`
// Id Posture check ID
Id string `json:"id"`
// Name Posture check unique name identifier
Name string `json:"name"`
}
PostureCheck defines model for PostureCheck.
type PostureCheckUpdate ¶
type PostureCheckUpdate struct {
// Checks List of objects that perform the actual checks
Checks *Checks `json:"checks,omitempty"`
// Description Posture check friendly description
Description string `json:"description"`
// Name Posture check name identifier
Name string `json:"name"`
}
PostureCheckUpdate defines model for PostureCheckUpdate.
type Process ¶
type Process struct {
// LinuxPath Path to the process executable file in a Linux operating system
LinuxPath *string `json:"linux_path,omitempty"`
// MacPath Path to the process executable file in a Mac operating system
MacPath *string `json:"mac_path,omitempty"`
// WindowsPath Path to the process executable file in a Windows operating system
WindowsPath *string `json:"windows_path,omitempty"`
}
Process Describes the operational activity within a peer's system.
type ProcessCheck ¶
type ProcessCheck struct {
Processes []Process `json:"processes"`
}
ProcessCheck Posture Check for binaries exist and are running in the peer’s system
type PutApiAccountsAccountIdJSONRequestBody ¶
type PutApiAccountsAccountIdJSONRequestBody = AccountRequest
PutApiAccountsAccountIdJSONRequestBody defines body for PutApiAccountsAccountId for application/json ContentType.
type PutApiDnsNameserversNsgroupIdJSONRequestBody ¶
type PutApiDnsNameserversNsgroupIdJSONRequestBody = NameserverGroupRequest
PutApiDnsNameserversNsgroupIdJSONRequestBody defines body for PutApiDnsNameserversNsgroupId for application/json ContentType.
type PutApiDnsSettingsJSONRequestBody ¶
type PutApiDnsSettingsJSONRequestBody = DNSSettings
PutApiDnsSettingsJSONRequestBody defines body for PutApiDnsSettings for application/json ContentType.
type PutApiGroupsGroupIdJSONRequestBody ¶
type PutApiGroupsGroupIdJSONRequestBody = GroupRequest
PutApiGroupsGroupIdJSONRequestBody defines body for PutApiGroupsGroupId for application/json ContentType.
type PutApiIngressPeersIngressPeerIdJSONRequestBody ¶
type PutApiIngressPeersIngressPeerIdJSONRequestBody = IngressPeerUpdateRequest
PutApiIngressPeersIngressPeerIdJSONRequestBody defines body for PutApiIngressPeersIngressPeerId for application/json ContentType.
type PutApiNetworksNetworkIdJSONRequestBody ¶
type PutApiNetworksNetworkIdJSONRequestBody = NetworkRequest
PutApiNetworksNetworkIdJSONRequestBody defines body for PutApiNetworksNetworkId for application/json ContentType.
type PutApiNetworksNetworkIdResourcesResourceIdJSONRequestBody ¶
type PutApiNetworksNetworkIdResourcesResourceIdJSONRequestBody = NetworkResourceRequest
PutApiNetworksNetworkIdResourcesResourceIdJSONRequestBody defines body for PutApiNetworksNetworkIdResourcesResourceId for application/json ContentType.
type PutApiNetworksNetworkIdRoutersRouterIdJSONRequestBody ¶
type PutApiNetworksNetworkIdRoutersRouterIdJSONRequestBody = NetworkRouterRequest
PutApiNetworksNetworkIdRoutersRouterIdJSONRequestBody defines body for PutApiNetworksNetworkIdRoutersRouterId for application/json ContentType.
type PutApiPeersPeerIdIngressPortsAllocationIdJSONRequestBody ¶
type PutApiPeersPeerIdIngressPortsAllocationIdJSONRequestBody = IngressPortAllocationRequest
PutApiPeersPeerIdIngressPortsAllocationIdJSONRequestBody defines body for PutApiPeersPeerIdIngressPortsAllocationId for application/json ContentType.
type PutApiPeersPeerIdJSONRequestBody ¶
type PutApiPeersPeerIdJSONRequestBody = PeerRequest
PutApiPeersPeerIdJSONRequestBody defines body for PutApiPeersPeerId for application/json ContentType.
type PutApiPoliciesPolicyIdJSONRequestBody ¶
type PutApiPoliciesPolicyIdJSONRequestBody = PolicyCreate
PutApiPoliciesPolicyIdJSONRequestBody defines body for PutApiPoliciesPolicyId for application/json ContentType.
type PutApiPostureChecksPostureCheckIdJSONRequestBody ¶
type PutApiPostureChecksPostureCheckIdJSONRequestBody = PostureCheckUpdate
PutApiPostureChecksPostureCheckIdJSONRequestBody defines body for PutApiPostureChecksPostureCheckId for application/json ContentType.
type PutApiRoutesRouteIdJSONRequestBody ¶
type PutApiRoutesRouteIdJSONRequestBody = RouteRequest
PutApiRoutesRouteIdJSONRequestBody defines body for PutApiRoutesRouteId for application/json ContentType.
type PutApiSetupKeysKeyIdJSONRequestBody ¶
type PutApiSetupKeysKeyIdJSONRequestBody = SetupKeyRequest
PutApiSetupKeysKeyIdJSONRequestBody defines body for PutApiSetupKeysKeyId for application/json ContentType.
type PutApiUsersUserIdJSONRequestBody ¶
type PutApiUsersUserIdJSONRequestBody = UserRequest
PutApiUsersUserIdJSONRequestBody defines body for PutApiUsersUserId for application/json ContentType.
type Resource ¶
type Resource struct {
// Id ID of the resource
Id string `json:"id"`
Type ResourceType `json:"type"`
}
Resource defines model for Resource.
type ResourceType ¶
type ResourceType string
ResourceType defines model for ResourceType.
const ( ResourceTypeDomain ResourceType = "domain" ResourceTypeHost ResourceType = "host" ResourceTypePeer ResourceType = "peer" ResourceTypeSubnet ResourceType = "subnet" )
Defines values for ResourceType.
type Route ¶
type Route struct {
// AccessControlGroups Access control group identifier associated with route.
AccessControlGroups *[]string `json:"access_control_groups,omitempty"`
// Description Route description
Description string `json:"description"`
// Domains Domain list to be dynamically resolved. Max of 32 domains can be added per route configuration. Conflicts with network
Domains *[]string `json:"domains,omitempty"`
// Enabled Route status
Enabled bool `json:"enabled"`
// Groups Group IDs containing routing peers
Groups []string `json:"groups"`
// Id Route Id
Id string `json:"id"`
// KeepRoute Indicate if the route should be kept after a domain doesn't resolve that IP anymore
KeepRoute bool `json:"keep_route"`
// Masquerade Indicate if peer should masquerade traffic to this route's prefix
Masquerade bool `json:"masquerade"`
// Metric Route metric number. Lowest number has higher priority
Metric int `json:"metric"`
// Network Network range in CIDR format, Conflicts with domains
Network *string `json:"network,omitempty"`
// NetworkId Route network identifier, to group HA routes
NetworkId string `json:"network_id"`
// NetworkType Network type indicating if it is a domain route or a IPv4/IPv6 route
NetworkType string `json:"network_type"`
// Peer Peer Identifier associated with route. This property can not be set together with `peer_groups`
Peer *string `json:"peer,omitempty"`
// PeerGroups Peers Group Identifier associated with route. This property can not be set together with `peer`
PeerGroups *[]string `json:"peer_groups,omitempty"`
// SkipAutoApply Indicate if this exit node route (0.0.0.0/0) should skip auto-application for client routing
SkipAutoApply *bool `json:"skip_auto_apply,omitempty"`
}
Route defines model for Route.
type RouteRequest ¶
type RouteRequest struct {
// AccessControlGroups Access control group identifier associated with route.
AccessControlGroups *[]string `json:"access_control_groups,omitempty"`
// Description Route description
Description string `json:"description"`
// Domains Domain list to be dynamically resolved. Max of 32 domains can be added per route configuration. Conflicts with network
Domains *[]string `json:"domains,omitempty"`
// Enabled Route status
Enabled bool `json:"enabled"`
// Groups Group IDs containing routing peers
Groups []string `json:"groups"`
// KeepRoute Indicate if the route should be kept after a domain doesn't resolve that IP anymore
KeepRoute bool `json:"keep_route"`
// Masquerade Indicate if peer should masquerade traffic to this route's prefix
Masquerade bool `json:"masquerade"`
// Metric Route metric number. Lowest number has higher priority
Metric int `json:"metric"`
// Network Network range in CIDR format, Conflicts with domains
Network *string `json:"network,omitempty"`
// NetworkId Route network identifier, to group HA routes
NetworkId string `json:"network_id"`
// Peer Peer Identifier associated with route. This property can not be set together with `peer_groups`
Peer *string `json:"peer,omitempty"`
// PeerGroups Peers Group Identifier associated with route. This property can not be set together with `peer`
PeerGroups *[]string `json:"peer_groups,omitempty"`
// SkipAutoApply Indicate if this exit node route (0.0.0.0/0) should skip auto-application for client routing
SkipAutoApply *bool `json:"skip_auto_apply,omitempty"`
}
RouteRequest defines model for RouteRequest.
type RulePortRange ¶
type RulePortRange struct {
// End The ending port of the range
End int `json:"end"`
// Start The starting port of the range
Start int `json:"start"`
}
RulePortRange Policy rule affected ports range
type SetupKey ¶
type SetupKey struct {
// AllowExtraDnsLabels Allow extra DNS labels to be added to the peer
AllowExtraDnsLabels bool `json:"allow_extra_dns_labels"`
// AutoGroups List of group IDs to auto-assign to peers registered with this key
AutoGroups []string `json:"auto_groups"`
// Ephemeral Indicate that the peer will be ephemeral or not
Ephemeral bool `json:"ephemeral"`
// Expires Setup Key expiration date
Expires time.Time `json:"expires"`
// Id Setup Key ID
Id string `json:"id"`
// Key Setup Key as secret
Key string `json:"key"`
// LastUsed Setup key last usage date
LastUsed time.Time `json:"last_used"`
// Name Setup key name identifier
Name string `json:"name"`
// Revoked Setup key revocation status
Revoked bool `json:"revoked"`
// State Setup key status, "valid", "overused","expired" or "revoked"
State string `json:"state"`
// Type Setup key type, one-off for single time usage and reusable
Type string `json:"type"`
// UpdatedAt Setup key last update date
UpdatedAt time.Time `json:"updated_at"`
// UsageLimit A number of times this key can be used. The value of 0 indicates the unlimited usage.
UsageLimit int `json:"usage_limit"`
// UsedTimes Usage count of setup key
UsedTimes int `json:"used_times"`
// Valid Setup key validity status
Valid bool `json:"valid"`
}
SetupKey defines model for SetupKey.
type SetupKeyBase ¶
type SetupKeyBase struct {
// AllowExtraDnsLabels Allow extra DNS labels to be added to the peer
AllowExtraDnsLabels bool `json:"allow_extra_dns_labels"`
// AutoGroups List of group IDs to auto-assign to peers registered with this key
AutoGroups []string `json:"auto_groups"`
// Ephemeral Indicate that the peer will be ephemeral or not
Ephemeral bool `json:"ephemeral"`
// Expires Setup Key expiration date
Expires time.Time `json:"expires"`
// Id Setup Key ID
Id string `json:"id"`
// LastUsed Setup key last usage date
LastUsed time.Time `json:"last_used"`
// Name Setup key name identifier
Name string `json:"name"`
// Revoked Setup key revocation status
Revoked bool `json:"revoked"`
// State Setup key status, "valid", "overused","expired" or "revoked"
State string `json:"state"`
// Type Setup key type, one-off for single time usage and reusable
Type string `json:"type"`
// UpdatedAt Setup key last update date
UpdatedAt time.Time `json:"updated_at"`
// UsageLimit A number of times this key can be used. The value of 0 indicates the unlimited usage.
UsageLimit int `json:"usage_limit"`
// UsedTimes Usage count of setup key
UsedTimes int `json:"used_times"`
// Valid Setup key validity status
Valid bool `json:"valid"`
}
SetupKeyBase defines model for SetupKeyBase.
type SetupKeyClear ¶
type SetupKeyClear struct {
// AllowExtraDnsLabels Allow extra DNS labels to be added to the peer
AllowExtraDnsLabels bool `json:"allow_extra_dns_labels"`
// AutoGroups List of group IDs to auto-assign to peers registered with this key
AutoGroups []string `json:"auto_groups"`
// Ephemeral Indicate that the peer will be ephemeral or not
Ephemeral bool `json:"ephemeral"`
// Expires Setup Key expiration date
Expires time.Time `json:"expires"`
// Id Setup Key ID
Id string `json:"id"`
// Key Setup Key as plain text
Key string `json:"key"`
// LastUsed Setup key last usage date
LastUsed time.Time `json:"last_used"`
// Name Setup key name identifier
Name string `json:"name"`
// Revoked Setup key revocation status
Revoked bool `json:"revoked"`
// State Setup key status, "valid", "overused","expired" or "revoked"
State string `json:"state"`
// Type Setup key type, one-off for single time usage and reusable
Type string `json:"type"`
// UpdatedAt Setup key last update date
UpdatedAt time.Time `json:"updated_at"`
// UsageLimit A number of times this key can be used. The value of 0 indicates the unlimited usage.
UsageLimit int `json:"usage_limit"`
// UsedTimes Usage count of setup key
UsedTimes int `json:"used_times"`
// Valid Setup key validity status
Valid bool `json:"valid"`
}
SetupKeyClear defines model for SetupKeyClear.
type SetupKeyRequest ¶
type SetupKeyRequest struct {
// AutoGroups List of group IDs to auto-assign to peers registered with this key
AutoGroups []string `json:"auto_groups"`
// Revoked Setup key revocation status
Revoked bool `json:"revoked"`
}
SetupKeyRequest defines model for SetupKeyRequest.
type User ¶
type User struct {
// AutoGroups Group IDs to auto-assign to peers registered by this user
AutoGroups []string `json:"auto_groups"`
// Email User's email address
Email string `json:"email"`
// Id User ID
Id string `json:"id"`
// IsBlocked Is true if this user is blocked. Blocked users can't use the system
IsBlocked bool `json:"is_blocked"`
// IsCurrent Is true if authenticated user is the same as this user
IsCurrent *bool `json:"is_current,omitempty"`
// IsServiceUser Is true if this user is a service user
IsServiceUser *bool `json:"is_service_user,omitempty"`
// Issued How user was issued by API or Integration
Issued *string `json:"issued,omitempty"`
// LastLogin Last time this user performed a login to the dashboard
LastLogin *time.Time `json:"last_login,omitempty"`
// Name User's name from idp provider
Name string `json:"name"`
// PendingApproval Is true if this user requires approval before being activated. Only applicable for users joining via domain matching when user_approval_required is enabled.
PendingApproval bool `json:"pending_approval"`
Permissions *UserPermissions `json:"permissions,omitempty"`
// Role User's NetBird account role
Role string `json:"role"`
// Status User's status
Status UserStatus `json:"status"`
}
User defines model for User.
type UserCreateRequest ¶
type UserCreateRequest struct {
// AutoGroups Group IDs to auto-assign to peers registered by this user
AutoGroups []string `json:"auto_groups"`
// Email User's Email to send invite to
Email *string `json:"email,omitempty"`
// IsServiceUser Is true if this user is a service user
IsServiceUser bool `json:"is_service_user"`
// Name User's full name
Name *string `json:"name,omitempty"`
// Role User's NetBird account role
Role string `json:"role"`
}
UserCreateRequest defines model for UserCreateRequest.
type UserPermissions ¶
type UserPermissions struct {
// IsRestricted Indicates whether this User's Peers view is restricted
IsRestricted bool `json:"is_restricted"`
Modules map[string]map[string]bool `json:"modules"`
}
UserPermissions defines model for UserPermissions.
type UserRequest ¶
type UserRequest struct {
// AutoGroups Group IDs to auto-assign to peers registered by this user
AutoGroups []string `json:"auto_groups"`
// IsBlocked If set to true then user is blocked and can't use the system
IsBlocked bool `json:"is_blocked"`
// Role User's NetBird account role
Role string `json:"role"`
}
UserRequest defines model for UserRequest.
type UserStatus ¶
type UserStatus string
UserStatus User's status
const ( UserStatusActive UserStatus = "active" UserStatusBlocked UserStatus = "blocked" UserStatusInvited UserStatus = "invited" )
Defines values for UserStatus.