Documentation
¶
Index ¶
- func ExtractStarlarkTemplateName(layout string) string
- func IsStarlarkLayout(layout string) bool
- type AddressObjectGenerator
- type AddressObjectGeneratorConfig
- type AddressObjectResult
- type CommonTemplatesV4
- type GeneratorContext
- type GeneratorInput
- type NatNameGenerator
- type NatObjectGenerator
- type NatObjectGeneratorConfig
- type NatPolicyGenerator
- type NatPolicyGeneratorConfig
- type NatPolicyResult
- func (r *NatPolicyResult) AppendCLIString(cli string)
- func (r *NatPolicyResult) AppendKeys(keys []string)
- func (r *NatPolicyResult) GetCLIString() string
- func (r *NatPolicyResult) GetDestinationObjects() []string
- func (r *NatPolicyResult) GetFlyObject() map[string]string
- func (r *NatPolicyResult) GetKeys() []string
- func (r *NatPolicyResult) GetServiceObjects() []string
- func (r *NatPolicyResult) GetSourceObjects() []string
- func (r *NatPolicyResult) SetDestinationObjects(objs []string)
- func (r *NatPolicyResult) SetFlyObject(category, value string)
- func (r *NatPolicyResult) SetServiceObjects(objs []string)
- func (r *NatPolicyResult) SetSourceObjects(objs []string)
- type ObjectResultMerger
- type PolicyGenerator
- type PolicyGeneratorConfig
- type PolicyNameGenerator
- type PolicyResult
- func (r *PolicyResult) AppendCLIString(cli string)
- func (r *PolicyResult) AppendKeys(keys []string)
- func (r *PolicyResult) GetCLIString() string
- func (r *PolicyResult) GetDestinationObjects() []string
- func (r *PolicyResult) GetFlyObject() map[string]string
- func (r *PolicyResult) GetKeys() []string
- func (r *PolicyResult) GetServiceObjects() []string
- func (r *PolicyResult) GetSourceObjects() []string
- func (r *PolicyResult) SetDestinationObjects(objs []string)
- func (r *PolicyResult) SetFlyObject(category, value string)
- func (r *PolicyResult) SetServiceObjects(objs []string)
- func (r *PolicyResult) SetSourceObjects(objs []string)
- type PolicyReuseMode
- type ReuseResult
- type ServiceNameGenerator
- func (g *ServiceNameGenerator) Generate(svc *service.Service, template string, metaData map[string]interface{}) (keys.Keys, bool, error)
- func (g *ServiceNameGenerator) GenerateFromEntry(svcEntry service.ServiceEntry, template string, ...) (keys.Keys, bool, error)
- func (g *ServiceNameGenerator) GenerateGroupName(template string, metaData map[string]interface{}) (keys.Keys, bool, error)
- type ServiceObjectGenerator
- type ServiceObjectGeneratorConfig
- type ServiceObjectResult
- type SnatPoolResult
- type StarlarkTemplatesAdapter
- func (a *StarlarkTemplatesAdapter) ExecuteStarlarkCode(code string, intent *policy.Intent, meta map[string]interface{}) (string, error)
- func (a *StarlarkTemplatesAdapter) GetLayout(key keys.Keys) string
- func (a *StarlarkTemplatesAdapter) GetVendorName() string
- func (a *StarlarkTemplatesAdapter) RenderStarlarkTemplate(templateName string, intent *policy.Intent, meta map[string]interface{}) (string, error)
- type TemplatesV4
- type VipMipNameGenerator
- type VipMipResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractStarlarkTemplateName ¶
ExtractStarlarkTemplateName 从 Starlark 标记中提取模板名称
func IsStarlarkLayout ¶
IsStarlarkLayout 检查 layout 是否是 Starlark 模板标记
Types ¶
type AddressObjectGenerator ¶
type AddressObjectGenerator struct {
// contains filtered or unexported fields
}
AddressObjectGenerator 地址对象生成器
func NewAddressObjectGenerator ¶
func NewAddressObjectGenerator(ctx *GeneratorContext, config AddressObjectGeneratorConfig) *AddressObjectGenerator
NewAddressObjectGenerator 创建地址对象生成器
func (*AddressObjectGenerator) Generate ¶
func (g *AddressObjectGenerator) Generate(intent *policy.Intent, isSource bool, ctx *firewall.PolicyContext) (*AddressObjectResult, error)
Generate 生成地址对象 isSource: true 表示源地址对象,false 表示目标地址对象
type AddressObjectGeneratorConfig ¶
type AddressObjectGeneratorConfig struct {
UseSourceObject bool
UseDestinationObject bool
ReuseAddressObject bool
PreferMultiSourceAddressObject bool // 如果为true,优先使用多地址object而不是地址组
PreferMultiDestinationAddressObject bool // 如果为true,优先使用多地址object而不是地址组
SourceAddressGroupStyle string // 源地址组样式:object 或 inline
DestinationAddressGroupStyle string // 目标地址组样式:object 或 inline
}
AddressObjectGeneratorConfig 地址对象生成器配置
type AddressObjectResult ¶
type AddressObjectResult struct {
ObjectNames []string // 对象名称列表
IsGroup bool // 是否是地址组
CLIString string // 生成的CLI
Keys []string // 对象键列表
}
AddressObjectResult 地址对象生成结果
type CommonTemplatesV4 ¶
type CommonTemplatesV4 struct {
// contains filtered or unexported fields
}
CommonTemplatesV4 V4版本的通用模板实现
func NewCommonTemplatesV4 ¶
func NewCommonTemplatesV4(node firewall.FirewallNode, templateDir string, metaData map[string]interface{}) (*CommonTemplatesV4, error)
NewCommonTemplatesV4 创建新的V4通用模板实例(使用 Starlark 模板) node: 防火墙节点 templateDir: Starlark 模板文件所在目录(如 "pkg/nodemap/node/device/firewall/common/v4/templates") metaData: 元数据
func (*CommonTemplatesV4) MakeNatPolicyV4 ¶
func (ct *CommonTemplatesV4) MakeNatPolicyV4(from, to api.Port, intent *policy.Intent, ctx *firewall.PolicyContext, metaData map[string]interface{}) (*NatPolicyResult, error)
MakeNatPolicyV4 生成NAT策略(V4版本,使用struct组织)
func (*CommonTemplatesV4) MakePolicyV4 ¶
func (ct *CommonTemplatesV4) MakePolicyV4(from, to api.Port, intent *policy.Intent, ctx *firewall.PolicyContext, metaData map[string]interface{}) (*PolicyResult, error)
MakePolicyV4 生成安全策略(V4版本,使用struct组织)
type GeneratorContext ¶
type GeneratorContext struct {
Node firewall.FirewallNode
Templates TemplatesV4
MetaData map[string]interface{}
}
GeneratorContext 生成器上下文,包含所有生成器需要的共享资源
type GeneratorInput ¶
type GeneratorInput struct {
Intent *policy.Intent
FromPort api.Port
ToPort api.Port
FromZone string
ToZone string
FromInterface string
ToInterface string
FromArea string
ToArea string
IsSourceStubArea bool
IsDestinationStubArea bool
Context *firewall.PolicyContext
}
GeneratorInput 生成器输入参数
type NatNameGenerator ¶
type NatNameGenerator struct {
// contains filtered or unexported fields
}
NatNameGenerator NAT策略名称生成器
func NewNatNameGenerator ¶
func NewNatNameGenerator(ctx *GeneratorContext) *NatNameGenerator
NewNatNameGenerator 创建NAT策略名称生成器
type NatObjectGenerator ¶
type NatObjectGenerator struct {
// contains filtered or unexported fields
}
NatObjectGenerator NAT对象生成器(VIP/MIP/SNAT_POOL)
func NewNatObjectGenerator ¶
func NewNatObjectGenerator(ctx *GeneratorContext, config NatObjectGeneratorConfig) *NatObjectGenerator
NewNatObjectGenerator 创建NAT对象生成器
func (*NatObjectGenerator) Generate ¶
func (g *NatObjectGenerator) Generate(intent *policy.Intent, fromZone, toZone string, from, to api.Port, ctx *firewall.PolicyContext) (*VipMipResult, *SnatPoolResult, error)
Generate 生成NAT对象
type NatObjectGeneratorConfig ¶
type NatObjectGeneratorConfig struct {
NatType string // "DNAT" 或 "SNAT"
DnatObjectType string // "VIP", "MIP", "NETWORK_OBJECT", "INLINE"
SnatPoolType string // "SNAT_POOL", "INTERFACE", "NETWORK_OBJECT", "INLINE"
}
NatObjectGeneratorConfig NAT对象生成器配置
type NatPolicyGenerator ¶
type NatPolicyGenerator struct {
// contains filtered or unexported fields
}
NatPolicyGenerator NAT策略生成器
func NewNatPolicyGenerator ¶
func NewNatPolicyGenerator(ctx *GeneratorContext, config NatPolicyGeneratorConfig) *NatPolicyGenerator
NewNatPolicyGenerator 创建NAT策略生成器
func (*NatPolicyGenerator) Generate ¶
func (g *NatPolicyGenerator) Generate(input *GeneratorInput) (*NatPolicyResult, error)
Generate 生成NAT策略
type NatPolicyGeneratorConfig ¶
type NatPolicyGeneratorConfig struct {
NatName string
NatNameTemplate string
NatId string
PolicyId string
NatType string
Enable bool
Description string
NatStyle string // "twice" 或 "object" (仅ASA)
AddressObjectConfig AddressObjectGeneratorConfig
ServiceObjectConfig ServiceObjectGeneratorConfig
NatObjectConfig NatObjectGeneratorConfig
RealPortServiceObject bool
IsSourcePort bool
}
NatPolicyGeneratorConfig NAT策略生成器配置
type NatPolicyResult ¶
type NatPolicyResult struct {
NatName string // NAT策略名称
NatType string // NAT类型:DNAT 或 SNAT
CLIString string // 生成的CLI(包含所有CLI,用于向后兼容)
VipMipName string // VIP/MIP对象名称(DNAT)
SnatPoolName string // SNAT_POOL名称(SNAT)
SnatPoolId string // SNAT_POOL ID(SNAT,用于某些防火墙如USG,可能与SnatPoolName不同)
SourceObjects []string // 源地址对象名称列表(如果生成)
DestinationObjects []string // 目标地址对象名称列表(如果生成)
ServiceObjects []string // 服务对象名称列表(如果生成)
Keys []string // 对象键列表(包含所有生成的对象)
IsReused bool // 是否复用了现有VIP/MIP/POOL
IsIPProtocol bool // 是否是IP协议(所有协议)
FlyObject map[string]string // 分离后的CLI对象(NETWORK, SERVICE, NAT, VIP, POOL等)
}
NatPolicyResult NAT策略生成结果
func (*NatPolicyResult) AppendCLIString ¶
func (r *NatPolicyResult) AppendCLIString(cli string)
func (*NatPolicyResult) AppendKeys ¶
func (r *NatPolicyResult) AppendKeys(keys []string)
func (*NatPolicyResult) GetCLIString ¶
func (r *NatPolicyResult) GetCLIString() string
func (*NatPolicyResult) GetDestinationObjects ¶
func (r *NatPolicyResult) GetDestinationObjects() []string
func (*NatPolicyResult) GetFlyObject ¶
func (r *NatPolicyResult) GetFlyObject() map[string]string
实现 ObjectResultMerger 接口 - NatPolicyResult
func (*NatPolicyResult) GetKeys ¶
func (r *NatPolicyResult) GetKeys() []string
func (*NatPolicyResult) GetServiceObjects ¶
func (r *NatPolicyResult) GetServiceObjects() []string
func (*NatPolicyResult) GetSourceObjects ¶
func (r *NatPolicyResult) GetSourceObjects() []string
func (*NatPolicyResult) SetDestinationObjects ¶
func (r *NatPolicyResult) SetDestinationObjects(objs []string)
func (*NatPolicyResult) SetFlyObject ¶
func (r *NatPolicyResult) SetFlyObject(category, value string)
func (*NatPolicyResult) SetServiceObjects ¶
func (r *NatPolicyResult) SetServiceObjects(objs []string)
func (*NatPolicyResult) SetSourceObjects ¶
func (r *NatPolicyResult) SetSourceObjects(objs []string)
type ObjectResultMerger ¶
type ObjectResultMerger interface {
// GetFlyObject 获取 FlyObject map
GetFlyObject() map[string]string
// GetCLIString 获取 CLIString
GetCLIString() string
// SetFlyObject 设置 FlyObject 中的某个类别
SetFlyObject(category, value string)
// AppendCLIString 追加 CLI 字符串
AppendCLIString(cli string)
// GetSourceObjects 获取源地址对象列表
GetSourceObjects() []string
// GetDestinationObjects 获取目标地址对象列表
GetDestinationObjects() []string
// GetServiceObjects 获取服务对象列表
GetServiceObjects() []string
// GetKeys 获取对象键列表
GetKeys() []string
// SetSourceObjects 设置源地址对象列表
SetSourceObjects([]string)
// SetDestinationObjects 设置目标地址对象列表
SetDestinationObjects([]string)
// SetServiceObjects 设置服务对象列表
SetServiceObjects([]string)
// AppendKeys 追加对象键
AppendKeys([]string)
}
ObjectResultMerger 接口,用于统一 PolicyResult 和 NatPolicyResult 的 CLI 合并操作
type PolicyGenerator ¶
type PolicyGenerator struct {
// contains filtered or unexported fields
}
PolicyGenerator 策略生成器
func NewPolicyGenerator ¶
func NewPolicyGenerator(ctx *GeneratorContext, config PolicyGeneratorConfig) *PolicyGenerator
NewPolicyGenerator 创建策略生成器
func (*PolicyGenerator) Generate ¶
func (g *PolicyGenerator) Generate(input *GeneratorInput) (*PolicyResult, error)
Generate 生成策略
type PolicyGeneratorConfig ¶
type PolicyGeneratorConfig struct {
PolicyName string
PolicyNameTemplate string
PolicyId string
Action string
Enable bool
Description string
ReusePolicy bool
ReusePolicyMode PolicyReuseMode // 复用模式:standard 或 enhanced
EmptyZoneMatchesAny bool
AddressObjectConfig AddressObjectGeneratorConfig
ServiceObjectConfig ServiceObjectGeneratorConfig
}
PolicyGeneratorConfig 策略生成器配置
type PolicyNameGenerator ¶
type PolicyNameGenerator struct {
// contains filtered or unexported fields
}
PolicyNameGenerator 策略名称生成器 支持完整的 IDTemplate 语法: - {VAR:name} - 变量替换 - {DATE:name:format} - 日期字段(支持 YYYYMMDD, YYYY-MM-DD 等) - {SEQ:name:width:start:step:MAIN:NORENDER} - 序列号字段
func NewPolicyNameGenerator ¶
func NewPolicyNameGenerator(ctx *GeneratorContext) *PolicyNameGenerator
NewPolicyNameGenerator 创建策略名称生成器
func (*PolicyNameGenerator) Generate ¶
func (g *PolicyNameGenerator) Generate(ctx *firewall.PolicyContext, metaData map[string]interface{}) (mainID int, name string, id string, err error)
Generate 生成策略名称和ID 优先级: 1. metaData 中直接指定的 policy_name 2. 节点实现的 GetPolicyName 方法 3. 使用命名模板生成(支持 IDTemplate 和 DSL)
type PolicyResult ¶
type PolicyResult struct {
PolicyName string // 策略名称
PolicyId string // 策略ID
CLIString string // 生成的CLI(包含所有CLI,用于向后兼容)
SourceObjects []string // 源地址对象名称列表
DestinationObjects []string // 目标地址对象名称列表
ServiceObjects []string // 服务对象名称列表
Keys []string // 对象键列表(包含所有生成的对象)
IsReused bool // 是否复用了现有策略
ReusedPolicyName string // 复用的策略名称(如果复用)
IsIPProtocol bool // 是否是IP协议(所有协议)
FlyObject map[string]string // 分离后的CLI对象(NETWORK, SERVICE, SECURITY_POLICY等)
}
PolicyResult 策略生成结果
func (*PolicyResult) AppendCLIString ¶
func (r *PolicyResult) AppendCLIString(cli string)
func (*PolicyResult) AppendKeys ¶
func (r *PolicyResult) AppendKeys(keys []string)
func (*PolicyResult) GetCLIString ¶
func (r *PolicyResult) GetCLIString() string
func (*PolicyResult) GetDestinationObjects ¶
func (r *PolicyResult) GetDestinationObjects() []string
func (*PolicyResult) GetFlyObject ¶
func (r *PolicyResult) GetFlyObject() map[string]string
实现 ObjectResultMerger 接口 - PolicyResult
func (*PolicyResult) GetKeys ¶
func (r *PolicyResult) GetKeys() []string
func (*PolicyResult) GetServiceObjects ¶
func (r *PolicyResult) GetServiceObjects() []string
func (*PolicyResult) GetSourceObjects ¶
func (r *PolicyResult) GetSourceObjects() []string
func (*PolicyResult) SetDestinationObjects ¶
func (r *PolicyResult) SetDestinationObjects(objs []string)
func (*PolicyResult) SetFlyObject ¶
func (r *PolicyResult) SetFlyObject(category, value string)
func (*PolicyResult) SetServiceObjects ¶
func (r *PolicyResult) SetServiceObjects(objs []string)
func (*PolicyResult) SetSourceObjects ¶
func (r *PolicyResult) SetSourceObjects(objs []string)
type PolicyReuseMode ¶
type PolicyReuseMode string
PolicyReuseMode 策略复用模式
const ( ReuseModeStandard PolicyReuseMode = "standard" // 标准复用(当前实现) ReuseModeEnhanced PolicyReuseMode = "enhanced" // 增强复用(新实现) )
type ReuseResult ¶
type ReuseResult struct {
IsReused bool
ReusedPolicyName string
MatchedPolicy firewall.FirewallPolicy
UpdatedIntent *policy.Intent
SourceGroupUpdated bool // 源地址组是否更新
DestinationGroupUpdated bool // 目标地址组是否更新
ServiceGroupUpdated bool // 服务组是否更新
AddressGroupUpdateCLI string // 地址组更新CLI(如果有)
ServiceGroupUpdateCLI string // 服务组更新CLI(如果有)
GroupUpdateCLI string // 组更新CLI(兼容性字段,包含所有组更新)
ShouldGeneratePolicy bool // 是否需要生成策略CLI
}
ReuseResult 策略复用结果
type ServiceNameGenerator ¶
type ServiceNameGenerator struct {
// contains filtered or unexported fields
}
ServiceNameGenerator 服务对象名称生成器
func NewServiceNameGenerator ¶
func NewServiceNameGenerator(ctx *GeneratorContext) *ServiceNameGenerator
NewServiceNameGenerator 创建服务对象名称生成器
func (*ServiceNameGenerator) Generate ¶
func (g *ServiceNameGenerator) Generate(svc *service.Service, template string, metaData map[string]interface{}) (keys.Keys, bool, error)
Generate 生成服务对象名称(唯一) 返回:生成的名称、是否为新对象、错误
func (*ServiceNameGenerator) GenerateFromEntry ¶
func (g *ServiceNameGenerator) GenerateFromEntry(svcEntry service.ServiceEntry, template string, metaData map[string]interface{}) (keys.Keys, bool, error)
GenerateFromEntry 从服务条目生成名称
func (*ServiceNameGenerator) GenerateGroupName ¶
func (g *ServiceNameGenerator) GenerateGroupName(template string, metaData map[string]interface{}) (keys.Keys, bool, error)
GenerateGroupName 生成服务组名称(唯一)
type ServiceObjectGenerator ¶
type ServiceObjectGenerator struct {
// contains filtered or unexported fields
}
ServiceObjectGenerator 服务对象生成器
func NewServiceObjectGenerator ¶
func NewServiceObjectGenerator(ctx *GeneratorContext, config ServiceObjectGeneratorConfig) *ServiceObjectGenerator
NewServiceObjectGenerator 创建服务对象生成器
func (*ServiceObjectGenerator) Generate ¶
func (g *ServiceObjectGenerator) Generate(intent *policy.Intent, ctx *firewall.PolicyContext) (*ServiceObjectResult, error)
Generate 生成服务对象
type ServiceObjectGeneratorConfig ¶
type ServiceObjectGeneratorConfig struct {
UseServiceObject bool
ReuseServiceObject bool
PreferMultiServiceObject bool // 如果为true,优先使用多服务object而不是服务组
ServiceGroupStyle string // 服务组样式:object 或 inline
}
ServiceObjectGeneratorConfig 服务对象生成器配置
type ServiceObjectResult ¶
type ServiceObjectResult struct {
ObjectNames []string // 对象名称列表
IsGroup bool // 是否是服务组
CLIString string // 生成的CLI
Keys []string // 对象键列表
IsIPProtocol bool // 是否是IP协议(所有协议)
}
ServiceObjectResult 服务对象生成结果
type SnatPoolResult ¶
type SnatPoolResult struct {
PoolName string // 地址池名称
PoolId string // 地址池ID(可选)
CLIString string // 生成的CLI
Keys []string // 对象键列表
Type string // 实现类型:POOL, ADDRESS_OBJECT, INTERFACE, INLINE
}
SnatPoolResult SNAT_POOL生成结果
type StarlarkTemplatesAdapter ¶
type StarlarkTemplatesAdapter struct {
// contains filtered or unexported fields
}
StarlarkTemplatesAdapter Starlark 模板适配器,实现 TemplatesV4 接口
func NewStarlarkTemplatesAdapter ¶
func NewStarlarkTemplatesAdapter(vendorName, templateDir string) (*StarlarkTemplatesAdapter, error)
NewStarlarkTemplatesAdapter 创建 Starlark 模板适配器 vendorName: 厂商名称,如 "secpath", "usg", "dptech" 等 templateDir: Starlark 模板文件所在目录(可以是相对路径或绝对路径)
func NewStarlarkTemplatesAdapterFromNode ¶
func NewStarlarkTemplatesAdapterFromNode(node firewall.FirewallNode, templateDir string) (*StarlarkTemplatesAdapter, error)
NewStarlarkTemplatesAdapterFromNode 从 FirewallNode 创建 Starlark 模板适配器 自动检测厂商名称并加载对应的模板
func (*StarlarkTemplatesAdapter) ExecuteStarlarkCode ¶
func (a *StarlarkTemplatesAdapter) ExecuteStarlarkCode(code string, intent *policy.Intent, meta map[string]interface{}) (string, error)
ExecuteStarlarkCode 直接执行 Starlark 代码字符串 code: Starlark 代码字符串,应该是一个表达式或语句序列,最后需要返回结果 intent: 策略意图 meta: 元数据
支持的代码格式:
顶层语句序列,最后需要有 result 变量: result = meta.get("policy_name", "") + "_" result += items[0].protocol.lower if len(items) > 0 else "" result
函数定义+调用形式: def generate_name(intent, meta): result = meta.get("policy_name", "") return result result = generate_name(intent, meta)
3. 可以使用以下全局变量:
- src, dst, service (直接访问,如 src.EachIPNet())
- intent.src, intent.dst, intent.service (通过 intent 访问)
- meta (元数据字典)
- intent (完整的 Intent 对象)
参考:github.com/netxops/utils/dsl 中的 StarlarkIntentFormat 函数 参考:starlark_intent_cartesian_example.md 中的示例
func (*StarlarkTemplatesAdapter) GetLayout ¶
func (a *StarlarkTemplatesAdapter) GetLayout(key keys.Keys) string
GetLayout 实现 TemplatesV4 接口 返回特殊标记,表示使用 Starlark 模板 key 的格式通常是 "TemplateType" 或 "TemplateType.SubType" 例如: "Policy", "Policy.OneLoop", "AddressObject", "ServiceGroup" 等
func (*StarlarkTemplatesAdapter) GetVendorName ¶
func (a *StarlarkTemplatesAdapter) GetVendorName() string
GetVendorName 获取厂商名称
func (*StarlarkTemplatesAdapter) RenderStarlarkTemplate ¶
func (a *StarlarkTemplatesAdapter) RenderStarlarkTemplate(templateName string, intent *policy.Intent, meta map[string]interface{}) (string, error)
RenderStarlarkTemplate 渲染 Starlark 模板 templateName: 模板名称,如 "Policy", "AddressObject" 等 intent: 策略意图 meta: 元数据
type TemplatesV4 ¶
TemplatesV4 模板接口,提供V4版本的layouts
type VipMipNameGenerator ¶
type VipMipNameGenerator struct {
// contains filtered or unexported fields
}
VipMipNameGenerator VIP/MIP对象名称生成器
func NewVipMipNameGenerator ¶
func NewVipMipNameGenerator(ctx *GeneratorContext) *VipMipNameGenerator
NewVipMipNameGenerator 创建VIP/MIP对象名称生成器
Source Files
¶
- address_name_generator.go
- address_object_generator.go
- helpers.go
- nat_name_generator.go
- nat_object_generator.go
- nat_policy_generator.go
- policy_generator.go
- policy_name_generator.go
- service_name_generator.go
- service_object_generator.go
- templates_starlark_adapter.go
- templates_v4.go
- types.go
- vip_mip_name_generator.go