papi

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2024 License: Apache-2.0 Imports: 19 Imported by: 1

Documentation

Overview

Package papi contains code for exporting properties

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrFetchingActivations is returned when fetching activations of include request failed
	ErrFetchingActivations = errors.New("fetching include activations")
	// ErrFetchingLatestIncludeVersion is returned when fetching latest version of include request failed
	ErrFetchingLatestIncludeVersion = errors.New("fetching latest include version")
	// ErrIncludeNotFound is returned when include couldn't be found
	ErrIncludeNotFound = errors.New("include name not found")
	// ErrIncludeRulesNotFound is returned when include rules couldn't be found
	ErrIncludeRulesNotFound = errors.New("include rules not found")
)
View Source
var (
	// ErrHostnamesNotFound is returned when hostnames couldn't be found
	ErrHostnamesNotFound = errors.New("hostnames not found")
	// ErrPropertyVersionNotFound is returned when property version couldn't be found
	ErrPropertyVersionNotFound = errors.New("property version not found")
	// ErrPropertyVersionNotValid is returned when property version couldn't be found
	ErrPropertyVersionNotValid = errors.New("property version not valid")
	// ErrProductNameNotFound is returned when product couldn't be found
	ErrProductNameNotFound = errors.New("product name not found")
	// ErrFetchingActivationDetails is returned when fetching activation details request failed
	ErrFetchingActivationDetails = errors.New("fetching activations")
	// ErrFetchingHostnameDetails is returned when fetching hostname details request failed
	ErrFetchingHostnameDetails = errors.New("fetching hostnames")
	// ErrFetchingReferencedIncludes is returned when fetching referenced includes request failed
	ErrFetchingReferencedIncludes = errors.New("fetching referenced includes")
	// ErrSavingSnippets is returned when error appeared while saving property snippet JSON files
	ErrSavingSnippets = errors.New("saving snippets")
	// ErrPropertyRulesNotFound is returned when property rules couldn't be found
	ErrPropertyRulesNotFound = errors.New("property rules not found")
	// ErrGroupNotFound is returned when group couldn't be found
	ErrGroupNotFound = errors.New("group not found")
	// ErrPropertyNotFound is returned when property couldn't be found
	ErrPropertyNotFound = errors.New("property not found")
	// ErrSavingFiles is returned when an issue with processing templates occurs
	ErrSavingFiles = errors.New("saving terraform project files")
	// ErrUnsupportedRuleFormat is returned when there is no template for provided rule format
	ErrUnsupportedRuleFormat = errors.New("unsupported rule format")
)

Functions

func AsInt added in v1.4.0

func AsInt(f any) int64

AsInt provides proper conversion of values which are integers in reality

func CheckErrors added in v1.5.0

func CheckErrors() (string, error)

CheckErrors is used to fail the processing of the template in case of any unknown behaviors or criteria

func CmdCreateInclude added in v1.3.0

func CmdCreateInclude(c *cli.Context) error

CmdCreateInclude is an entrypoint to export-include include sub-command

func CmdCreateProperty

func CmdCreateProperty(c *cli.Context) error

CmdCreateProperty is an entrypoint to create-property command

func ReportError added in v1.5.0

func ReportError(format string, a ...any) string

ReportError is used to report unknown behaviors or criteria during processing the template

Types

type EdgeHostname

type EdgeHostname struct {
	EdgeHostname             string
	EdgeHostnameID           string
	ContractID               string
	GroupID                  string
	ID                       string
	IPv6                     string
	EdgeHostnameResourceName string
	SecurityType             string
	UseCases                 string
	CertificateID            int64
	TTL                      int
}

EdgeHostname represents EdgeHostname resource

type Hostname

type Hostname struct {
	CnameFrom                string
	CnameTo                  string
	EdgeHostnameResourceName string
	CertProvisioningType     string
	IsActive                 bool
}

Hostname represents edge hostname resource

type NetworkInfo added in v1.7.0

type NetworkInfo struct {
	Emails                  []string
	ActivationNote          string
	HasActivation           bool
	Version                 int
	IsActiveOnLatestVersion bool
}

NetworkInfo holds details for specific network

type RuleTemplate

type RuleTemplate struct {
	Name                string                       `json:"name"`
	Criteria            []papi.RuleBehavior          `json:"criteria,omitempty"`
	Behaviors           []papi.RuleBehavior          `json:"behaviors,omitempty"`
	Children            []string                     `json:"children,omitempty"`
	Comments            string                       `json:"comments,omitempty"`
	CriteriaLocked      bool                         `json:"criteriaLocked,omitempty"`
	CriteriaMustSatisfy papi.RuleCriteriaMustSatisfy `json:"criteriaMustSatisfy,omitempty"`
	UUID                string                       `json:"uuid,omitempty"`
	Variables           []papi.RuleVariable          `json:"variables,omitempty"`
	AdvancedOverride    string                       `json:"advancedOverride,omitempty"`

	Options struct {
		IsSecure bool `json:"is_secure,omitempty"`
	} `json:"options,omitempty"`

	CustomOverride *papi.RuleCustomOverride `json:"customOverride,omitempty"`
}

RuleTemplate represent data used for single rule

type RulesTemplate

type RulesTemplate struct {
	AccountID       string        `json:"accountId"`
	ContractID      string        `json:"contractId"`
	GroupID         string        `json:"groupId"`
	PropertyID      string        `json:"propertyId,omitempty"`
	IncludeID       string        `json:"includeId,omitempty"`
	PropertyVersion int           `json:"propertyVersion,omitempty"`
	IncludeVersion  int           `json:"includeVersion,omitempty"`
	IncludeType     string        `json:"includeType,omitempty"`
	Etag            string        `json:"etag"`
	RuleFormat      string        `json:"ruleFormat"`
	Comments        string        `json:"comments,omitempty"`
	Rule            *RuleTemplate `json:"rules"`
	Errors          []*papi.Error `json:"errors,omitempty"`
}

RulesTemplate represent data used for rules

type TFData

type TFData struct {
	Includes     []TFIncludeData
	Property     TFPropertyData
	Section      string
	Rules        []*WrappedRules
	RulesAsHCL   bool
	WithIncludes bool
	UseBootstrap bool
}

TFData holds template data

type TFIncludeData added in v1.3.0

type TFIncludeData struct {
	ContractID     string
	GroupID        string
	IncludeID      string
	IncludeName    string
	IncludeType    string
	RuleFormat     string
	Rules          []*WrappedRules
	ProductionInfo NetworkInfo
	StagingInfo    NetworkInfo
}

TFIncludeData holds template data for include

type TFPropertyData added in v1.3.0

type TFPropertyData struct {
	GroupName            string
	GroupID              string
	ContractID           string
	PropertyResourceName string
	PropertyName         string
	PropertyID           string
	ProductID            string
	ProductName          string
	RuleFormat           string
	IsSecure             string
	EdgeHostnames        map[string]EdgeHostname
	Hostnames            map[string]Hostname
	ReadVersion          string
	ProductionInfo       NetworkInfo
	StagingInfo          NetworkInfo
}

TFPropertyData holds template data for property

type WrappedRules added in v1.4.0

type WrappedRules struct {
	Rule          papi.Rules
	TerraformName string
	Children      []*WrappedRules
}

WrappedRules is a wrapper around Rule which simplifies flattening rule tree into list and adjust names of the datasources

Jump to

Keyboard shortcuts

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