property

package
v6.5.0 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2024 License: MPL-2.0 Imports: 54 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 (
	// EgdeHostnameCreatePollInterval is the interval for polling an edgehostname creation
	EgdeHostnameCreatePollInterval = time.Minute
)
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 IAMClient added in v6.4.0

func IAMClient(meta meta.Meta) iam.IAM

IAMClient returns the IAM 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

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

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

BootstrapResource represents akamai_property_bootstrap resource

func (*BootstrapResource) Configure

Configure implements resource.ResourceWithConfigure.

func (*BootstrapResource) Create

Create implements resource's Create method

func (*BootstrapResource) Delete

Delete implements resource's Delete method

func (*BootstrapResource) ImportState

ImportState implements resource's ImportState method

func (*BootstrapResource) Metadata

Metadata implements resource.Resource.

func (*BootstrapResource) Read

Read implements resource's Read method

func (*BootstrapResource) Schema

Schema implements resource's Schema

func (*BootstrapResource) Update

Update supports change for the following attributes: - `name`, which results in resource replacement. Trying to update `group_id`, `contract_id` or `product_id` will result in an error.

type BootstrapResourceModel

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 Subprovider

type Subprovider struct{}

Subprovider gathers property resources and data sources

func NewSubprovider

func NewSubprovider() *Subprovider

NewSubprovider returns a new property subprovider

func (*Subprovider) FrameworkDataSources

func (p *Subprovider) FrameworkDataSources() []func() datasource.DataSource

FrameworkDataSources returns the property data sources implemented using terraform-plugin-framework

func (*Subprovider) FrameworkResources

func (p *Subprovider) FrameworkResources() []func() resource.Resource

FrameworkResources returns the property resources implemented using terraform-plugin-framework

func (*Subprovider) SDKDataSources

func (p *Subprovider) SDKDataSources() map[string]*schema.Resource

SDKDataSources returns the property data sources implemented using terraform-plugin-sdk

func (*Subprovider) SDKResources

func (p *Subprovider) SDKResources() map[string]*schema.Resource

SDKResources returns the property resources implemented using terraform-plugin-sdk

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