1
0
mirror of https://github.com/lxc/incus.git synced 2026-02-05 18:45:46 +01:00
Files
incus/shared/api/network_integration.go
Lucas Bremgartner 055396ccdd api: Use ConfigMap type for map[string]string
Signed-off-by: Lucas Bremgartner <lucas.bremgartner@futurfusion.io>
2025-09-22 11:18:45 +02:00

72 lines
2.0 KiB
Go

package api
// NetworkIntegrationsPost represents the fields of a new network integration
//
// swagger:model
//
// API extension: network_integrations.
type NetworkIntegrationsPost struct {
NetworkIntegrationPut `yaml:",inline"`
// The name of the integration
// Example: region1
Name string `json:"name" yaml:"name"`
// The type of integration
// Example: ovn
Type string `json:"type" yaml:"type"`
}
// NetworkIntegrationPut represents the modifiable fields of a network integration
//
// swagger:model
//
// API extension: network_integrations.
type NetworkIntegrationPut struct {
// Description of the network integration
// Example: OVN interconnection for region1
Description string `json:"description" yaml:"description"`
// Integration configuration map (refer to doc/network-integrations.md)
// Example: {"user.mykey": "foo"}
Config ConfigMap `json:"config" yaml:"config"`
}
// NetworkIntegration represents a network integration.
//
// swagger:model
//
// API extension: network_integrations.
type NetworkIntegration struct {
NetworkIntegrationPut `yaml:",inline"`
// The name of the integration
// Example: region1
Name string `json:"name" yaml:"name"`
// The type of integration
// Example: ovn
Type string `json:"type" yaml:"type"`
// List of URLs of objects using this network integration
// Read only: true
// Example: ["/1.0/networks/foo", "/1.0/networks/bar"]
UsedBy []string `json:"used_by" yaml:"used_by"` // Resources that use the integration.
}
// Writable converts a full NetworkIntegration struct into a NetworkIntegrationPut struct (filters read-only fields).
func (f *NetworkIntegration) Writable() NetworkIntegrationPut {
return f.NetworkIntegrationPut
}
// NetworkIntegrationPost represents the fields required to rename a network integration
//
// swagger:model
//
// API extension: network_integrations.
type NetworkIntegrationPost struct {
// The new name for the network integration
// Example: region2
Name string `json:"name" yaml:"name"`
}