api

package
v0.66.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 24, 2026 License: BSD-3-Clause Imports: 4 Imported by: 7

Documentation

Overview

Package api provides primitives to interact with the openapi HTTP API.

Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT.

Index

Constants

View Source
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 {
	// AutoUpdateVersion Set Clients auto-update version. "latest", "disabled", or a specific version (e.g "0.50.1")
	AutoUpdateVersion *string `json:"auto_update_version,omitempty"`

	// DnsDomain Allows to define a custom dns domain for the account
	DnsDomain *string `json:"dns_domain,omitempty"`

	// EmbeddedIdpEnabled Indicates whether the embedded identity provider (Dex) is enabled for this account. This is a read-only field.
	EmbeddedIdpEnabled *bool                 `json:"embedded_idp_enabled,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"`

	// LocalAuthDisabled Indicates whether local (email/password) authentication is disabled. When true, users can only authenticate via external identity providers. This is a read-only field.
	LocalAuthDisabled *bool `json:"local_auth_disabled,omitempty"`

	// NetworkRange Allows to define a custom network range for the account in CIDR format
	NetworkRange *string `json:"network_range,omitempty"`

	// PeerExposeEnabled Enables or disables peer expose. If enabled, peers can expose local services through the reverse proxy using the CLI.
	PeerExposeEnabled bool `json:"peer_expose_enabled"`

	// PeerExposeGroups Limits which peer groups are allowed to expose services. If empty, all peers are allowed when peer expose is enabled.
	PeerExposeGroups []string `json:"peer_expose_groups"`

	// 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 BearerAuthConfig added in v0.65.0

type BearerAuthConfig struct {
	// DistributionGroups List of group IDs that can use bearer auth
	DistributionGroups *[]string `json:"distribution_groups,omitempty"`

	// Enabled Whether bearer auth is enabled
	Enabled bool `json:"enabled"`
}

BearerAuthConfig defines model for BearerAuthConfig.

type BundleParameters added in v0.64.0

type BundleParameters struct {
	// Anonymize Whether sensitive data should be anonymized in the bundle.
	Anonymize bool `json:"anonymize"`

	// BundleFor Whether to generate a bundle for the given timeframe.
	BundleFor bool `json:"bundle_for"`

	// BundleForTime Time period in minutes for which to generate the bundle.
	BundleForTime int `json:"bundle_for_time"`

	// LogFileCount Maximum number of log files to include in the bundle.
	LogFileCount int `json:"log_file_count"`
}

BundleParameters These parameters control what gets included in the bundle and how it is processed.

type BundleResult added in v0.64.0

type BundleResult struct {
	UploadKey *string `json:"upload_key"`
}

BundleResult defines model for BundleResult.

type BundleWorkloadRequest added in v0.64.0

type BundleWorkloadRequest struct {
	// Parameters These parameters control what gets included in the bundle and how it is processed.
	Parameters BundleParameters `json:"parameters"`

	// Type Identifies the type of workload the job will execute.
	// Currently only `"bundle"` is supported.
	Type WorkloadType `json:"type"`
}

BundleWorkloadRequest defines model for BundleWorkloadRequest.

type BundleWorkloadResponse added in v0.64.0

type BundleWorkloadResponse struct {
	// Parameters These parameters control what gets included in the bundle and how it is processed.
	Parameters BundleParameters `json:"parameters"`
	Result     BundleResult     `json:"result"`

	// Type Identifies the type of workload the job will execute.
	// Currently only `"bundle"` is supported.
	Type WorkloadType `json:"type"`
}

BundleWorkloadResponse defines model for BundleWorkloadResponse.

type BypassResponse added in v0.65.0

type BypassResponse struct {
	// PeerId The ID of the bypassed peer.
	PeerId string `json:"peer_id"`
}

BypassResponse Response for bypassed peer operations.

type CheckoutResponse added in v0.65.0

type CheckoutResponse struct {
	// SessionId The unique identifier for the checkout session.
	SessionId string `json:"session_id"`

	// Url URL to redirect the user to the checkout session.
	Url string `json:"url"`
}

CheckoutResponse defines model for CheckoutResponse.

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 CityName

type CityName = string

CityName Commonly used English name of the city

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 CreateEDRIntegrationJSONRequestBody added in v0.65.0

type CreateEDRIntegrationJSONRequestBody = EDRIntuneRequest

CreateEDRIntegrationJSONRequestBody defines body for CreateEDRIntegration for application/json ContentType.

type CreateFalconEDRIntegrationJSONRequestBody added in v0.65.0

type CreateFalconEDRIntegrationJSONRequestBody = EDRFalconRequest

CreateFalconEDRIntegrationJSONRequestBody defines body for CreateFalconEDRIntegration for application/json ContentType.

type CreateHuntressEDRIntegrationJSONRequestBody added in v0.65.0

type CreateHuntressEDRIntegrationJSONRequestBody = EDRHuntressRequest

CreateHuntressEDRIntegrationJSONRequestBody defines body for CreateHuntressEDRIntegration for application/json ContentType.

type CreateIntegrationJSONRequestBody added in v0.65.0

type CreateIntegrationJSONRequestBody = CreateIntegrationRequest

CreateIntegrationJSONRequestBody defines body for CreateIntegration for application/json ContentType.

type CreateIntegrationRequest added in v0.65.0

type CreateIntegrationRequest struct {
	// Config Platform-specific configuration as key-value pairs. For creation, all necessary credentials and settings must be provided. For updates, provide the fields to change or the entire new configuration.
	Config map[string]string `json:"config"`

	// Enabled Specifies whether the integration is enabled. During creation (POST), this value is sent by the client, but the provided backend manager function `CreateIntegration` does not appear to use it directly, so its effect on creation should be verified. During updates (PUT), this field is used to enable or disable the integration.
	Enabled bool `json:"enabled"`

	// Platform The event streaming platform to integrate with (e.g., "datadog", "s3", "firehose"). This field is used for creation. For updates (PUT), this field, if sent, is ignored by the backend.
	Platform CreateIntegrationRequestPlatform `json:"platform"`
}

CreateIntegrationRequest Request payload for creating a new event streaming integration. Also used as the structure for the PUT request body, but not all fields are applicable for updates (see PUT operation description).

type CreateIntegrationRequestPlatform added in v0.65.0

type CreateIntegrationRequestPlatform string

CreateIntegrationRequestPlatform The event streaming platform to integrate with (e.g., "datadog", "s3", "firehose"). This field is used for creation. For updates (PUT), this field, if sent, is ignored by the backend.

const (
	CreateIntegrationRequestPlatformDatadog     CreateIntegrationRequestPlatform = "datadog"
	CreateIntegrationRequestPlatformFirehose    CreateIntegrationRequestPlatform = "firehose"
	CreateIntegrationRequestPlatformGenericHttp CreateIntegrationRequestPlatform = "generic_http"
	CreateIntegrationRequestPlatformS3          CreateIntegrationRequestPlatform = "s3"
)

Defines values for CreateIntegrationRequestPlatform.

type CreateSCIMIntegrationJSONRequestBody added in v0.65.0

type CreateSCIMIntegrationJSONRequestBody = CreateScimIntegrationRequest

CreateSCIMIntegrationJSONRequestBody defines body for CreateSCIMIntegration for application/json ContentType.

type CreateScimIntegrationRequest added in v0.65.0

type CreateScimIntegrationRequest struct {
	// GroupPrefixes List of start_with string patterns for groups to sync
	GroupPrefixes *[]string `json:"group_prefixes,omitempty"`

	// Prefix The connection prefix used for the SCIM provider
	Prefix string `json:"prefix"`

	// Provider Name of the SCIM identity provider
	Provider string `json:"provider"`

	// UserGroupPrefixes List of start_with string patterns for groups which users to sync
	UserGroupPrefixes *[]string `json:"user_group_prefixes,omitempty"`
}

CreateScimIntegrationRequest Request payload for creating an SCIM IDP integration

type CreateSentinelOneEDRIntegrationJSONRequestBody added in v0.65.0

type CreateSentinelOneEDRIntegrationJSONRequestBody = EDRSentinelOneRequest

CreateSentinelOneEDRIntegrationJSONRequestBody defines body for CreateSentinelOneEDRIntegration for application/json ContentType.

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 CreateTenantRequest added in v0.65.0

type CreateTenantRequest struct {
	// Domain The name for the MSP tenant
	Domain string `json:"domain"`

	// Groups MSP users Groups that can access the Tenant and Roles to assume
	Groups []TenantGroupResponse `json:"groups"`

	// Name The name for the MSP tenant
	Name string `json:"name"`
}

CreateTenantRequest defines model for CreateTenantRequest.

type DNSChallengeResponse added in v0.65.0

type DNSChallengeResponse struct {
	// DnsChallenge The DNS challenge to set in a TXT record
	DnsChallenge string `json:"dns_challenge"`
}

DNSChallengeResponse defines model for DNSChallengeResponse.

type DNSRecord added in v0.63.0

type DNSRecord struct {
	// Content DNS record content (IP address for A/AAAA, domain for CNAME)
	Content string `json:"content"`

	// Id DNS record ID
	Id string `json:"id"`

	// Name FQDN for the DNS record. Must be a subdomain within or match the zone's domain.
	Name string `json:"name"`

	// Ttl Time to live in seconds
	Ttl int `json:"ttl"`

	// Type DNS record type
	Type DNSRecordType `json:"type"`
}

DNSRecord defines model for DNSRecord.

type DNSRecordRequest added in v0.63.0

type DNSRecordRequest struct {
	// Content DNS record content (IP address for A/AAAA, domain for CNAME)
	Content string `json:"content"`

	// Name FQDN for the DNS record. Must be a subdomain within or match the zone's domain.
	Name string `json:"name"`

	// Ttl Time to live in seconds
	Ttl int `json:"ttl"`

	// Type DNS record type
	Type DNSRecordType `json:"type"`
}

DNSRecordRequest defines model for DNSRecordRequest.

type DNSRecordType added in v0.63.0

type DNSRecordType string

DNSRecordType DNS record type

const (
	DNSRecordTypeA     DNSRecordType = "A"
	DNSRecordTypeAAAA  DNSRecordType = "AAAA"
	DNSRecordTypeCNAME DNSRecordType = "CNAME"
)

Defines values for DNSRecordType.

type DNSSettings

type DNSSettings struct {
	// DisabledManagementGroups Groups whose DNS management is disabled
	DisabledManagementGroups []string `json:"disabled_management_groups"`
}

DNSSettings defines model for DNSSettings.

type EDRFalconRequest added in v0.65.0

type EDRFalconRequest struct {
	// ClientId CrowdStrike API client ID
	ClientId string `json:"client_id"`

	// CloudId CrowdStrike cloud identifier (e.g., "us-1", "us-2", "eu-1")
	CloudId string `json:"cloud_id"`

	// Enabled Indicates whether the integration is enabled
	Enabled *bool `json:"enabled,omitempty"`

	// Groups The Groups this integration applies to
	Groups []string `json:"groups"`

	// Secret CrowdStrike API client secret
	Secret string `json:"secret"`

	// ZtaScoreThreshold The minimum Zero Trust Assessment score required for agent approval (0-100)
	ZtaScoreThreshold int `json:"zta_score_threshold"`
}

EDRFalconRequest Request payload for creating or updating a EDR Falcon integration

type EDRFalconResponse added in v0.65.0

type EDRFalconResponse struct {
	// AccountId The identifier of the account this integration belongs to.
	AccountId string `json:"account_id"`

	// CloudId CrowdStrike cloud identifier
	CloudId string `json:"cloud_id"`

	// CreatedAt Timestamp of when the integration was created.
	CreatedAt time.Time `json:"created_at"`

	// CreatedBy The user id that created the integration
	CreatedBy string `json:"created_by"`

	// Enabled Indicates whether the integration is enabled
	Enabled bool `json:"enabled"`

	// Groups List of groups
	Groups []Group `json:"groups"`

	// Id The unique numeric identifier for the integration.
	Id int64 `json:"id"`

	// LastSyncedAt Timestamp of when the integration was last synced.
	LastSyncedAt time.Time `json:"last_synced_at"`

	// UpdatedAt Timestamp of when the integration was last updated.
	UpdatedAt time.Time `json:"updated_at"`

	// ZtaScoreThreshold The minimum Zero Trust Assessment score required for agent approval (0-100)
	ZtaScoreThreshold int `json:"zta_score_threshold"`
}

EDRFalconResponse Represents a Falcon EDR integration

type EDRHuntressRequest added in v0.65.0

type EDRHuntressRequest struct {
	// ApiKey Huntress API key
	ApiKey string `json:"api_key"`

	// ApiSecret Huntress API secret
	ApiSecret string `json:"api_secret"`

	// Enabled Indicates whether the integration is enabled
	Enabled *bool `json:"enabled,omitempty"`

	// Groups The Groups this integrations applies to
	Groups []string `json:"groups"`

	// LastSyncedInterval The devices last sync requirement interval in hours. Minimum value is 24 hours
	LastSyncedInterval int `json:"last_synced_interval"`

	// MatchAttributes Attribute conditions to match when approving agents
	MatchAttributes HuntressMatchAttributes `json:"match_attributes"`
}

EDRHuntressRequest Request payload for creating or updating a EDR Huntress integration

type EDRHuntressResponse added in v0.65.0

type EDRHuntressResponse struct {
	// AccountId The identifier of the account this integration belongs to.
	AccountId string `json:"account_id"`

	// CreatedAt Timestamp of when the integration was created.
	CreatedAt time.Time `json:"created_at"`

	// CreatedBy The user id that created the integration
	CreatedBy string `json:"created_by"`

	// Enabled Indicates whether the integration is enabled
	Enabled bool `json:"enabled"`

	// Groups List of groups
	Groups []Group `json:"groups"`

	// Id The unique numeric identifier for the integration.
	Id int64 `json:"id"`

	// LastSyncedAt Timestamp of when the integration was last synced.
	LastSyncedAt time.Time `json:"last_synced_at"`

	// LastSyncedInterval The devices last sync requirement interval in hours.
	LastSyncedInterval int `json:"last_synced_interval"`

	// MatchAttributes Attribute conditions to match when approving agents
	MatchAttributes HuntressMatchAttributes `json:"match_attributes"`

	// UpdatedAt Timestamp of when the integration was last updated.
	UpdatedAt time.Time `json:"updated_at"`
}

EDRHuntressResponse Represents a Huntress EDR integration configuration

type EDRIntuneRequest added in v0.65.0

type EDRIntuneRequest struct {
	// ClientId The Azure application client id
	ClientId string `json:"client_id"`

	// Enabled Indicates whether the integration is enabled
	Enabled *bool `json:"enabled,omitempty"`

	// Groups The Groups this integrations applies to
	Groups []string `json:"groups"`

	// LastSyncedInterval The devices last sync requirement interval in hours. Minimum value is 24 hours.
	LastSyncedInterval int `json:"last_synced_interval"`

	// Secret The Azure application client secret
	Secret string `json:"secret"`

	// TenantId The Azure tenant id
	TenantId string `json:"tenant_id"`
}

EDRIntuneRequest Request payload for creating or updating a EDR Intune integration.

type EDRIntuneResponse added in v0.65.0

type EDRIntuneResponse struct {
	// AccountId The identifier of the account this integration belongs to.
	AccountId string `json:"account_id"`

	// ClientId The Azure application client id
	ClientId string `json:"client_id"`

	// CreatedAt Timestamp of when the integration was created.
	CreatedAt time.Time `json:"created_at"`

	// CreatedBy The user id that created the integration
	CreatedBy string `json:"created_by"`

	// Enabled Indicates whether the integration is enabled
	Enabled bool `json:"enabled"`

	// Groups List of groups
	Groups []Group `json:"groups"`

	// Id The unique numeric identifier for the integration.
	Id int64 `json:"id"`

	// LastSyncedAt Timestamp of when the integration was last synced.
	LastSyncedAt time.Time `json:"last_synced_at"`

	// LastSyncedInterval The devices last sync requirement interval in hours.
	LastSyncedInterval int `json:"last_synced_interval"`

	// TenantId The Azure tenant id
	TenantId string `json:"tenant_id"`

	// UpdatedAt Timestamp of when the integration was last updated.
	UpdatedAt time.Time `json:"updated_at"`
}

EDRIntuneResponse Represents a Intune EDR integration configuration

type EDRSentinelOneRequest added in v0.65.0

type EDRSentinelOneRequest struct {
	// ApiToken SentinelOne API token
	ApiToken string `json:"api_token"`

	// ApiUrl The Base URL of SentinelOne API
	ApiUrl string `json:"api_url"`

	// Enabled Indicates whether the integration is enabled
	Enabled *bool `json:"enabled,omitempty"`

	// Groups The Groups this integrations applies to
	Groups []string `json:"groups"`

	// LastSyncedInterval The devices last sync requirement interval in hours. Minimum value is 24 hours.
	LastSyncedInterval int `json:"last_synced_interval"`

	// MatchAttributes Attribute conditions to match when approving agents
	MatchAttributes SentinelOneMatchAttributes `json:"match_attributes"`
}

EDRSentinelOneRequest Request payload for creating or updating a EDR SentinelOne integration

type EDRSentinelOneResponse added in v0.65.0

type EDRSentinelOneResponse struct {
	// AccountId The identifier of the account this integration belongs to.
	AccountId string `json:"account_id"`

	// ApiUrl The Base URL of SentinelOne API
	ApiUrl string `json:"api_url"`

	// CreatedAt Timestamp of when the integration was created.
	CreatedAt time.Time `json:"created_at"`

	// CreatedBy The user id that created the integration
	CreatedBy string `json:"created_by"`

	// Enabled Indicates whether the integration is enabled
	Enabled bool `json:"enabled"`

	// Groups List of groups
	Groups []Group `json:"groups"`

	// Id The unique numeric identifier for the integration.
	Id int64 `json:"id"`

	// LastSyncedAt Timestamp of when the integration was last synced.
	LastSyncedAt time.Time `json:"last_synced_at"`

	// LastSyncedInterval The devices last sync requirement interval in hours.
	LastSyncedInterval int `json:"last_synced_interval"`

	// MatchAttributes Attribute conditions to match when approving agents
	MatchAttributes SentinelOneMatchAttributes `json:"match_attributes"`

	// UpdatedAt Timestamp of when the integration was last updated.
	UpdatedAt time.Time `json:"updated_at"`
}

EDRSentinelOneResponse Represents a SentinelOne EDR integration configuration

type ErrorResponse added in v0.65.0

type ErrorResponse struct {
	// Message A human-readable error message.
	Message *string `json:"message,omitempty"`
}

ErrorResponse Standard error response. Note: The exact structure of this error response is inferred from `util.WriteErrorResponse` and `util.WriteError` usage in the provided Go code, as a specific Go struct for errors was not provided.

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"
	EventActivityCodeAccountDelete                                 EventActivityCode = "account.delete"
	EventActivityCodeAccountDnsDomainUpdate                        EventActivityCode = "account.dns.domain.update"
	EventActivityCodeAccountNetworkRangeUpdate                     EventActivityCode = "account.network.range.update"
	EventActivityCodeAccountPeerInactivityExpirationDisable        EventActivityCode = "account.peer.inactivity.expiration.disable"
	EventActivityCodeAccountPeerInactivityExpirationEnable         EventActivityCode = "account.peer.inactivity.expiration.enable"
	EventActivityCodeAccountPeerInactivityExpirationUpdate         EventActivityCode = "account.peer.inactivity.expiration.update"
	EventActivityCodeAccountSettingGroupPropagationDisable         EventActivityCode = "account.setting.group.propagation.disable"
	EventActivityCodeAccountSettingGroupPropagationEnable          EventActivityCode = "account.setting.group.propagation.enable"
	EventActivityCodeAccountSettingLazyConnectionDisable           EventActivityCode = "account.setting.lazy.connection.disable"
	EventActivityCodeAccountSettingLazyConnectionEnable            EventActivityCode = "account.setting.lazy.connection.enable"
	EventActivityCodeAccountSettingPeerApprovalDisable             EventActivityCode = "account.setting.peer.approval.disable"
	EventActivityCodeAccountSettingPeerApprovalEnable              EventActivityCode = "account.setting.peer.approval.enable"
	EventActivityCodeAccountSettingPeerLoginExpirationDisable      EventActivityCode = "account.setting.peer.login.expiration.disable"
	EventActivityCodeAccountSettingPeerLoginExpirationEnable       EventActivityCode = "account.setting.peer.login.expiration.enable"
	EventActivityCodeAccountSettingPeerLoginExpirationUpdate       EventActivityCode = "account.setting.peer.login.expiration.update"
	EventActivityCodeAccountSettingRoutingPeerDnsResolutionDisable EventActivityCode = "account.setting.routing.peer.dns.resolution.disable"
	EventActivityCodeAccountSettingRoutingPeerDnsResolutionEnable  EventActivityCode = "account.setting.routing.peer.dns.resolution.enable"
	EventActivityCodeAccountSettingsAutoVersionUpdate              EventActivityCode = "account.settings.auto.version.update"
	EventActivityCodeDashboardLogin                                EventActivityCode = "dashboard.login"
	EventActivityCodeDnsSettingDisabledManagementGroupAdd          EventActivityCode = "dns.setting.disabled.management.group.add"
	EventActivityCodeDnsSettingDisabledManagementGroupDelete       EventActivityCode = "dns.setting.disabled.management.group.delete"
	EventActivityCodeDnsZoneCreate                                 EventActivityCode = "dns.zone.create"
	EventActivityCodeDnsZoneDelete                                 EventActivityCode = "dns.zone.delete"
	EventActivityCodeDnsZoneRecordCreate                           EventActivityCode = "dns.zone.record.create"
	EventActivityCodeDnsZoneRecordDelete                           EventActivityCode = "dns.zone.record.delete"
	EventActivityCodeDnsZoneRecordUpdate                           EventActivityCode = "dns.zone.record.update"
	EventActivityCodeDnsZoneUpdate                                 EventActivityCode = "dns.zone.update"
	EventActivityCodeGroupAdd                                      EventActivityCode = "group.add"
	EventActivityCodeGroupDelete                                   EventActivityCode = "group.delete"
	EventActivityCodeGroupUpdate                                   EventActivityCode = "group.update"
	EventActivityCodeIdentityproviderCreate                        EventActivityCode = "identityprovider.create"
	EventActivityCodeIdentityproviderDelete                        EventActivityCode = "identityprovider.delete"
	EventActivityCodeIdentityproviderUpdate                        EventActivityCode = "identityprovider.update"
	EventActivityCodeIntegrationCreate                             EventActivityCode = "integration.create"
	EventActivityCodeIntegrationDelete                             EventActivityCode = "integration.delete"
	EventActivityCodeIntegrationUpdate                             EventActivityCode = "integration.update"
	EventActivityCodeNameserverGroupAdd                            EventActivityCode = "nameserver.group.add"
	EventActivityCodeNameserverGroupDelete                         EventActivityCode = "nameserver.group.delete"
	EventActivityCodeNameserverGroupUpdate                         EventActivityCode = "nameserver.group.update"
	EventActivityCodeNetworkCreate                                 EventActivityCode = "network.create"
	EventActivityCodeNetworkDelete                                 EventActivityCode = "network.delete"
	EventActivityCodeNetworkResourceCreate                         EventActivityCode = "network.resource.create"
	EventActivityCodeNetworkResourceDelete                         EventActivityCode = "network.resource.delete"
	EventActivityCodeNetworkResourceUpdate                         EventActivityCode = "network.resource.update"
	EventActivityCodeNetworkRouterCreate                           EventActivityCode = "network.router.create"
	EventActivityCodeNetworkRouterDelete                           EventActivityCode = "network.router.delete"
	EventActivityCodeNetworkRouterUpdate                           EventActivityCode = "network.router.update"
	EventActivityCodeNetworkUpdate                                 EventActivityCode = "network.update"
	EventActivityCodePeerApprovalRevoke                            EventActivityCode = "peer.approval.revoke"
	EventActivityCodePeerApprove                                   EventActivityCode = "peer.approve"
	EventActivityCodePeerGroupAdd                                  EventActivityCode = "peer.group.add"
	EventActivityCodePeerGroupDelete                               EventActivityCode = "peer.group.delete"
	EventActivityCodePeerInactivityExpirationDisable               EventActivityCode = "peer.inactivity.expiration.disable"
	EventActivityCodePeerInactivityExpirationEnable                EventActivityCode = "peer.inactivity.expiration.enable"
	EventActivityCodePeerIpUpdate                                  EventActivityCode = "peer.ip.update"
	EventActivityCodePeerJobCreate                                 EventActivityCode = "peer.job.create"
	EventActivityCodePeerLoginExpirationDisable                    EventActivityCode = "peer.login.expiration.disable"
	EventActivityCodePeerLoginExpirationEnable                     EventActivityCode = "peer.login.expiration.enable"
	EventActivityCodePeerLoginExpire                               EventActivityCode = "peer.login.expire"
	EventActivityCodePeerRename                                    EventActivityCode = "peer.rename"
	EventActivityCodePeerSetupkeyAdd                               EventActivityCode = "peer.setupkey.add"
	EventActivityCodePeerSshDisable                                EventActivityCode = "peer.ssh.disable"
	EventActivityCodePeerSshEnable                                 EventActivityCode = "peer.ssh.enable"
	EventActivityCodePeerUserAdd                                   EventActivityCode = "peer.user.add"
	EventActivityCodePersonalAccessTokenCreate                     EventActivityCode = "personal.access.token.create"
	EventActivityCodePersonalAccessTokenDelete                     EventActivityCode = "personal.access.token.delete"
	EventActivityCodePolicyAdd                                     EventActivityCode = "policy.add"
	EventActivityCodePolicyDelete                                  EventActivityCode = "policy.delete"
	EventActivityCodePolicyUpdate                                  EventActivityCode = "policy.update"
	EventActivityCodePostureCheckCreate                            EventActivityCode = "posture.check.create"
	EventActivityCodePostureCheckDelete                            EventActivityCode = "posture.check.delete"
	EventActivityCodePostureCheckUpdate                            EventActivityCode = "posture.check.update"
	EventActivityCodeResourceGroupAdd                              EventActivityCode = "resource.group.add"
	EventActivityCodeResourceGroupDelete                           EventActivityCode = "resource.group.delete"
	EventActivityCodeRouteAdd                                      EventActivityCode = "route.add"
	EventActivityCodeRouteDelete                                   EventActivityCode = "route.delete"
	EventActivityCodeRouteUpdate                                   EventActivityCode = "route.update"
	EventActivityCodeRuleAdd                                       EventActivityCode = "rule.add"
	EventActivityCodeRuleDelete                                    EventActivityCode = "rule.delete"
	EventActivityCodeRuleUpdate                                    EventActivityCode = "rule.update"
	EventActivityCodeServiceCreate                                 EventActivityCode = "service.create"
	EventActivityCodeServiceDelete                                 EventActivityCode = "service.delete"
	EventActivityCodeServiceUpdate                                 EventActivityCode = "service.update"
	EventActivityCodeServiceUserCreate                             EventActivityCode = "service.user.create"
	EventActivityCodeServiceUserDelete                             EventActivityCode = "service.user.delete"
	EventActivityCodeSetupkeyAdd                                   EventActivityCode = "setupkey.add"
	EventActivityCodeSetupkeyDelete                                EventActivityCode = "setupkey.delete"
	EventActivityCodeSetupkeyGroupAdd                              EventActivityCode = "setupkey.group.add"
	EventActivityCodeSetupkeyGroupDelete                           EventActivityCode = "setupkey.group.delete"
	EventActivityCodeSetupkeyOveruse                               EventActivityCode = "setupkey.overuse"
	EventActivityCodeSetupkeyRevoke                                EventActivityCode = "setupkey.revoke"
	EventActivityCodeSetupkeyUpdate                                EventActivityCode = "setupkey.update"
	EventActivityCodeTransferredOwnerRole                          EventActivityCode = "transferred.owner.role"
	EventActivityCodeUserApprove                                   EventActivityCode = "user.approve"
	EventActivityCodeUserBlock                                     EventActivityCode = "user.block"
	EventActivityCodeUserCreate                                    EventActivityCode = "user.create"
	EventActivityCodeUserDelete                                    EventActivityCode = "user.delete"
	EventActivityCodeUserGroupAdd                                  EventActivityCode = "user.group.add"
	EventActivityCodeUserGroupDelete                               EventActivityCode = "user.group.delete"
	EventActivityCodeUserInvite                                    EventActivityCode = "user.invite"
	EventActivityCodeUserInviteLinkAccept                          EventActivityCode = "user.invite.link.accept"
	EventActivityCodeUserInviteLinkCreate                          EventActivityCode = "user.invite.link.create"
	EventActivityCodeUserInviteLinkDelete                          EventActivityCode = "user.invite.link.delete"
	EventActivityCodeUserInviteLinkRegenerate                      EventActivityCode = "user.invite.link.regenerate"
	EventActivityCodeUserJoin                                      EventActivityCode = "user.join"
	EventActivityCodeUserPasswordChange                            EventActivityCode = "user.password.change"
	EventActivityCodeUserPeerDelete                                EventActivityCode = "user.peer.delete"
	EventActivityCodeUserPeerLogin                                 EventActivityCode = "user.peer.login"
	EventActivityCodeUserReject                                    EventActivityCode = "user.reject"
	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 GetApiEventsProxyParams added in v0.65.0

type GetApiEventsProxyParams struct {
	// Page Page number for pagination (1-indexed)
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PageSize Number of items per page (max 100)
	PageSize *int `form:"page_size,omitempty" json:"page_size,omitempty"`

	// Search General search across request ID, host, path, source IP, user email, and user name
	Search *string `form:"search,omitempty" json:"search,omitempty"`

	// SourceIp Filter by source IP address
	SourceIp *string `form:"source_ip,omitempty" json:"source_ip,omitempty"`

	// Host Filter by host header
	Host *string `form:"host,omitempty" json:"host,omitempty"`

	// Path Filter by request path (supports partial matching)
	Path *string `form:"path,omitempty" json:"path,omitempty"`

	// UserId Filter by authenticated user ID
	UserId *string `form:"user_id,omitempty" json:"user_id,omitempty"`

	// UserEmail Filter by user email (partial matching)
	UserEmail *string `form:"user_email,omitempty" json:"user_email,omitempty"`

	// UserName Filter by user name (partial matching)
	UserName *string `form:"user_name,omitempty" json:"user_name,omitempty"`

	// Method Filter by HTTP method
	Method *GetApiEventsProxyParamsMethod `form:"method,omitempty" json:"method,omitempty"`

	// Status Filter by status (success = 2xx/3xx, failed = 1xx/4xx/5xx)
	Status *GetApiEventsProxyParamsStatus `form:"status,omitempty" json:"status,omitempty"`

	// StatusCode Filter by HTTP status code
	StatusCode *int `form:"status_code,omitempty" json:"status_code,omitempty"`

	// StartDate Filter by timestamp >= start_date (RFC3339 format)
	StartDate *time.Time `form:"start_date,omitempty" json:"start_date,omitempty"`

	// EndDate Filter by timestamp <= end_date (RFC3339 format)
	EndDate *time.Time `form:"end_date,omitempty" json:"end_date,omitempty"`
}

GetApiEventsProxyParams defines parameters for GetApiEventsProxy.

type GetApiEventsProxyParamsMethod added in v0.65.0

type GetApiEventsProxyParamsMethod string

GetApiEventsProxyParamsMethod defines parameters for GetApiEventsProxy.

const (
	GetApiEventsProxyParamsMethodDELETE  GetApiEventsProxyParamsMethod = "DELETE"
	GetApiEventsProxyParamsMethodGET     GetApiEventsProxyParamsMethod = "GET"
	GetApiEventsProxyParamsMethodHEAD    GetApiEventsProxyParamsMethod = "HEAD"
	GetApiEventsProxyParamsMethodOPTIONS GetApiEventsProxyParamsMethod = "OPTIONS"
	GetApiEventsProxyParamsMethodPATCH   GetApiEventsProxyParamsMethod = "PATCH"
	GetApiEventsProxyParamsMethodPOST    GetApiEventsProxyParamsMethod = "POST"
	GetApiEventsProxyParamsMethodPUT     GetApiEventsProxyParamsMethod = "PUT"
)

Defines values for GetApiEventsProxyParamsMethod.

type GetApiEventsProxyParamsStatus added in v0.65.0

type GetApiEventsProxyParamsStatus string

GetApiEventsProxyParamsStatus defines parameters for GetApiEventsProxy.

const (
	GetApiEventsProxyParamsStatusFailed  GetApiEventsProxyParamsStatus = "failed"
	GetApiEventsProxyParamsStatusSuccess GetApiEventsProxyParamsStatus = "success"
)

Defines values for GetApiEventsProxyParamsStatus.

type GetApiGroupsParams added in v0.60.5

type GetApiGroupsParams struct {
	// Name Filter groups by name (exact match)
	Name *string `form:"name,omitempty" json:"name,omitempty"`
}

GetApiGroupsParams defines parameters for GetApiGroups.

type GetApiIntegrationsBillingPortalParams added in v0.65.0

type GetApiIntegrationsBillingPortalParams struct {
	// BaseURL The base URL for the redirect after accessing the portal.
	BaseURL string `form:"baseURL" json:"baseURL"`
}

GetApiIntegrationsBillingPortalParams defines parameters for GetApiIntegrationsBillingPortal.

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 GetTenantsResponse added in v0.65.0

type GetTenantsResponse = []TenantResponse

GetTenantsResponse defines model for GetTenantsResponse.

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 HuntressMatchAttributes added in v0.65.0

type HuntressMatchAttributes struct {
	// DefenderPolicyStatus Policy status of Defender AV for Managed Antivirus.
	DefenderPolicyStatus *string `json:"defender_policy_status,omitempty"`

	// DefenderStatus Status of Defender AV Managed Antivirus.
	DefenderStatus *string `json:"defender_status,omitempty"`

	// DefenderSubstatus Sub-status of Defender AV Managed Antivirus.
	DefenderSubstatus *string `json:"defender_substatus,omitempty"`

	// FirewallStatus Status of agent firewall. Can be one of Disabled, Enabled, Pending Isolation, Isolated, Pending Release.
	FirewallStatus *string `json:"firewall_status,omitempty"`
}

HuntressMatchAttributes Attribute conditions to match when approving agents

type IdentityProvider added in v0.62.0

type IdentityProvider struct {
	// ClientId OAuth2 client ID
	ClientId string `json:"client_id"`

	// Id Identity provider ID
	Id *string `json:"id,omitempty"`

	// Issuer OIDC issuer URL
	Issuer string `json:"issuer"`

	// Name Human-readable name for the identity provider
	Name string `json:"name"`

	// Type Type of identity provider
	Type IdentityProviderType `json:"type"`
}

IdentityProvider defines model for IdentityProvider.

type IdentityProviderRequest added in v0.62.0

type IdentityProviderRequest struct {
	// ClientId OAuth2 client ID
	ClientId string `json:"client_id"`

	// ClientSecret OAuth2 client secret
	ClientSecret string `json:"client_secret"`

	// Issuer OIDC issuer URL
	Issuer string `json:"issuer"`

	// Name Human-readable name for the identity provider
	Name string `json:"name"`

	// Type Type of identity provider
	Type IdentityProviderType `json:"type"`
}

IdentityProviderRequest defines model for IdentityProviderRequest.

type IdentityProviderType added in v0.62.0

type IdentityProviderType string

IdentityProviderType Type of identity provider

const (
	IdentityProviderTypeEntra     IdentityProviderType = "entra"
	IdentityProviderTypeGoogle    IdentityProviderType = "google"
	IdentityProviderTypeMicrosoft IdentityProviderType = "microsoft"
	IdentityProviderTypeOidc      IdentityProviderType = "oidc"
	IdentityProviderTypeOkta      IdentityProviderType = "okta"
	IdentityProviderTypePocketid  IdentityProviderType = "pocketid"
	IdentityProviderTypeZitadel   IdentityProviderType = "zitadel"
)

Defines values for IdentityProviderType.

type IdpIntegrationSyncLog added in v0.65.0

type IdpIntegrationSyncLog struct {
	// Id The unique identifier for the sync log
	Id int64 `json:"id"`

	// Level The log level
	Level string `json:"level"`

	// Message Log message
	Message string `json:"message"`

	// Timestamp Timestamp of when the log was created
	Timestamp time.Time `json:"timestamp"`
}

IdpIntegrationSyncLog Represents a synchronization log entry for an integration

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 InstanceStatus added in v0.62.0

type InstanceStatus struct {
	// SetupRequired Indicates whether the instance requires initial setup
	SetupRequired bool `json:"setup_required"`
}

InstanceStatus Instance status information

type InstanceVersionInfo added in v0.64.2

type InstanceVersionInfo struct {
	// DashboardAvailableVersion The latest available version of the dashboard (from GitHub releases)
	DashboardAvailableVersion *string `json:"dashboard_available_version,omitempty"`

	// ManagementAvailableVersion The latest available version of the management server (from GitHub releases)
	ManagementAvailableVersion *string `json:"management_available_version,omitempty"`

	// ManagementCurrentVersion The current running version of the management server
	ManagementCurrentVersion string `json:"management_current_version"`

	// ManagementUpdateAvailable Indicates if a newer management version is available
	ManagementUpdateAvailable bool `json:"management_update_available"`
}

InstanceVersionInfo Version information for NetBird components

type IntegrationResponse added in v0.65.0

type IntegrationResponse struct {
	// AccountId The identifier of the account this integration belongs to.
	AccountId *string `json:"account_id,omitempty"`

	// Config Configuration for the integration. Sensitive keys (like API keys, secret keys) are masked with '****' in responses, as indicated by the GetIntegration handler logic.
	Config *map[string]string `json:"config,omitempty"`

	// CreatedAt Timestamp of when the integration was created.
	CreatedAt *time.Time `json:"created_at,omitempty"`

	// Enabled Whether the integration is currently active.
	Enabled *bool `json:"enabled,omitempty"`

	// Id The unique numeric identifier for the integration.
	Id *int64 `json:"id,omitempty"`

	// Platform The event streaming platform.
	Platform *IntegrationResponsePlatform `json:"platform,omitempty"`

	// UpdatedAt Timestamp of when the integration was last updated.
	UpdatedAt *time.Time `json:"updated_at,omitempty"`
}

IntegrationResponse Represents an event streaming integration.

type IntegrationResponsePlatform added in v0.65.0

type IntegrationResponsePlatform string

IntegrationResponsePlatform The event streaming platform.

const (
	IntegrationResponsePlatformDatadog     IntegrationResponsePlatform = "datadog"
	IntegrationResponsePlatformFirehose    IntegrationResponsePlatform = "firehose"
	IntegrationResponsePlatformGenericHttp IntegrationResponsePlatform = "generic_http"
	IntegrationResponsePlatformS3          IntegrationResponsePlatform = "s3"
)

Defines values for IntegrationResponsePlatform.

type InvoicePDFResponse added in v0.65.0

type InvoicePDFResponse struct {
	// Url URL to redirect the user to invoice.
	Url string `json:"url"`
}

InvoicePDFResponse defines model for InvoicePDFResponse.

type InvoiceResponse added in v0.65.0

type InvoiceResponse struct {
	// Id The Stripe invoice id
	Id string `json:"id"`

	// PeriodEnd The end date of the invoice period.
	PeriodEnd time.Time `json:"period_end"`

	// PeriodStart The start date of the invoice period.
	PeriodStart time.Time `json:"period_start"`

	// Type The invoice type
	Type InvoiceResponseType `json:"type"`
}

InvoiceResponse defines model for InvoiceResponse.

type InvoiceResponseType added in v0.65.0

type InvoiceResponseType string

InvoiceResponseType The invoice type

const (
	InvoiceResponseTypeAccount InvoiceResponseType = "account"
	InvoiceResponseTypeTenants InvoiceResponseType = "tenants"
)

Defines values for InvoiceResponseType.

type JobRequest added in v0.64.0

type JobRequest struct {
	Workload WorkloadRequest `json:"workload"`
}

JobRequest defines model for JobRequest.

type JobResponse added in v0.64.0

type JobResponse struct {
	CompletedAt  *time.Time        `json:"completed_at"`
	CreatedAt    time.Time         `json:"created_at"`
	FailedReason *string           `json:"failed_reason"`
	Id           string            `json:"id"`
	Status       JobResponseStatus `json:"status"`
	TriggeredBy  string            `json:"triggered_by"`
	Workload     WorkloadResponse  `json:"workload"`
}

JobResponse defines model for JobResponse.

type JobResponseStatus added in v0.64.0

type JobResponseStatus string

JobResponseStatus defines model for JobResponse.Status.

const (
	JobResponseStatusFailed    JobResponseStatus = "failed"
	JobResponseStatusPending   JobResponseStatus = "pending"
	JobResponseStatusSucceeded JobResponseStatus = "succeeded"
)

Defines values for JobResponseStatus.

type LinkAuthConfig added in v0.65.0

type LinkAuthConfig struct {
	// Enabled Whether link auth is enabled
	Enabled bool `json:"enabled"`
}

LinkAuthConfig defines model for LinkAuthConfig.

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 PINAuthConfig added in v0.65.0

type PINAuthConfig struct {
	// Enabled Whether PIN auth is enabled
	Enabled bool `json:"enabled"`

	// Pin PIN value
	Pin string `json:"pin"`
}

PINAuthConfig defines model for PINAuthConfig.

type PasswordAuthConfig added in v0.65.0

type PasswordAuthConfig struct {
	// Enabled Whether password auth is enabled
	Enabled bool `json:"enabled"`

	// Password Auth password
	Password string `json:"password"`
}

PasswordAuthConfig defines model for PasswordAuthConfig.

type PasswordChangeRequest added in v0.64.0

type PasswordChangeRequest struct {
	// NewPassword The new password to set
	NewPassword string `json:"new_password"`

	// OldPassword The current password
	OldPassword string `json:"old_password"`
}

PasswordChangeRequest defines model for PasswordChangeRequest.

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"`

	// DisapprovalReason (Cloud only) Reason why the peer requires approval
	DisapprovalReason *string `json:"disapproval_reason,omitempty"`

	// 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"`
	LocalFlags *PeerLocalFlags `json:"local_flags,omitempty"`

	// 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"`

	// DisapprovalReason (Cloud only) Reason why the peer requires approval
	DisapprovalReason *string `json:"disapproval_reason,omitempty"`

	// 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"`
	LocalFlags *PeerLocalFlags `json:"local_flags,omitempty"`

	// 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 PeerLocalFlags added in v0.61.0

type PeerLocalFlags struct {
	// BlockInbound Indicates whether inbound traffic is blocked on this peer
	BlockInbound *bool `json:"block_inbound,omitempty"`

	// BlockLanAccess Indicates whether LAN access is blocked on this peer when used as a routing peer
	BlockLanAccess *bool `json:"block_lan_access,omitempty"`

	// DisableClientRoutes Indicates whether client routes are disabled on this peer or not
	DisableClientRoutes *bool `json:"disable_client_routes,omitempty"`

	// DisableDns Indicates whether DNS management is disabled on this peer or not
	DisableDns *bool `json:"disable_dns,omitempty"`

	// DisableFirewall Indicates whether firewall management is disabled on this peer or not
	DisableFirewall *bool `json:"disable_firewall,omitempty"`

	// DisableServerRoutes Indicates whether server routes are disabled on this peer or not
	DisableServerRoutes *bool `json:"disable_server_routes,omitempty"`

	// LazyConnectionEnabled Indicates whether lazy connection is enabled on this peer
	LazyConnectionEnabled *bool `json:"lazy_connection_enabled,omitempty"`

	// RosenpassEnabled Indicates whether Rosenpass is enabled on this peer
	RosenpassEnabled *bool `json:"rosenpass_enabled,omitempty"`

	// RosenpassPermissive Indicates whether Rosenpass is in permissive mode or not
	RosenpassPermissive *bool `json:"rosenpass_permissive,omitempty"`

	// ServerSshAllowed Indicates whether SSH access this peer is allowed or not
	ServerSshAllowed *bool `json:"server_ssh_allowed,omitempty"`
}

PeerLocalFlags defines model for PeerLocalFlags.

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"`

	// AuthorizedGroups Map of user group ids to a list of local users
	AuthorizedGroups *map[string][]string `json:"authorized_groups,omitempty"`

	// 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"`

	// AuthorizedGroups Map of user group ids to a list of local users
	AuthorizedGroups *map[string][]string `json:"authorized_groups,omitempty"`

	// 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"
	PolicyRuleMinimumProtocolNetbirdSsh PolicyRuleMinimumProtocol = "netbird-ssh"
	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"
	PolicyRuleProtocolNetbirdSsh PolicyRuleProtocol = "netbird-ssh"
	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"`

	// AuthorizedGroups Map of user group ids to a list of local users
	AuthorizedGroups *map[string][]string `json:"authorized_groups,omitempty"`

	// 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"
	PolicyRuleUpdateProtocolNetbirdSsh PolicyRuleUpdateProtocol = "netbird-ssh"
	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 PortalResponse added in v0.65.0

type PortalResponse struct {
	// SessionId The unique identifier for the customer portal session.
	SessionId string `json:"session_id"`

	// Url URL to redirect the user to the customer portal.
	Url string `json:"url"`
}

PortalResponse defines model for PortalResponse.

type PostApiDnsNameserversJSONRequestBody

type PostApiDnsNameserversJSONRequestBody = NameserverGroupRequest

PostApiDnsNameserversJSONRequestBody defines body for PostApiDnsNameservers for application/json ContentType.

type PostApiDnsZonesJSONRequestBody added in v0.63.0

type PostApiDnsZonesJSONRequestBody = ZoneRequest

PostApiDnsZonesJSONRequestBody defines body for PostApiDnsZones for application/json ContentType.

type PostApiDnsZonesZoneIdRecordsJSONRequestBody added in v0.63.0

type PostApiDnsZonesZoneIdRecordsJSONRequestBody = DNSRecordRequest

PostApiDnsZonesZoneIdRecordsJSONRequestBody defines body for PostApiDnsZonesZoneIdRecords for application/json ContentType.

type PostApiGroupsJSONRequestBody

type PostApiGroupsJSONRequestBody = GroupRequest

PostApiGroupsJSONRequestBody defines body for PostApiGroups for application/json ContentType.

type PostApiIdentityProvidersJSONRequestBody added in v0.62.0

type PostApiIdentityProvidersJSONRequestBody = IdentityProviderRequest

PostApiIdentityProvidersJSONRequestBody defines body for PostApiIdentityProviders for application/json ContentType.

type PostApiIngressPeersJSONRequestBody

type PostApiIngressPeersJSONRequestBody = IngressPeerCreateRequest

PostApiIngressPeersJSONRequestBody defines body for PostApiIngressPeers for application/json ContentType.

type PostApiIntegrationsBillingAwsMarketplaceActivateJSONBody added in v0.65.0

type PostApiIntegrationsBillingAwsMarketplaceActivateJSONBody struct {
	// PlanTier The plan tier to activate the subscription for.
	PlanTier string `json:"plan_tier"`
}

PostApiIntegrationsBillingAwsMarketplaceActivateJSONBody defines parameters for PostApiIntegrationsBillingAwsMarketplaceActivate.

type PostApiIntegrationsBillingAwsMarketplaceActivateJSONRequestBody added in v0.65.0

type PostApiIntegrationsBillingAwsMarketplaceActivateJSONRequestBody PostApiIntegrationsBillingAwsMarketplaceActivateJSONBody

PostApiIntegrationsBillingAwsMarketplaceActivateJSONRequestBody defines body for PostApiIntegrationsBillingAwsMarketplaceActivate for application/json ContentType.

type PostApiIntegrationsBillingAwsMarketplaceEnrichJSONBody added in v0.65.0

type PostApiIntegrationsBillingAwsMarketplaceEnrichJSONBody struct {
	// AwsUserId The AWS user ID.
	AwsUserId string `json:"aws_user_id"`
}

PostApiIntegrationsBillingAwsMarketplaceEnrichJSONBody defines parameters for PostApiIntegrationsBillingAwsMarketplaceEnrich.

type PostApiIntegrationsBillingAwsMarketplaceEnrichJSONRequestBody added in v0.65.0

type PostApiIntegrationsBillingAwsMarketplaceEnrichJSONRequestBody PostApiIntegrationsBillingAwsMarketplaceEnrichJSONBody

PostApiIntegrationsBillingAwsMarketplaceEnrichJSONRequestBody defines body for PostApiIntegrationsBillingAwsMarketplaceEnrich for application/json ContentType.

type PostApiIntegrationsBillingCheckoutJSONBody added in v0.65.0

type PostApiIntegrationsBillingCheckoutJSONBody struct {
	// BaseURL The base URL for the redirect after checkout.
	BaseURL string `json:"baseURL"`

	// EnableTrial Enables a 14-day trial for the account.
	EnableTrial *bool `json:"enableTrial,omitempty"`

	// PriceID The Price ID for checkout.
	PriceID string `json:"priceID"`
}

PostApiIntegrationsBillingCheckoutJSONBody defines parameters for PostApiIntegrationsBillingCheckout.

type PostApiIntegrationsBillingCheckoutJSONRequestBody added in v0.65.0

type PostApiIntegrationsBillingCheckoutJSONRequestBody PostApiIntegrationsBillingCheckoutJSONBody

PostApiIntegrationsBillingCheckoutJSONRequestBody defines body for PostApiIntegrationsBillingCheckout for application/json ContentType.

type PostApiIntegrationsMspTenantsIdSubscriptionJSONBody added in v0.65.0

type PostApiIntegrationsMspTenantsIdSubscriptionJSONBody struct {
	// PriceID The Price ID to change the subscription to.
	PriceID string `json:"priceID"`
}

PostApiIntegrationsMspTenantsIdSubscriptionJSONBody defines parameters for PostApiIntegrationsMspTenantsIdSubscription.

type PostApiIntegrationsMspTenantsIdSubscriptionJSONRequestBody added in v0.65.0

type PostApiIntegrationsMspTenantsIdSubscriptionJSONRequestBody PostApiIntegrationsMspTenantsIdSubscriptionJSONBody

PostApiIntegrationsMspTenantsIdSubscriptionJSONRequestBody defines body for PostApiIntegrationsMspTenantsIdSubscription for application/json ContentType.

type PostApiIntegrationsMspTenantsIdUnlinkJSONBody added in v0.65.0

type PostApiIntegrationsMspTenantsIdUnlinkJSONBody struct {
	// Owner The new owners user ID.
	Owner string `json:"owner"`
}

PostApiIntegrationsMspTenantsIdUnlinkJSONBody defines parameters for PostApiIntegrationsMspTenantsIdUnlink.

type PostApiIntegrationsMspTenantsIdUnlinkJSONRequestBody added in v0.65.0

type PostApiIntegrationsMspTenantsIdUnlinkJSONRequestBody PostApiIntegrationsMspTenantsIdUnlinkJSONBody

PostApiIntegrationsMspTenantsIdUnlinkJSONRequestBody defines body for PostApiIntegrationsMspTenantsIdUnlink for application/json ContentType.

type PostApiIntegrationsMspTenantsJSONRequestBody added in v0.65.0

type PostApiIntegrationsMspTenantsJSONRequestBody = CreateTenantRequest

PostApiIntegrationsMspTenantsJSONRequestBody defines body for PostApiIntegrationsMspTenants 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 PostApiPeersPeerIdJobsJSONRequestBody added in v0.64.0

type PostApiPeersPeerIdJobsJSONRequestBody = JobRequest

PostApiPeersPeerIdJobsJSONRequestBody defines body for PostApiPeersPeerIdJobs 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 PostApiReverseProxiesDomainsJSONRequestBody added in v0.65.0

type PostApiReverseProxiesDomainsJSONRequestBody = ReverseProxyDomainRequest

PostApiReverseProxiesDomainsJSONRequestBody defines body for PostApiReverseProxiesDomains for application/json ContentType.

type PostApiReverseProxiesServicesJSONRequestBody added in v0.65.0

type PostApiReverseProxiesServicesJSONRequestBody = ServiceRequest

PostApiReverseProxiesServicesJSONRequestBody defines body for PostApiReverseProxiesServices for application/json ContentType.

type PostApiRoutesJSONRequestBody

type PostApiRoutesJSONRequestBody = RouteRequest

PostApiRoutesJSONRequestBody defines body for PostApiRoutes for application/json ContentType.

type PostApiSetupJSONRequestBody added in v0.62.0

type PostApiSetupJSONRequestBody = SetupRequest

PostApiSetupJSONRequestBody defines body for PostApiSetup for application/json ContentType.

type PostApiSetupKeysJSONRequestBody

type PostApiSetupKeysJSONRequestBody = CreateSetupKeyRequest

PostApiSetupKeysJSONRequestBody defines body for PostApiSetupKeys for application/json ContentType.

type PostApiUsersInvitesInviteIdRegenerateJSONRequestBody added in v0.64.2

type PostApiUsersInvitesInviteIdRegenerateJSONRequestBody = UserInviteRegenerateRequest

PostApiUsersInvitesInviteIdRegenerateJSONRequestBody defines body for PostApiUsersInvitesInviteIdRegenerate for application/json ContentType.

type PostApiUsersInvitesJSONRequestBody added in v0.64.2

type PostApiUsersInvitesJSONRequestBody = UserInviteCreateRequest

PostApiUsersInvitesJSONRequestBody defines body for PostApiUsersInvites for application/json ContentType.

type PostApiUsersInvitesTokenAcceptJSONRequestBody added in v0.64.2

type PostApiUsersInvitesTokenAcceptJSONRequestBody = UserInviteAcceptRequest

PostApiUsersInvitesTokenAcceptJSONRequestBody defines body for PostApiUsersInvitesTokenAccept 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 Price added in v0.65.0

type Price struct {
	// Currency Currency code for this price.
	Currency string `json:"currency"`

	// Price Price amount in minor units (e.g., cents).
	Price int `json:"price"`

	// PriceId Unique identifier for the price.
	PriceId string `json:"price_id"`

	// Unit Unit of measurement for this price (e.g., per user).
	Unit string `json:"unit"`
}

Price defines model for Price.

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 Product added in v0.65.0

type Product struct {
	// Description Detailed description of the product.
	Description string `json:"description"`

	// Features List of features provided by the product.
	Features []string `json:"features"`

	// Free Indicates whether the product is free or not.
	Free bool `json:"free"`

	// Name Name of the product.
	Name string `json:"name"`

	// Prices List of prices for the product in different currencies
	Prices []Price `json:"prices"`
}

Product defines model for Product.

type ProxyAccessLog added in v0.65.0

type ProxyAccessLog struct {
	// AuthMethodUsed Authentication method used (e.g., password, pin, oidc)
	AuthMethodUsed *string `json:"auth_method_used,omitempty"`

	// CityName City name from geolocation
	CityName *string `json:"city_name,omitempty"`

	// CountryCode Country code from geolocation
	CountryCode *string `json:"country_code,omitempty"`

	// DurationMs Duration of the request in milliseconds
	DurationMs int `json:"duration_ms"`

	// Host Host header of the request
	Host string `json:"host"`

	// Id Unique identifier for the access log entry
	Id string `json:"id"`

	// Method HTTP method of the request
	Method string `json:"method"`

	// Path Path of the request
	Path string `json:"path"`

	// Reason Reason for the request result (e.g., authentication failure)
	Reason *string `json:"reason,omitempty"`

	// ServiceId ID of the service that handled the request
	ServiceId string `json:"service_id"`

	// SourceIp Source IP address of the request
	SourceIp *string `json:"source_ip,omitempty"`

	// StatusCode HTTP status code returned
	StatusCode int `json:"status_code"`

	// Timestamp Timestamp when the request was made
	Timestamp time.Time `json:"timestamp"`

	// UserId ID of the authenticated user, if applicable
	UserId *string `json:"user_id,omitempty"`
}

ProxyAccessLog defines model for ProxyAccessLog.

type ProxyAccessLogsResponse added in v0.65.0

type ProxyAccessLogsResponse struct {
	// Data List of proxy access log entries
	Data []ProxyAccessLog `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 log records available
	TotalRecords int `json:"total_records"`
}

ProxyAccessLogsResponse defines model for ProxyAccessLogsResponse.

type ProxyCluster added in v0.65.0

type ProxyCluster struct {
	// Address Cluster address used for CNAME targets
	Address string `json:"address"`

	// ConnectedProxies Number of proxy nodes connected in this cluster
	ConnectedProxies int `json:"connected_proxies"`
}

ProxyCluster A proxy cluster represents a group of proxy nodes serving the same address

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 PutApiDnsZonesZoneIdJSONRequestBody added in v0.63.0

type PutApiDnsZonesZoneIdJSONRequestBody = ZoneRequest

PutApiDnsZonesZoneIdJSONRequestBody defines body for PutApiDnsZonesZoneId for application/json ContentType.

type PutApiDnsZonesZoneIdRecordsRecordIdJSONRequestBody added in v0.63.0

type PutApiDnsZonesZoneIdRecordsRecordIdJSONRequestBody = DNSRecordRequest

PutApiDnsZonesZoneIdRecordsRecordIdJSONRequestBody defines body for PutApiDnsZonesZoneIdRecordsRecordId for application/json ContentType.

type PutApiGroupsGroupIdJSONRequestBody

type PutApiGroupsGroupIdJSONRequestBody = GroupRequest

PutApiGroupsGroupIdJSONRequestBody defines body for PutApiGroupsGroupId for application/json ContentType.

type PutApiIdentityProvidersIdpIdJSONRequestBody added in v0.62.0

type PutApiIdentityProvidersIdpIdJSONRequestBody = IdentityProviderRequest

PutApiIdentityProvidersIdpIdJSONRequestBody defines body for PutApiIdentityProvidersIdpId for application/json ContentType.

type PutApiIngressPeersIngressPeerIdJSONRequestBody

type PutApiIngressPeersIngressPeerIdJSONRequestBody = IngressPeerUpdateRequest

PutApiIngressPeersIngressPeerIdJSONRequestBody defines body for PutApiIngressPeersIngressPeerId for application/json ContentType.

type PutApiIntegrationsBillingSubscriptionJSONBody added in v0.65.0

type PutApiIntegrationsBillingSubscriptionJSONBody struct {
	// PlanTier The plan tier to change the subscription to.
	PlanTier *string `json:"plan_tier,omitempty"`

	// PriceID The Price ID to change the subscription to.
	PriceID *string `json:"priceID,omitempty"`
}

PutApiIntegrationsBillingSubscriptionJSONBody defines parameters for PutApiIntegrationsBillingSubscription.

type PutApiIntegrationsBillingSubscriptionJSONRequestBody added in v0.65.0

type PutApiIntegrationsBillingSubscriptionJSONRequestBody PutApiIntegrationsBillingSubscriptionJSONBody

PutApiIntegrationsBillingSubscriptionJSONRequestBody defines body for PutApiIntegrationsBillingSubscription for application/json ContentType.

type PutApiIntegrationsMspTenantsIdInviteJSONBody added in v0.65.0

type PutApiIntegrationsMspTenantsIdInviteJSONBody struct {
	// Value Accept or decline the invitation.
	Value PutApiIntegrationsMspTenantsIdInviteJSONBodyValue `json:"value"`
}

PutApiIntegrationsMspTenantsIdInviteJSONBody defines parameters for PutApiIntegrationsMspTenantsIdInvite.

type PutApiIntegrationsMspTenantsIdInviteJSONBodyValue added in v0.65.0

type PutApiIntegrationsMspTenantsIdInviteJSONBodyValue string

PutApiIntegrationsMspTenantsIdInviteJSONBodyValue defines parameters for PutApiIntegrationsMspTenantsIdInvite.

const (
	PutApiIntegrationsMspTenantsIdInviteJSONBodyValueAccept  PutApiIntegrationsMspTenantsIdInviteJSONBodyValue = "accept"
	PutApiIntegrationsMspTenantsIdInviteJSONBodyValueDecline PutApiIntegrationsMspTenantsIdInviteJSONBodyValue = "decline"
)

Defines values for PutApiIntegrationsMspTenantsIdInviteJSONBodyValue.

type PutApiIntegrationsMspTenantsIdInviteJSONRequestBody added in v0.65.0

type PutApiIntegrationsMspTenantsIdInviteJSONRequestBody PutApiIntegrationsMspTenantsIdInviteJSONBody

PutApiIntegrationsMspTenantsIdInviteJSONRequestBody defines body for PutApiIntegrationsMspTenantsIdInvite for application/json ContentType.

type PutApiIntegrationsMspTenantsIdJSONRequestBody added in v0.65.0

type PutApiIntegrationsMspTenantsIdJSONRequestBody = UpdateTenantRequest

PutApiIntegrationsMspTenantsIdJSONRequestBody defines body for PutApiIntegrationsMspTenantsId 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 PutApiReverseProxiesServicesServiceIdJSONRequestBody added in v0.65.0

type PutApiReverseProxiesServicesServiceIdJSONRequestBody = ServiceRequest

PutApiReverseProxiesServicesServiceIdJSONRequestBody defines body for PutApiReverseProxiesServicesServiceId 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 PutApiUsersUserIdPasswordJSONRequestBody added in v0.64.0

type PutApiUsersUserIdPasswordJSONRequestBody = PasswordChangeRequest

PutApiUsersUserIdPasswordJSONRequestBody defines body for PutApiUsersUserIdPassword 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 ReverseProxyDomain added in v0.65.0

type ReverseProxyDomain struct {
	// Domain Domain name
	Domain string `json:"domain"`

	// Id Domain ID
	Id string `json:"id"`

	// TargetCluster The proxy cluster this domain is validated against (only for custom domains)
	TargetCluster *string `json:"target_cluster,omitempty"`

	// Type Type of Reverse Proxy Domain
	Type ReverseProxyDomainType `json:"type"`

	// Validated Whether the domain has been validated
	Validated bool `json:"validated"`
}

ReverseProxyDomain defines model for ReverseProxyDomain.

type ReverseProxyDomainRequest added in v0.65.0

type ReverseProxyDomainRequest struct {
	// Domain Domain name
	Domain string `json:"domain"`

	// TargetCluster The proxy cluster this domain should be validated against
	TargetCluster string `json:"target_cluster"`
}

ReverseProxyDomainRequest defines model for ReverseProxyDomainRequest.

type ReverseProxyDomainType added in v0.65.0

type ReverseProxyDomainType string

ReverseProxyDomainType Type of Reverse Proxy Domain

const (
	ReverseProxyDomainTypeCustom ReverseProxyDomainType = "custom"
	ReverseProxyDomainTypeFree   ReverseProxyDomainType = "free"
)

Defines values for ReverseProxyDomainType.

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 ScimIntegration added in v0.65.0

type ScimIntegration struct {
	// AuthToken SCIM API token (full on creation, masked otherwise)
	AuthToken string `json:"auth_token"`

	// Enabled Indicates whether the integration is enabled
	Enabled bool `json:"enabled"`

	// GroupPrefixes List of start_with string patterns for groups to sync
	GroupPrefixes []string `json:"group_prefixes"`

	// Id The unique identifier for the integration
	Id int64 `json:"id"`

	// LastSyncedAt Timestamp of when the integration was last synced
	LastSyncedAt time.Time `json:"last_synced_at"`

	// Provider Name of the SCIM identity provider
	Provider string `json:"provider"`

	// UserGroupPrefixes List of start_with string patterns for groups which users to sync
	UserGroupPrefixes []string `json:"user_group_prefixes"`
}

ScimIntegration Represents a SCIM IDP integration

type ScimTokenResponse added in v0.65.0

type ScimTokenResponse struct {
	// AuthToken The newly generated SCIM API token
	AuthToken string `json:"auth_token"`
}

ScimTokenResponse Response containing the regenerated SCIM token

type SentinelOneMatchAttributes added in v0.65.0

type SentinelOneMatchAttributes struct {
	// ActiveThreats The maximum allowed number of active threats on the agent
	ActiveThreats *int `json:"active_threats,omitempty"`

	// EncryptedApplications Whether disk encryption is enabled on the agent
	EncryptedApplications *bool `json:"encrypted_applications,omitempty"`

	// FirewallEnabled Whether the agent firewall is enabled
	FirewallEnabled *bool `json:"firewall_enabled,omitempty"`

	// Infected Whether the agent is currently flagged as infected
	Infected *bool `json:"infected,omitempty"`

	// IsActive Whether the agent has been recently active and reporting
	IsActive *bool `json:"is_active,omitempty"`

	// IsUpToDate Whether the agent is running the latest available version
	IsUpToDate *bool `json:"is_up_to_date,omitempty"`

	// NetworkStatus The current network connectivity status of the device
	NetworkStatus *SentinelOneMatchAttributesNetworkStatus `json:"network_status,omitempty"`

	// OperationalState The current operational state of the agent
	OperationalState *string `json:"operational_state,omitempty"`
}

SentinelOneMatchAttributes Attribute conditions to match when approving agents

type SentinelOneMatchAttributesNetworkStatus added in v0.65.0

type SentinelOneMatchAttributesNetworkStatus string

SentinelOneMatchAttributesNetworkStatus The current network connectivity status of the device

const (
	SentinelOneMatchAttributesNetworkStatusConnected    SentinelOneMatchAttributesNetworkStatus = "connected"
	SentinelOneMatchAttributesNetworkStatusDisconnected SentinelOneMatchAttributesNetworkStatus = "disconnected"
	SentinelOneMatchAttributesNetworkStatusQuarantined  SentinelOneMatchAttributesNetworkStatus = "quarantined"
)

Defines values for SentinelOneMatchAttributesNetworkStatus.

type Service added in v0.65.0

type Service struct {
	Auth ServiceAuthConfig `json:"auth"`

	// Domain Domain for the service
	Domain string `json:"domain"`

	// Enabled Whether the service is enabled
	Enabled bool `json:"enabled"`

	// Id Service ID
	Id   string      `json:"id"`
	Meta ServiceMeta `json:"meta"`

	// Name Service name
	Name string `json:"name"`

	// PassHostHeader When true, the original client Host header is passed through to the backend instead of being rewritten to the backend's address
	PassHostHeader *bool `json:"pass_host_header,omitempty"`

	// ProxyCluster The proxy cluster handling this service (derived from domain)
	ProxyCluster *string `json:"proxy_cluster,omitempty"`

	// RewriteRedirects When true, Location headers in backend responses are rewritten to replace the backend address with the public-facing domain
	RewriteRedirects *bool `json:"rewrite_redirects,omitempty"`

	// Targets List of target backends for this service
	Targets []ServiceTarget `json:"targets"`
}

Service defines model for Service.

type ServiceAuthConfig added in v0.65.0

type ServiceAuthConfig struct {
	BearerAuth   *BearerAuthConfig   `json:"bearer_auth,omitempty"`
	LinkAuth     *LinkAuthConfig     `json:"link_auth,omitempty"`
	PasswordAuth *PasswordAuthConfig `json:"password_auth,omitempty"`
	PinAuth      *PINAuthConfig      `json:"pin_auth,omitempty"`
}

ServiceAuthConfig defines model for ServiceAuthConfig.

type ServiceMeta added in v0.65.0

type ServiceMeta struct {
	// CertificateIssuedAt Timestamp when the certificate was issued (empty if not yet issued)
	CertificateIssuedAt *time.Time `json:"certificate_issued_at,omitempty"`

	// CreatedAt Timestamp when the service was created
	CreatedAt time.Time `json:"created_at"`

	// Status Current status of the service
	Status ServiceMetaStatus `json:"status"`
}

ServiceMeta defines model for ServiceMeta.

type ServiceMetaStatus added in v0.65.0

type ServiceMetaStatus string

ServiceMetaStatus Current status of the service

const (
	ServiceMetaStatusActive             ServiceMetaStatus = "active"
	ServiceMetaStatusCertificateFailed  ServiceMetaStatus = "certificate_failed"
	ServiceMetaStatusCertificatePending ServiceMetaStatus = "certificate_pending"
	ServiceMetaStatusError              ServiceMetaStatus = "error"
	ServiceMetaStatusPending            ServiceMetaStatus = "pending"
	ServiceMetaStatusTunnelNotCreated   ServiceMetaStatus = "tunnel_not_created"
)

Defines values for ServiceMetaStatus.

type ServiceRequest added in v0.65.0

type ServiceRequest struct {
	Auth ServiceAuthConfig `json:"auth"`

	// Domain Domain for the service
	Domain string `json:"domain"`

	// Enabled Whether the service is enabled
	Enabled bool `json:"enabled"`

	// Name Service name
	Name string `json:"name"`

	// PassHostHeader When true, the original client Host header is passed through to the backend instead of being rewritten to the backend's address
	PassHostHeader *bool `json:"pass_host_header,omitempty"`

	// RewriteRedirects When true, Location headers in backend responses are rewritten to replace the backend address with the public-facing domain
	RewriteRedirects *bool `json:"rewrite_redirects,omitempty"`

	// Targets List of target backends for this service
	Targets []ServiceTarget `json:"targets"`
}

ServiceRequest defines model for ServiceRequest.

type ServiceTarget added in v0.65.0

type ServiceTarget struct {
	// Enabled Whether this target is enabled
	Enabled bool `json:"enabled"`

	// Host Backend ip or domain for this target
	Host *string `json:"host,omitempty"`

	// Path URL path prefix for this target
	Path *string `json:"path,omitempty"`

	// Port Backend port for this target. Use 0 or omit to use the scheme default (80 for http, 443 for https).
	Port int `json:"port"`

	// Protocol Protocol to use when connecting to the backend
	Protocol ServiceTargetProtocol `json:"protocol"`

	// TargetId Target ID
	TargetId string `json:"target_id"`

	// TargetType Target type (e.g., "peer", "resource")
	TargetType ServiceTargetTargetType `json:"target_type"`
}

ServiceTarget defines model for ServiceTarget.

type ServiceTargetProtocol added in v0.65.0

type ServiceTargetProtocol string

ServiceTargetProtocol Protocol to use when connecting to the backend

const (
	ServiceTargetProtocolHttp  ServiceTargetProtocol = "http"
	ServiceTargetProtocolHttps ServiceTargetProtocol = "https"
)

Defines values for ServiceTargetProtocol.

type ServiceTargetTargetType added in v0.65.0

type ServiceTargetTargetType string

ServiceTargetTargetType Target type (e.g., "peer", "resource")

const (
	ServiceTargetTargetTypePeer     ServiceTargetTargetType = "peer"
	ServiceTargetTargetTypeResource ServiceTargetTargetType = "resource"
)

Defines values for ServiceTargetTargetType.

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 SetupRequest added in v0.62.0

type SetupRequest struct {
	// Email Email address for the admin user
	Email string `json:"email"`

	// Name Display name for the admin user (defaults to email if not provided)
	Name string `json:"name"`

	// Password Password for the admin user (minimum 8 characters)
	Password string `json:"password"`
}

SetupRequest Request to set up the initial admin user

type SetupResponse added in v0.62.0

type SetupResponse struct {
	// Email Email address of the created user
	Email string `json:"email"`

	// UserId The ID of the created user
	UserId string `json:"user_id"`
}

SetupResponse Response after successful instance setup

type Subscription added in v0.65.0

type Subscription struct {
	// Active Indicates whether the subscription is active or not.
	Active bool `json:"active"`

	// Currency Currency code of the subscription.
	Currency string `json:"currency"`

	// Features List of features included in the subscription.
	Features *[]string `json:"features,omitempty"`

	// PlanTier The tier of the plan for the subscription.
	PlanTier string `json:"plan_tier"`

	// Price Price amount in minor units (e.g., cents).
	Price int `json:"price"`

	// PriceId Unique identifier for the price of the subscription.
	PriceId string `json:"price_id"`

	// Provider The provider of the subscription.
	Provider string `json:"provider"`

	// RemainingTrial The remaining time for the trial period, in seconds.
	RemainingTrial *int `json:"remaining_trial,omitempty"`

	// UpdatedAt The date and time when the subscription was last updated.
	UpdatedAt time.Time `json:"updated_at"`
}

Subscription defines model for Subscription.

type TenantGroupResponse added in v0.65.0

type TenantGroupResponse struct {
	// Id The Group ID
	Id string `json:"id"`

	// Role The Role name
	Role string `json:"role"`
}

TenantGroupResponse defines model for TenantGroupResponse.

type TenantResponse added in v0.65.0

type TenantResponse struct {
	// ActivatedAt The date and time when the tenant was activated.
	ActivatedAt *time.Time `json:"activated_at,omitempty"`

	// CreatedAt The date and time when the tenant was created.
	CreatedAt time.Time `json:"created_at"`

	// DnsChallenge The DNS challenge to set in a TXT record
	DnsChallenge string `json:"dns_challenge"`

	// Domain The tenant account domain
	Domain string `json:"domain"`

	// Groups MSP users Groups that can access the Tenant and Roles to assume
	Groups []TenantGroupResponse `json:"groups"`

	// Id The updated MSP tenant account ID
	Id string `json:"id"`

	// InvitedAt The date and time when the existing tenant was invited.
	InvitedAt *time.Time `json:"invited_at,omitempty"`

	// Name The name for the MSP tenant
	Name string `json:"name"`

	// Status The status of the tenant
	Status TenantResponseStatus `json:"status"`

	// UpdatedAt The date and time when the tenant was last updated.
	UpdatedAt time.Time `json:"updated_at"`
}

TenantResponse defines model for TenantResponse.

type TenantResponseStatus added in v0.65.0

type TenantResponseStatus string

TenantResponseStatus The status of the tenant

const (
	TenantResponseStatusActive   TenantResponseStatus = "active"
	TenantResponseStatusExisting TenantResponseStatus = "existing"
	TenantResponseStatusInvited  TenantResponseStatus = "invited"
	TenantResponseStatusPending  TenantResponseStatus = "pending"
)

Defines values for TenantResponseStatus.

type UpdateEDRIntegrationJSONRequestBody added in v0.65.0

type UpdateEDRIntegrationJSONRequestBody = EDRIntuneRequest

UpdateEDRIntegrationJSONRequestBody defines body for UpdateEDRIntegration for application/json ContentType.

type UpdateFalconEDRIntegrationJSONRequestBody added in v0.65.0

type UpdateFalconEDRIntegrationJSONRequestBody = EDRFalconRequest

UpdateFalconEDRIntegrationJSONRequestBody defines body for UpdateFalconEDRIntegration for application/json ContentType.

type UpdateHuntressEDRIntegrationJSONRequestBody added in v0.65.0

type UpdateHuntressEDRIntegrationJSONRequestBody = EDRHuntressRequest

UpdateHuntressEDRIntegrationJSONRequestBody defines body for UpdateHuntressEDRIntegration for application/json ContentType.

type UpdateIntegrationJSONRequestBody added in v0.65.0

type UpdateIntegrationJSONRequestBody = CreateIntegrationRequest

UpdateIntegrationJSONRequestBody defines body for UpdateIntegration for application/json ContentType.

type UpdateSCIMIntegrationJSONRequestBody added in v0.65.0

type UpdateSCIMIntegrationJSONRequestBody = UpdateScimIntegrationRequest

UpdateSCIMIntegrationJSONRequestBody defines body for UpdateSCIMIntegration for application/json ContentType.

type UpdateScimIntegrationRequest added in v0.65.0

type UpdateScimIntegrationRequest struct {
	// Enabled Indicates whether the integration is enabled
	Enabled *bool `json:"enabled,omitempty"`

	// GroupPrefixes List of start_with string patterns for groups to sync
	GroupPrefixes *[]string `json:"group_prefixes,omitempty"`

	// UserGroupPrefixes List of start_with string patterns for groups which users to sync
	UserGroupPrefixes *[]string `json:"user_group_prefixes,omitempty"`
}

UpdateScimIntegrationRequest Request payload for updating an SCIM IDP integration

type UpdateSentinelOneEDRIntegrationJSONRequestBody added in v0.65.0

type UpdateSentinelOneEDRIntegrationJSONRequestBody = EDRSentinelOneRequest

UpdateSentinelOneEDRIntegrationJSONRequestBody defines body for UpdateSentinelOneEDRIntegration for application/json ContentType.

type UpdateTenantRequest added in v0.65.0

type UpdateTenantRequest struct {
	// Groups MSP users Groups that can access the Tenant and Roles to assume
	Groups []TenantGroupResponse `json:"groups"`

	// Name The name for the MSP tenant
	Name string `json:"name"`
}

UpdateTenantRequest defines model for UpdateTenantRequest.

type UsageStats added in v0.65.0

type UsageStats struct {
	// ActivePeers Number of active peers.
	ActivePeers int64 `json:"active_peers"`

	// ActiveUsers Number of active users.
	ActiveUsers int64 `json:"active_users"`

	// TotalPeers Total number of peers.
	TotalPeers int64 `json:"total_peers"`

	// TotalUsers Total number of users.
	TotalUsers int64 `json:"total_users"`
}

UsageStats defines model for UsageStats.

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"`

	// IdpId Identity provider ID (connector ID) that the user authenticated with. Only populated for users with Dex-encoded user IDs.
	IdpId *string `json:"idp_id,omitempty"`

	// 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"`

	// Password User's password. Only present when user is created (create user endpoint is called) and only when IdP supports user creation with password.
	Password *string `json:"password,omitempty"`

	// 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 UserInvite added in v0.64.2

type UserInvite struct {
	// AutoGroups Group IDs to auto-assign to peers registered by this user
	AutoGroups []string `json:"auto_groups"`

	// CreatedAt Invite creation time
	CreatedAt time.Time `json:"created_at"`

	// Email User's email address
	Email string `json:"email"`

	// Expired Whether the invite has expired
	Expired bool `json:"expired"`

	// ExpiresAt Invite expiration time
	ExpiresAt time.Time `json:"expires_at"`

	// Id Invite ID
	Id string `json:"id"`

	// InviteToken The invite link to be shared with the user. Only returned when the invite is created or regenerated.
	InviteToken *string `json:"invite_token,omitempty"`

	// Name User's full name
	Name string `json:"name"`

	// Role User's NetBird account role
	Role string `json:"role"`
}

UserInvite A user invite

type UserInviteAcceptRequest added in v0.64.2

type UserInviteAcceptRequest struct {
	// Password The password the user wants to set. Must be at least 8 characters long and contain at least one uppercase letter, one digit, and one special character (any character that is not a letter or digit, including spaces).
	Password string `json:"password"`
}

UserInviteAcceptRequest Request to accept an invite and set password

type UserInviteAcceptResponse added in v0.64.2

type UserInviteAcceptResponse struct {
	// Success Whether the invite was accepted successfully
	Success bool `json:"success"`
}

UserInviteAcceptResponse Response after accepting an invite

type UserInviteCreateRequest added in v0.64.2

type UserInviteCreateRequest 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"`

	// ExpiresIn Invite expiration time in seconds (default 72 hours)
	ExpiresIn *int `json:"expires_in,omitempty"`

	// Name User's full name
	Name string `json:"name"`

	// Role User's NetBird account role
	Role string `json:"role"`
}

UserInviteCreateRequest Request to create a user invite link

type UserInviteInfo added in v0.64.2

type UserInviteInfo struct {
	// Email User's email address
	Email string `json:"email"`

	// ExpiresAt Invite expiration time
	ExpiresAt time.Time `json:"expires_at"`

	// InvitedBy Name of the user who sent the invite
	InvitedBy string `json:"invited_by"`

	// Name User's full name
	Name string `json:"name"`

	// Valid Whether the invite is still valid (not expired)
	Valid bool `json:"valid"`
}

UserInviteInfo Public information about an invite

type UserInviteRegenerateRequest added in v0.64.2

type UserInviteRegenerateRequest struct {
	// ExpiresIn Invite expiration time in seconds (default 72 hours)
	ExpiresIn *int `json:"expires_in,omitempty"`
}

UserInviteRegenerateRequest Request to regenerate an invite link

type UserInviteRegenerateResponse added in v0.64.2

type UserInviteRegenerateResponse struct {
	// InviteExpiresAt New invite expiration time
	InviteExpiresAt time.Time `json:"invite_expires_at"`

	// InviteToken The new invite token
	InviteToken string `json:"invite_token"`
}

UserInviteRegenerateResponse Response after regenerating an invite

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.

type WorkloadRequest added in v0.64.0

type WorkloadRequest struct {
	// contains filtered or unexported fields
}

WorkloadRequest defines model for WorkloadRequest.

func (WorkloadRequest) AsBundleWorkloadRequest added in v0.64.0

func (t WorkloadRequest) AsBundleWorkloadRequest() (BundleWorkloadRequest, error)

AsBundleWorkloadRequest returns the union data inside the WorkloadRequest as a BundleWorkloadRequest

func (WorkloadRequest) Discriminator added in v0.64.0

func (t WorkloadRequest) Discriminator() (string, error)

func (*WorkloadRequest) FromBundleWorkloadRequest added in v0.64.0

func (t *WorkloadRequest) FromBundleWorkloadRequest(v BundleWorkloadRequest) error

FromBundleWorkloadRequest overwrites any union data inside the WorkloadRequest as the provided BundleWorkloadRequest

func (WorkloadRequest) MarshalJSON added in v0.64.0

func (t WorkloadRequest) MarshalJSON() ([]byte, error)

func (*WorkloadRequest) MergeBundleWorkloadRequest added in v0.64.0

func (t *WorkloadRequest) MergeBundleWorkloadRequest(v BundleWorkloadRequest) error

MergeBundleWorkloadRequest performs a merge with any union data inside the WorkloadRequest, using the provided BundleWorkloadRequest

func (*WorkloadRequest) UnmarshalJSON added in v0.64.0

func (t *WorkloadRequest) UnmarshalJSON(b []byte) error

func (WorkloadRequest) ValueByDiscriminator added in v0.64.0

func (t WorkloadRequest) ValueByDiscriminator() (interface{}, error)

type WorkloadResponse added in v0.64.0

type WorkloadResponse struct {
	// contains filtered or unexported fields
}

WorkloadResponse defines model for WorkloadResponse.

func (WorkloadResponse) AsBundleWorkloadResponse added in v0.64.0

func (t WorkloadResponse) AsBundleWorkloadResponse() (BundleWorkloadResponse, error)

AsBundleWorkloadResponse returns the union data inside the WorkloadResponse as a BundleWorkloadResponse

func (WorkloadResponse) Discriminator added in v0.64.0

func (t WorkloadResponse) Discriminator() (string, error)

func (*WorkloadResponse) FromBundleWorkloadResponse added in v0.64.0

func (t *WorkloadResponse) FromBundleWorkloadResponse(v BundleWorkloadResponse) error

FromBundleWorkloadResponse overwrites any union data inside the WorkloadResponse as the provided BundleWorkloadResponse

func (WorkloadResponse) MarshalJSON added in v0.64.0

func (t WorkloadResponse) MarshalJSON() ([]byte, error)

func (*WorkloadResponse) MergeBundleWorkloadResponse added in v0.64.0

func (t *WorkloadResponse) MergeBundleWorkloadResponse(v BundleWorkloadResponse) error

MergeBundleWorkloadResponse performs a merge with any union data inside the WorkloadResponse, using the provided BundleWorkloadResponse

func (*WorkloadResponse) UnmarshalJSON added in v0.64.0

func (t *WorkloadResponse) UnmarshalJSON(b []byte) error

func (WorkloadResponse) ValueByDiscriminator added in v0.64.0

func (t WorkloadResponse) ValueByDiscriminator() (interface{}, error)

type WorkloadType added in v0.64.0

type WorkloadType string

WorkloadType Identifies the type of workload the job will execute. Currently only `"bundle"` is supported.

const (
	WorkloadTypeBundle WorkloadType = "bundle"
)

Defines values for WorkloadType.

type Zone added in v0.63.0

type Zone struct {
	// DistributionGroups Group IDs that defines groups of peers that will resolve this zone
	DistributionGroups []string `json:"distribution_groups"`

	// Domain Zone domain (FQDN)
	Domain string `json:"domain"`

	// EnableSearchDomain Enable this zone as a search domain
	EnableSearchDomain bool `json:"enable_search_domain"`

	// Enabled Zone status
	Enabled bool `json:"enabled"`

	// Id Zone ID
	Id string `json:"id"`

	// Name Zone name identifier
	Name string `json:"name"`

	// Records DNS records associated with this zone
	Records []DNSRecord `json:"records"`
}

Zone defines model for Zone.

type ZoneRequest added in v0.63.0

type ZoneRequest struct {
	// DistributionGroups Group IDs that defines groups of peers that will resolve this zone
	DistributionGroups []string `json:"distribution_groups"`

	// Domain Zone domain (FQDN)
	Domain string `json:"domain"`

	// EnableSearchDomain Enable this zone as a search domain
	EnableSearchDomain bool `json:"enable_search_domain"`

	// Enabled Zone status
	Enabled *bool `json:"enabled,omitempty"`

	// Name Zone name identifier
	Name string `json:"name"`
}

ZoneRequest defines model for ZoneRequest.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL