util

package
v0.5.5 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const AwsEc2InstanceTypeRegex string = `^[a-z0-9]{1,15}\.[a-z0-9]{1,15}$`

AWS EC2 Instance Type

View Source
const AzureEphemeralOSDisk = "Azure_Ephemeral_OS_Disk"
View Source
const DateRegex string = `^\d{4}-\d{2}-\d{2}$`

Date YYYY-MM-DD

View Source
const DefaultSitePolicySetId string = "00000000-0000-0000-0000-000000000000"

ID of the Default Site Policy Set

View Source
const DomainFqdnRegex string = `^(([a-zA-Z0-9-_]){1,63}\.)+[a-zA-Z]{2,63}$`

Domain FQDN

View Source
const GuidRegex string = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$`

GUID

View Source
const IPv4Regex string = `^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$`

IPv4

View Source
const IPv4RegexWithProtocol string = `^(http|https)://((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$`

IPv4 with https

View Source
const ImageVersionResourceType string = "ImageVersion"

Resource Types

View Source
const NUTANIX_PLUGIN_ID string = "AcropolisFactory"
View Source
const NetworkResourceType string = "Network"
View Source
const Premium_LRS = "Premium_LRS"
View Source
const RegionResourceType string = "Region"
View Source
const SamRegex string = `^[a-zA-Z][a-zA-Z0-9\- ]{0,61}[a-zA-Z0-9]\\\w[\w\.\- ]+$`

SAM

View Source
const SecurityGroupResourceType = "SecurityGroup"
View Source
const ServiceOfferingResourceType string = "ServiceOffering"
View Source
const SnapshotResourceType string = "Snapshot"
View Source
const SslThumbprintRegex string = `^([0-9a-fA-F]{40}|[0-9a-fA-F]{64})$`

SSL Thumbprint

View Source
const StandardLRS = "Standard_LRS"

Azure Storage Types

View Source
const StandardSSDLRS = "StandardSSD_LRS"
View Source
const StorageResourceType string = "Storage"
View Source
const TemplateResourceType string = "Template"
View Source
const TimeRegex string = `^([0-1][0-9]|2[0-3]):[0-5][0-9]$`

Time HH:MM

View Source
const UpnRegex string = `^[^@]+@\b(([a-zA-Z0-9-_]){1,63}\.)+[a-zA-Z]{2,63}$`

UPN

View Source
const VhdResourceType string = "Vhd"
View Source
const VirtualMachineResourceType string = "Vm"
View Source
const VirtualPrivateCloudResourceType string = "VirtualPrivateCloud"
View Source
const WindowsClientLicenseType string = "Windows_Client"

Azure License Types

View Source
const WindowsServerLicenseType string = "Windows_Server"

Variables

This section is empty.

Functions

func AppendNameValueStringPair

func AppendNameValueStringPair(stringPairs *[]citrixorchestration.NameValueStringPairModel, name string, appendValue string)

<summary> Helper function to append new name value pairs to an array of NameValueStringPairModel in place </summary> <param name="stringPairs">Original string pair array to append to</param> <param name="name">Name of the new string pair to be added</param> <param name="appendValue">Value of the new string pair to be added</param>

func Contains

func Contains[T comparable](s []T, e T) bool

func ConvertBaseStringArrayToPrimitiveStringArray

func ConvertBaseStringArrayToPrimitiveStringArray(v []types.String) []string

<summary> Helper function to convert array of terraform strings to array of golang primitive strings </summary> <param name="v">Array of terraform stringsArray of golang primitive strings</param> <returns>Array of golang primitive strings</returns>

func ConvertPrimitiveStringArrayToBaseStringArray

func ConvertPrimitiveStringArrayToBaseStringArray(v []string) []types.String

<summary> Helper function to convert array of golang primitive strings to array of terraform strings </summary> <param name="v">Array of golang primitive strings</param> <returns>Array of terraform strings</returns>

func ConvertToString added in v0.3.4

func ConvertToString(model any) (string, error)

<summary> Helper function to serialize any struct value into a string </summary> <param name="model">Input struct value</param> <returns>Serialized string value of the struct</returns>

func GetAllResourcePathList

func GetAllResourcePathList(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, hypervisorId, folderPath, resourceType string) []string

func GetFilteredResourcePathList

func GetFilteredResourcePathList(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, hypervisorId, folderPath, resourceType string, filter []string, connectionType citrixorchestration.HypervisorConnectionType, pluginId string) ([]string, error)

func GetHypervisor added in v0.3.6

Gets the hypervisor and logs any errors

func GetHypervisorResourcePool added in v0.3.6

func GetHypervisorResourcePool(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, diagnostics *diag.Diagnostics, hypervisorId, hypervisorResourcePoolId string) (*citrixorchestration.HypervisorResourcePoolDetailResponseModel, error)

func GetMachineCatalog added in v0.3.6

func GetMachineCatalog(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, diagnostics *diag.Diagnostics, machineCatalogId string, addErrorToDiagnostics bool) (*citrixorchestration.MachineCatalogDetailResponseModel, error)

func GetMachineCatalogMachines added in v0.3.6

func GetMachineCatalogMachines(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, diagnostics *diag.Diagnostics, machineCatalogId string) (*citrixorchestration.MachineResponseModelCollection, error)

func GetSingleHypervisorResource added in v0.3.6

func GetSingleHypervisorResource(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, hypervisorId, folderPath, resourceName, resourceType, resourceGroupName string, hypervisor *citrixorchestration.HypervisorDetailResponseModel) (*citrixorchestration.HypervisorResourceResponseModel, error)

func GetSingleResourceFromHypervisor added in v0.5.3

func GetSingleResourceFromHypervisor(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, hypervisorName, hypervisorPoolName, folderPath, resourceName, resourceType, resourceGroupName string) (*citrixorchestration.HypervisorResourceResponseModel, error)

func GetSingleResourcePathFromHypervisor

func GetSingleResourcePathFromHypervisor(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, hypervisorName, hypervisorPoolName, folderPath, resourceName, resourceType, resourceGroupName string) (string, error)

func GetValidatorFromEnum

func GetValidatorFromEnum[V ~string, T []V](enum T) validator.String

<summary> Helper function for generating string validator for an enum value in Terraform schema. Only works when all eligible values for the enum type are supported by provider. When the eligible values are only partially supported, use custom string validator in schema. </summary> <param name="enum">Enum from citrix-daas-rest-go package</param> <returns>String validator for terraform schema</returns>

func IsValidUUID

func IsValidUUID(u string) bool

<summary> Helper function to validate if a string is a valid UUID </summary> <param name="u">String to validate</param> <returns>True if string is a valid UUID. False if otherwise.</returns>

func IsValidUUIDorNull

func IsValidUUIDorNull(u basetypes.StringValue) bool

<summary> Helper function to validate if a string is a valid UUID or null </summary> <param name="u">String to validate</param> <returns>True if string is a valid UUID, or is null. False if otherwise.</returns>

func PanicHandler added in v0.3.6

func PanicHandler(diagnostics *diag.Diagnostics)

<summary> Global panic handler to catch all unexpected errors to prevent provider from crashing. Writes crash stack into local txt file for troubleshooting, and displays error message in Terrafor Diagnostics. </summary> <param name="diagnostics">Terraform Diagnostics from context</param>

func ParseNameValueStringPairToClientModel

func ParseNameValueStringPairToClientModel(stringPairs []NameValueStringPairModel) []citrixorchestration.NameValueStringPairModel

<summary> Helper function to parse an array of name value pairs in terraform model to an array of name value pairs in client model </summary> <param name="stringPairs">Original string pair array in terraform model</param> <returns>String pair array in client model</returns>

func ProcessAsyncJobResponse added in v0.3.6

func ProcessAsyncJobResponse(ctx context.Context, client *citrixdaasclient.CitrixDaasClient, jobResp *http.Response, errContext string, diagnostics *diag.Diagnostics, maxTimeout int, returnJobError bool) (err error)

<summary> Helper function to process async job response. Takes async job response and polls for result. </summary> <param name="ctx">Context from caller</param> <param name="client">Citrix DaaS client from provider context</param> <param name="jobResp">Job response from async API call</param> <param name="errContext">Context of the job to be use as Terraform diagnostic error message title</param> <param name="diagnostics">Terraform diagnostics from context</param> <param name="maxTimeout">Maximum timeout threashold for job status polling</param> <returns>Error if job polling failed or job itself ended in failed state</returns>

func ReadClientError

func ReadClientError(err error) string

<summary> Helper function to read inner error message from a generic error returned from citrix-daas-rest-go </summary> <param name="err">Generic error returned from citrix-daas-rest-go</param> <returns>Inner error message</returns>

func ReadResource added in v0.3.3

func ReadResource[ResponseType any](request any, ctx context.Context, client *citrixdaasclient.CitrixDaasClient, resp *resource.ReadResponse, resourceType, resourceIdOrName string) (ResponseType, *http.Response, error)

<summary> Wrapper function for reading specific resource from remote with retries </summary> <param name="request">Request object for the GET call</param> <param name="ctx">Context from caller</param> <param name="client">Citrix DaaS client from provider context</param> <param name="resp">Response from the GET call</param> <param name="resourceType">Resource type that would be shown in error message if failed to read resource</param> <param name="resourceIdOrName">Resource ID or name that would be shown in error message if failed to read resource</param> <returns>Response of the Get call. Raw http response. Error if failed to read the resource.</returns>

func RefreshList added in v0.4.0

func RefreshList(state []types.String, remote []string) []types.String

<summary> Helper function for calculating the new state of a list of strings, while keeping the order of the elements in the array intact, and adds missing elements from remote to state. Can be used for refreshing list of strings. </summary> <param name="state">List of values in state</param> <param name="remote">List of values in remote</param>

func RefreshListProperties added in v0.4.0

func RefreshListProperties[tfType any, clientType any](state []tfType, tfId string, remote []clientType, clientId string, refreshFunc string) []tfType

<summary> Helper function for calculating the new state of a list of nested attribute, while keeping the order of the elements in the array intact, and adds missing elements from remote to state. Can be used for refreshing all list nested attributes. </summary> <param name="state">State values in Terraform model</param> <param name="tfId">Name of the identifier field in Terraform model</param> <param name="remote">Remote values in client model</param> <param name="clientId">Name of the identifier field in client model</param> <param name="refreshFunc">Name of the refresh properties function defined in the terraform model</param> <returns>Array in Terraform model for new state</returns>

func StringToTypeBool

func StringToTypeBool(from string) types.Bool

<summary> Helper function to convert string to terraform boolean value </summary> <param name="from">Boolean value in string</param> <returns>Boolean value in terraform types.Bool</returns>

func TypeBoolToString

func TypeBoolToString(from types.Bool) string

<summary> Helper function to convert terraform bool value to string </summary> <param name="from">Boolean value in terraform bool</param> <returns>Boolean value in string</returns>

Types

type HttpErrorBody added in v0.5.0

type HttpErrorBody struct {
	ErrorMessage string `json:"errorMessage"`
	Detail       string `json:"detail"`
}

type NameValueStringPairModel

type NameValueStringPairModel struct {
	Name  types.String `tfsdk:"name"`
	Value types.String `tfsdk:"value"`
}

Terraform model for name value string pair

func ParseNameValueStringPairToPluginModel

func ParseNameValueStringPairToPluginModel(stringPairs []citrixorchestration.NameValueStringPairModel) []NameValueStringPairModel

<summary> Helper function to parse an array of name value pairs in client model to an array of name value pairs in terraform model </summary> <param name="stringPairs">Original string pair array in client model</param> <returns>String pair array in terraform model</returns>

Jump to

Keyboard shortcuts

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