property

package
v5.6.0 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2024 License: MPL-2.0 Imports: 51 Imported by: 0

Documentation

Overview

Package property contains implementation for Property Provisioning module used to manage properties

Index

Constants

View Source
const (
	// ActivationPollMinimum is the minimum polling interval for activation creation
	ActivationPollMinimum = time.Minute
)
View Source
const SubproviderName = "property"

SubproviderName defines name of the property subprovider

Variables

View Source
var (
	// ErrReadFile is used to specify error while reading a file.
	ErrReadFile = errors.New("reading file")
	// ErrUnmarshal is used to specify unmarshal error.
	ErrUnmarshal = errors.New("unmarshaling value")
	// ErrFormatValue is used to specify formatting error.
	ErrFormatValue = errors.New("formatting value")
	// ErrUnknownType is used to specify unknown error.
	ErrUnknownType = errors.New("unknown 'type' value")
)
View Source
var (

	// ErrLookingUpGroupByName is returned when fetching group from API client by groupName returned an error or no group was found
	ErrLookingUpGroupByName = errors.New("looking up group with name")
	// ErrNoGroupsFound is returned when no groups were found
	ErrNoGroupsFound = errors.New("no groups found")
	// ErrGroupNotInContract is returned when none of the groups could be associated with given contractID
	ErrGroupNotInContract = errors.New("group does not belong to contract")
	// ErrFetchingGroups represents error while fetching groups
	ErrFetchingGroups = errors.New("fetching groups")
	// ErrGroupNotFound is returned when group with provided ID is not found
	ErrGroupNotFound = errors.New("group not found")

	// ErrLookingUpContract is returned when fetching contract from API client by groupId returned an error or no contract was found
	ErrLookingUpContract = errors.New("looking up contract for provided group")
	// ErrMultipleContractsInGroup is returned when fetching contract from API client by groupId returned multiple different contracts
	ErrMultipleContractsInGroup = diag.Diagnostics{
		diag.Diagnostic{
			Severity: diag.Error,
			Summary:  "multiple contracts found for given group",
			Detail: "Resource doesn't support groups with multiple contracts. " +
				"Make sure your group has only one contract assigned before proceeding.",
		},
	}
	// ErrNoContractProvided is retured when no contract ID was provided but "name" was
	ErrNoContractProvided = errors.New("'contractId' is required for non-default name")
	// ErrNoGroupProvided is returned when no "group" property is provided
	ErrNoGroupProvided = errors.New("'group' not provided and it is a required input")
	// ErrNoContractsFound is returned when no contracts were found
	ErrNoContractsFound = errors.New("no contracts were found")
	// ErrContractNotFound is returned when contract with provided ID does not exist
	ErrContractNotFound = errors.New("contract not found")
	// ErrFetchingContracts represents error while fetching contracts
	ErrFetchingContracts = errors.New("fetching contracts")
	// ErrMultipleContractsFound is returned when more than one contract was found
	ErrMultipleContractsFound = diag.Diagnostics{
		diag.Diagnostic{
			Severity: diag.Error,
			Summary:  "multiple contracts found",
			Detail: "Resource cannot unambiguously identify the contract. " +
				"Please provide either a 'group_id' or 'group_name' for accurate identification.",
		},
	}

	// ErrNoProductProvided is returned when no "product" property is provided
	ErrNoProductProvided = errors.New("'product' not provided and it is a required input")
	// ErrProductFetch represents error while fetching product
	ErrProductFetch = errors.New("fetching product")
	// ErrProductNotFound is returned when product with provided ID does not exist
	ErrProductNotFound = errors.New("product not found")

	// ErrLookingUpCPCode is returned when fetching CP Code from API client by contractID returned an error or no CP Code was found
	ErrLookingUpCPCode = errors.New("looking up CP Code by name")
	// ErrCpCodeNotFound is returned when cp code with provided ID does not exist
	ErrCpCodeNotFound = errors.New("cp code not found")
	// ErrCPCodeUpdateTimeout is returned when waiting for a cp code update results in timeout
	ErrCPCodeUpdateTimeout = errors.New("cp code update timeout")

	// ErrPropertyNotFound is returned when no property was found for given name
	ErrPropertyNotFound = errors.New("property not found")
	// ErrRulesNotFound is returned when no rules were found
	ErrRulesNotFound = errors.New("property rules not found")

	// ErrVersionCreate represents an error while creating new property version
	ErrVersionCreate = errors.New("creating property version")
	// ErrPropertyVersionNotFound is returned when no property versions were found
	ErrPropertyVersionNotFound = errors.New("property version not found")

	// ErrRuleFormatsNotFound is returned when no rule formats were found
	ErrRuleFormatsNotFound = errors.New("no rule formats found")

	// ErrEdgeHostnameNotFound is returned when no edgehostname were found
	ErrEdgeHostnameNotFound = errors.New("unable to find edge hostname")

	// ErrNoLatestIncludeActivation is returned when there is no activation for provided include
	ErrNoLatestIncludeActivation = errors.New("no latest activation for given include")

	// ErrPropertyInclude is returned when operation on property include fails
	ErrPropertyInclude = errors.New("property include")

	// DiagWarnActivationTimeout returned on activation poll timeout
	DiagWarnActivationTimeout = diag.Diagnostic{
		Severity: diag.Warning,
		Summary:  "Timeout waiting for activation status",
		Detail: `
The activation creation request has been started successfully, however the operation timeout was 
exceeded while waiting for the remote resource to update. You may retry the operation to continue 
to wait for the final status.

It is recommended that the timeout for activation resources be set to greater than 90 minutes.
See: https://www.terraform.io/docs/configuration/resources.html#operation-timeouts
`,
	}

	// DiagWarnActivationCanceled is returned on activation poll cancel
	DiagWarnActivationCanceled = diag.Diagnostic{
		Severity: diag.Warning,
		Summary:  "Operation canceled while waiting for activation status",
		Detail: `
The activation creation request has been started successfully, however the a cancellation was received
while waiting for the remote resource to update. You may retry the operation to continue to wait for 
the final status.

It is recommended that the timeout for activation resources be set to greater than 90 minutes.
See: https://www.terraform.io/docs/configuration/resources.html#operation-timeouts
`,
	}
)
View Source
var (
	// ActivationPollInterval is the interval for polling an activation status on creation
	ActivationPollInterval = ActivationPollMinimum

	// PropertyResourceTimeout is the default timeout for the resource operations
	PropertyResourceTimeout = time.Minute * 90

	// CreateActivationRetry poll wait time code waits between retries for activation creation
	CreateActivationRetry = 10 * time.Second
)
View Source
var ErrCalculatingHostnamesHash = errors.New("calculating hostnames set hash failed")

ErrCalculatingHostnamesHash is used when calculating hash value for set of hostnames failed.

Functions

func Client

func Client(meta meta.Meta) papi.PAPI

Client returns the PAPI interface

func HapiClient

func HapiClient(meta meta.Meta) hapi.HAPI

HapiClient returns the HAPI interface

func NetworkAlias

func NetworkAlias(network string) (string, error)

NetworkAlias parses the given network name or alias and returns its full name and any error

func NewBootstrapResource added in v5.6.0

func NewBootstrapResource() resource.Resource

NewBootstrapResource returns new property bootstrap resource

func NewIncludeDataSource

func NewIncludeDataSource() datasource.DataSource

NewIncludeDataSource returns a new property include data source

Types

type BootstrapResource added in v5.6.0

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

BootstrapResource represents akamai_property_bootstrap resource

func (*BootstrapResource) Configure added in v5.6.0

Configure implements resource.ResourceWithConfigure.

func (*BootstrapResource) Create added in v5.6.0

Create implements resource's Create method

func (*BootstrapResource) Delete added in v5.6.0

Delete implements resource's Delete method

func (*BootstrapResource) ImportState added in v5.6.0

ImportState implements resource's ImportState method

func (*BootstrapResource) Metadata added in v5.6.0

Metadata implements resource.Resource.

func (*BootstrapResource) Read added in v5.6.0

Read implements resource's Read method

func (*BootstrapResource) Schema added in v5.6.0

Schema implements resource's Schema

func (*BootstrapResource) Update added in v5.6.0

Update of group, contract, product is noop, it will return an error before invoking Update. Updating name will result in resource replacement

type BootstrapResourceModel added in v5.6.0

type BootstrapResourceModel struct {
	ID         types.String `tfsdk:"id"`
	Name       types.String `tfsdk:"name"`
	GroupID    types.String `tfsdk:"group_id"`
	ContractID types.String `tfsdk:"contract_id"`
	ProductID  types.String `tfsdk:"product_id"`
}

BootstrapResourceModel is a model for akamai_property_bootstrap resource

type FrameworkSubprovider

type FrameworkSubprovider struct{}

FrameworkSubprovider gathers property resources and data sources written using terraform-plugin-framework

func NewFrameworkSubprovider

func NewFrameworkSubprovider() *FrameworkSubprovider

NewFrameworkSubprovider returns a core Framework based sub provider

func (*FrameworkSubprovider) DataSources

func (p *FrameworkSubprovider) DataSources() []func() datasource.DataSource

DataSources returns terraform data sources for property

func (*FrameworkSubprovider) Resources

func (p *FrameworkSubprovider) Resources() []func() resource.Resource

Resources returns terraform resources for property

type PluginSubprovider

type PluginSubprovider struct{}

PluginSubprovider gathers property resources and data sources written using terraform-plugin-sdk

func NewPluginSubprovider

func NewPluginSubprovider() *PluginSubprovider

NewPluginSubprovider returns a core SDKv2 based sub provider

func (*PluginSubprovider) DataSources

func (p *PluginSubprovider) DataSources() map[string]*schema.Resource

DataSources returns terraform data sources for property

func (*PluginSubprovider) Resources

func (p *PluginSubprovider) Resources() map[string]*schema.Resource

Resources returns terraform resources for property

Directories

Path Synopsis
Package ruleformats contains logic required for akamai_property_rules_builder data source.
Package ruleformats contains logic required for akamai_property_rules_builder data source.

Jump to

Keyboard shortcuts

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