mirror of
https://github.com/netbirdio/netbird.git
synced 2024-12-14 10:50:45 +01:00
Add policy rule source and destination resource
Signed-off-by: bcmmbaga <bethuelmbaga12@gmail.com>
This commit is contained in:
parent
60ee31df3e
commit
ac06f178fe
@ -143,6 +143,13 @@ const (
|
|||||||
PolicyRuleUpdateProtocolUdp PolicyRuleUpdateProtocol = "udp"
|
PolicyRuleUpdateProtocolUdp PolicyRuleUpdateProtocol = "udp"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Defines values for ResourceType.
|
||||||
|
const (
|
||||||
|
ResourceTypeDomain ResourceType = "domain"
|
||||||
|
ResourceTypeHost ResourceType = "host"
|
||||||
|
ResourceTypeSubnet ResourceType = "subnet"
|
||||||
|
)
|
||||||
|
|
||||||
// Defines values for UserStatus.
|
// Defines values for UserStatus.
|
||||||
const (
|
const (
|
||||||
UserStatusActive UserStatus = "active"
|
UserStatusActive UserStatus = "active"
|
||||||
@ -540,9 +547,6 @@ type NetworkResource struct {
|
|||||||
Type NetworkResourceType `json:"type"`
|
Type NetworkResourceType `json:"type"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// NetworkResourceType Network resource type based of the address
|
|
||||||
type NetworkResourceType string
|
|
||||||
|
|
||||||
// NetworkResourceRequest defines model for NetworkResourceRequest.
|
// NetworkResourceRequest defines model for NetworkResourceRequest.
|
||||||
type NetworkResourceRequest struct {
|
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 a domain like example.com)
|
// 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 a domain like example.com)
|
||||||
@ -555,6 +559,9 @@ type NetworkResourceRequest struct {
|
|||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NetworkResourceType Network resource type based of the address
|
||||||
|
type NetworkResourceType string
|
||||||
|
|
||||||
// NetworkRouter defines model for NetworkRouter.
|
// NetworkRouter defines model for NetworkRouter.
|
||||||
type NetworkRouter struct {
|
type NetworkRouter struct {
|
||||||
// Id Network Router Id
|
// Id Network Router Id
|
||||||
@ -874,9 +881,10 @@ type PolicyRule struct {
|
|||||||
|
|
||||||
// Description Policy rule friendly description
|
// Description Policy rule friendly description
|
||||||
Description *string `json:"description,omitempty"`
|
Description *string `json:"description,omitempty"`
|
||||||
|
DestinationResource *Resource `json:"destinationResource,omitempty"`
|
||||||
|
|
||||||
// Destinations Policy rule destination group IDs
|
// Destinations Policy rule destination group IDs
|
||||||
Destinations []GroupMinimum `json:"destinations"`
|
Destinations *[]GroupMinimum `json:"destinations,omitempty"`
|
||||||
|
|
||||||
// Enabled Policy rule status
|
// Enabled Policy rule status
|
||||||
Enabled bool `json:"enabled"`
|
Enabled bool `json:"enabled"`
|
||||||
@ -895,9 +903,10 @@ type PolicyRule struct {
|
|||||||
|
|
||||||
// Protocol Policy rule type of the traffic
|
// Protocol Policy rule type of the traffic
|
||||||
Protocol PolicyRuleProtocol `json:"protocol"`
|
Protocol PolicyRuleProtocol `json:"protocol"`
|
||||||
|
SourceResource *Resource `json:"sourceResource,omitempty"`
|
||||||
|
|
||||||
// Sources Policy rule source group IDs
|
// Sources Policy rule source group IDs
|
||||||
Sources []GroupMinimum `json:"sources"`
|
Sources *[]GroupMinimum `json:"sources,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PolicyRuleAction Policy rule accept or drops packets
|
// PolicyRuleAction Policy rule accept or drops packets
|
||||||
@ -952,9 +961,10 @@ type PolicyRuleUpdate struct {
|
|||||||
|
|
||||||
// Description Policy rule friendly description
|
// Description Policy rule friendly description
|
||||||
Description *string `json:"description,omitempty"`
|
Description *string `json:"description,omitempty"`
|
||||||
|
DestinationResource *Resource `json:"destinationResource,omitempty"`
|
||||||
|
|
||||||
// Destinations Policy rule destination group IDs
|
// Destinations Policy rule destination group IDs
|
||||||
Destinations []string `json:"destinations"`
|
Destinations *[]string `json:"destinations,omitempty"`
|
||||||
|
|
||||||
// Enabled Policy rule status
|
// Enabled Policy rule status
|
||||||
Enabled bool `json:"enabled"`
|
Enabled bool `json:"enabled"`
|
||||||
@ -973,9 +983,10 @@ type PolicyRuleUpdate struct {
|
|||||||
|
|
||||||
// Protocol Policy rule type of the traffic
|
// Protocol Policy rule type of the traffic
|
||||||
Protocol PolicyRuleUpdateProtocol `json:"protocol"`
|
Protocol PolicyRuleUpdateProtocol `json:"protocol"`
|
||||||
|
SourceResource *Resource `json:"sourceResource,omitempty"`
|
||||||
|
|
||||||
// Sources Policy rule source group IDs
|
// Sources Policy rule source group IDs
|
||||||
Sources []string `json:"sources"`
|
Sources *[]string `json:"sources,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PolicyRuleUpdateAction Policy rule accept or drops packets
|
// PolicyRuleUpdateAction Policy rule accept or drops packets
|
||||||
@ -1049,6 +1060,16 @@ type ProcessCheck struct {
|
|||||||
Processes []Process `json:"processes"`
|
Processes []Process `json:"processes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Resource defines model for Resource.
|
||||||
|
type Resource struct {
|
||||||
|
// Id Resource ID
|
||||||
|
Id string `json:"id"`
|
||||||
|
Type ResourceType `json:"type"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResourceType defines model for ResourceType.
|
||||||
|
type ResourceType string
|
||||||
|
|
||||||
// Route defines model for Route.
|
// Route defines model for Route.
|
||||||
type Route struct {
|
type Route struct {
|
||||||
// AccessControlGroups Access control group identifier associated with route.
|
// AccessControlGroups Access control group identifier associated with route.
|
||||||
|
@ -12,6 +12,11 @@ import (
|
|||||||
"github.com/netbirdio/netbird/management/server/http/api"
|
"github.com/netbirdio/netbird/management/server/http/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Resource struct {
|
||||||
|
ID string
|
||||||
|
Type string
|
||||||
|
}
|
||||||
|
|
||||||
type NetworkResourceType string
|
type NetworkResourceType string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package types
|
package types
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/netbirdio/netbird/management/server/networks/resources/types"
|
||||||
|
)
|
||||||
|
|
||||||
// PolicyUpdateOperationType operation type
|
// PolicyUpdateOperationType operation type
|
||||||
type PolicyUpdateOperationType int
|
type PolicyUpdateOperationType int
|
||||||
|
|
||||||
@ -41,9 +45,15 @@ type PolicyRule struct {
|
|||||||
// Destinations policy destination groups
|
// Destinations policy destination groups
|
||||||
Destinations []string `gorm:"serializer:json"`
|
Destinations []string `gorm:"serializer:json"`
|
||||||
|
|
||||||
|
// DestinationResource policy destination resource that the rule is applied to
|
||||||
|
DestinationResource types.Resource `gorm:"serializer:json"`
|
||||||
|
|
||||||
// Sources policy source groups
|
// Sources policy source groups
|
||||||
Sources []string `gorm:"serializer:json"`
|
Sources []string `gorm:"serializer:json"`
|
||||||
|
|
||||||
|
// SourceResource policy source resource that the rule is applied to
|
||||||
|
SourceResource types.Resource `gorm:"serializer:json"`
|
||||||
|
|
||||||
// Bidirectional define if the rule is applicable in both directions, sources, and destinations
|
// Bidirectional define if the rule is applicable in both directions, sources, and destinations
|
||||||
Bidirectional bool
|
Bidirectional bool
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user