client

package
v0.12.2 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2025 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MESH_BUILDING_BLOCK_IO_TYPE_STRING        = "STRING"
	MESH_BUILDING_BLOCK_IO_TYPE_INTEGER       = "INTEGER"
	MESH_BUILDING_BLOCK_IO_TYPE_BOOLEAN       = "BOOLEAN"
	MESH_BUILDING_BLOCK_IO_TYPE_SINGLE_SELECT = "SINGLE_SELECT"
	MESH_BUILDING_BLOCK_IO_TYPE_FILE          = "FILE"
	MESH_BUILDING_BLOCK_IO_TYPE_LIST          = "LIST"
	MESH_BUILDING_BLOCK_IO_TYPE_CODE          = "CODE"

	CONTENT_TYPE_BUILDING_BLOCK = "application/vnd.meshcloud.api.meshbuildingblock.v1.hal+json"
)
View Source
const (
	CONTENT_TYPE_BUILDING_BLOCK_V2 = "application/vnd.meshcloud.api.meshbuildingblock.v2-preview.hal+json"

	// Building Block Status Constants
	BUILDING_BLOCK_STATUS_WAITING_FOR_DEPENDENT_INPUT = "WAITING_FOR_DEPENDENT_INPUT"
	BUILDING_BLOCK_STATUS_WAITING_FOR_OPERATOR_INPUT  = "WAITING_FOR_OPERATOR_INPUT"
	BUILDING_BLOCK_STATUS_PENDING                     = "PENDING"
	BUILDING_BLOCK_STATUS_IN_PROGRESS                 = "IN_PROGRESS"
	BUILDING_BLOCK_STATUS_SUCCEEDED                   = "SUCCEEDED"
	BUILDING_BLOCK_STATUS_FAILED                      = "FAILED"
)
View Source
const (
	ERROR_GENERIC_CLIENT_ERROR   = "client error"
	ERROR_GENERIC_API_ERROR      = "api error"
	ERROR_AUTHENTICATION_FAILURE = "Not authorized. Check api key and secret."
	ERROR_ENDPOINT_LOOKUP        = "Could not fetch endpoints for meshStack."
)
View Source
const API_VERSION_TAG_DEFINITION = "v1"
View Source
const CONTENT_TYPE_LANDINGZONE = "application/vnd.meshcloud.api.meshlandingzone.v1-preview.hal+json"
View Source
const CONTENT_TYPE_PLATFORM = "application/vnd.meshcloud.api.meshplatform.v2-preview.hal+json"
View Source
const CONTENT_TYPE_PROJECT = "application/vnd.meshcloud.api.meshproject.v2.hal+json"
View Source
const CONTENT_TYPE_PROJECT_GROUP_BINDING = "application/vnd.meshcloud.api.meshprojectgroupbinding.v3.hal+json"
View Source
const CONTENT_TYPE_PROJECT_USER_BINDING = "application/vnd.meshcloud.api.meshprojectuserbinding.v3.hal+json"
View Source
const CONTENT_TYPE_TAG_DEFINITION = "application/vnd.meshcloud.api.meshtagdefinition.v1.hal+json"
View Source
const CONTENT_TYPE_TENANT = "application/vnd.meshcloud.api.meshtenant.v3.hal+json"
View Source
const CONTENT_TYPE_TENANT_V4 = "application/vnd.meshcloud.api.meshtenant.v4-preview.hal+json"
View Source
const CONTENT_TYPE_WORKSPACE = "application/vnd.meshcloud.api.meshworkspace.v2.hal+json"
View Source
const CONTENT_TYPE_WORKSPACE_GROUP_BINDING = "application/vnd.meshcloud.api.meshworkspacegroupbinding.v2.hal+json"
View Source
const CONTENT_TYPE_WORKSPACE_USER_BINDING = "application/vnd.meshcloud.api.meshworkspaceuserbinding.v2.hal+json"

Variables

This section is empty.

Functions

This section is empty.

Types

type AksPlatformConfig added in v0.12.2

type AksPlatformConfig struct {
	BaseUrl              string                `json:"baseUrl" tfsdk:"base_url"`
	DisableSslValidation bool                  `json:"disableSslValidation" tfsdk:"disable_ssl_validation"`
	Replication          *AksReplicationConfig `json:"replication" tfsdk:"replication"`
}

type AksPlatformProperties added in v0.11.0

type AksPlatformProperties struct {
	KubernetesRoleMappings []KubernetesRoleMapping `json:"kubernetesRoleMappings" tfsdk:"kubernetes_role_mappings"`
}

type AksReplicationConfig added in v0.12.2

type AksReplicationConfig struct {
	AccessToken             *string                 `json:"accessToken,omitempty" tfsdk:"access_token"`
	NamespaceNamePattern    *string                 `json:"namespaceNamePattern,omitempty" tfsdk:"namespace_name_pattern"`
	GroupNamePattern        *string                 `json:"groupNamePattern,omitempty" tfsdk:"group_name_pattern"`
	ServicePrincipal        *ServicePrincipalConfig `json:"servicePrincipal,omitempty" tfsdk:"service_principal"`
	AksSubscriptionId       *string                 `json:"aksSubscriptionId,omitempty" tfsdk:"aks_subscription_id"`
	AksClusterName          *string                 `json:"aksClusterName,omitempty" tfsdk:"aks_cluster_name"`
	AksResourceGroup        *string                 `json:"aksResourceGroup,omitempty" tfsdk:"aks_resource_group"`
	RedirectUrl             *string                 `json:"redirectUrl,omitempty" tfsdk:"redirect_url"`
	SendAzureInvitationMail *bool                   `json:"sendAzureInvitationMail,omitempty" tfsdk:"send_azure_invitation_mail"`
	UserLookUpStrategy      *string                 `json:"userLookUpStrategy,omitempty" tfsdk:"user_look_up_strategy"`
	AdministrativeUnitId    *string                 `json:"administrativeUnitId,omitempty" tfsdk:"administrative_unit_id"`
}

type AwsAccessConfig added in v0.12.2

type AwsAccessConfig struct {
	OrganizationRootAccountRole       string                     `json:"organizationRootAccountRole" tfsdk:"organization_root_account_role"`
	OrganizationRootAccountExternalId *string                    `json:"organizationRootAccountExternalId,omitempty" tfsdk:"organization_root_account_external_id"`
	ServiceUserConfig                 *AwsServiceUserConfig      `json:"serviceUserConfig,omitempty" tfsdk:"service_user_config"`
	WorkloadIdentityConfig            *AwsWorkloadIdentityConfig `json:"workloadIdentityConfig,omitempty" tfsdk:"workload_identity_config"`
}

type AwsEnrollmentConfiguration added in v0.12.2

type AwsEnrollmentConfiguration struct {
	ManagementAccountId     string `json:"managementAccountId" tfsdk:"management_account_id"`
	AccountFactoryProductId string `json:"accountFactoryProductId" tfsdk:"account_factory_product_id"`
}

type AwsPlatformConfig added in v0.12.2

type AwsPlatformConfig struct {
	Region      *string               `json:"region,omitempty" tfsdk:"region"`
	Replication *AwsReplicationConfig `json:"replication,omitempty" tfsdk:"replication"`
}

type AwsPlatformProperties added in v0.11.0

type AwsPlatformProperties struct {
	AwsTargetOrgUnitId string           `json:"awsTargetOrgUnitId" tfsdk:"aws_target_org_unit_id"`
	AwsEnrollAccount   bool             `json:"awsEnrollAccount" tfsdk:"aws_enroll_account"`
	AwsLambdaArn       *string          `json:"awsLambdaArn" tfsdk:"aws_lambda_arn"`
	AwsRoleMappings    []AwsRoleMapping `json:"awsRoleMappings" tfsdk:"aws_role_mappings"`
}

type AwsReplicationConfig added in v0.12.2

type AwsReplicationConfig struct {
	AccessConfig                                  *AwsAccessConfig            `json:"accessConfig,omitempty" tfsdk:"access_config"`
	WaitForExternalAvm                            *bool                       `json:"waitForExternalAvm,omitempty" tfsdk:"wait_for_external_avm"`
	AutomationAccountRole                         *string                     `json:"automationAccountRole,omitempty" tfsdk:"automation_account_role"`
	AutomationAccountExternalId                   *string                     `json:"automationAccountExternalId,omitempty" tfsdk:"automation_account_external_id"`
	AccountAccessRole                             *string                     `json:"accountAccessRole,omitempty" tfsdk:"account_access_role"`
	AccountAliasPattern                           *string                     `json:"accountAliasPattern,omitempty" tfsdk:"account_alias_pattern"`
	EnforceAccountAlias                           *bool                       `json:"enforceAccountAlias,omitempty" tfsdk:"enforce_account_alias"`
	AccountEmailPattern                           *string                     `json:"accountEmailPattern,omitempty" tfsdk:"account_email_pattern"`
	TenantTags                                    *AwsTenantTags              `json:"tenantTags,omitempty" tfsdk:"tenant_tags"`
	AwsSso                                        *AwsSsoConfig               `json:"awsSso,omitempty" tfsdk:"aws_sso"`
	EnrollmentConfiguration                       *AwsEnrollmentConfiguration `json:"enrollmentConfiguration,omitempty" tfsdk:"enrollment_configuration"`
	SelfDowngradeAccessRole                       *bool                       `json:"selfDowngradeAccessRole,omitempty" tfsdk:"self_downgrade_access_role"`
	SkipUserGroupPermissionCleanup                *bool                       `json:"skipUserGroupPermissionCleanup,omitempty" tfsdk:"skip_user_group_permission_cleanup"`
	AllowHierarchicalOrganizationalUnitAssignment *bool                       `json:"allowHierarchicalOrganizationalUnitAssignment,omitempty" tfsdk:"allow_hierarchical_organizational_unit_assignment"`
}

AWS-specific replication configuration structures

type AwsRoleMapping added in v0.11.0

type AwsRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	PlatformRole       string               `json:"platformRole" tfsdk:"platform_role"`
	Policies           []string             `json:"policies" tfsdk:"policies"`
}

type AwsServiceUserConfig added in v0.12.2

type AwsServiceUserConfig struct {
	AccessKey string  `json:"accessKey" tfsdk:"access_key"`
	SecretKey *string `json:"secretKey,omitempty" tfsdk:"secret_key"`
}

type AwsSsoConfig added in v0.12.2

type AwsSsoConfig struct {
	ScimEndpoint     string              `json:"scimEndpoint" tfsdk:"scim_endpoint"`
	Arn              string              `json:"arn" tfsdk:"arn"`
	GroupNamePattern string              `json:"groupNamePattern" tfsdk:"group_name_pattern"`
	SsoAccessToken   *string             `json:"ssoAccessToken,omitempty" tfsdk:"sso_access_token"`
	AwsRoleMappings  []AwsSsoRoleMapping `json:"awsRoleMappings" tfsdk:"aws_role_mappings"`
	SignInUrl        *string             `json:"signInUrl,omitempty" tfsdk:"sign_in_url"`
}

type AwsSsoRoleMapping added in v0.12.2

type AwsSsoRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	AwsRole            string               `json:"awsRole" tfsdk:"aws_role"`
	PermissionSetArns  []string             `json:"permissionSetArns" tfsdk:"permission_set_arns"`
}

type AwsTagMapper added in v0.12.2

type AwsTagMapper struct {
	Key          string `json:"key" tfsdk:"key"`
	ValuePattern string `json:"valuePattern" tfsdk:"value_pattern"`
}

type AwsTenantTags added in v0.12.2

type AwsTenantTags struct {
	NamespacePrefix string         `json:"namespacePrefix" tfsdk:"namespace_prefix"`
	TagMappers      []AwsTagMapper `json:"tagMappers" tfsdk:"tag_mappers"`
}

type AwsWorkloadIdentityConfig added in v0.12.2

type AwsWorkloadIdentityConfig struct {
	RoleArn string `json:"roleArn" tfsdk:"role_arn"`
}

type AzureB2bUserInvitation added in v0.12.2

type AzureB2bUserInvitation struct {
	RedirectUrl             *string `json:"redirectUrl,omitempty" tfsdk:"redirect_url"`
	SendAzureInvitationMail *bool   `json:"sendAzureInvitationMail,omitempty" tfsdk:"send_azure_invitation_mail"`
}

type AzureCustomerAgreement added in v0.12.2

type AzureCustomerAgreement struct {
	SourceServicePrincipal               *AzureSourceServicePrincipalConfig `json:"sourceServicePrincipal,omitempty" tfsdk:"source_service_principal"`
	DestinationEntraId                   string                             `json:"destinationEntraId" tfsdk:"destination_entra_id"`
	SourceEntraTenant                    string                             `json:"sourceEntraTenant" tfsdk:"source_entra_tenant"`
	BillingScope                         string                             `json:"billingScope" tfsdk:"billing_scope"`
	SubscriptionCreationErrorCooldownSec *int                               `json:"subscriptionCreationErrorCooldownSec,omitempty" tfsdk:"subscription_creation_error_cooldown_sec"`
}

type AzureEnterpriseEnrollment added in v0.12.2

type AzureEnterpriseEnrollment struct {
	EnrollmentAccountId                  string `json:"enrollmentAccountId" tfsdk:"enrollment_account_id"`
	SubscriptionOfferType                string `json:"subscriptionOfferType" tfsdk:"subscription_offer_type"`
	UseLegacySubscriptionEnrollment      *bool  `json:"useLegacySubscriptionEnrollment,omitempty" tfsdk:"use_legacy_subscription_enrollment"`
	SubscriptionCreationErrorCooldownSec *int   `json:"subscriptionCreationErrorCooldownSec,omitempty" tfsdk:"subscription_creation_error_cooldown_sec"`
}

type AzureFunction added in v0.11.0

type AzureFunction struct {
	AzureFunctionUrl   string `json:"azureFunctionUrl" tfsdk:"azure_function_url"`
	AzureFunctionScope string `json:"azureFunctionScope" tfsdk:"azure_function_scope"`
}

type AzurePlatformConfig added in v0.12.2

type AzurePlatformConfig struct {
	EntraTenant *string                 `json:"entraTenant,omitempty" tfsdk:"entra_tenant"`
	Replication *AzureReplicationConfig `json:"replication,omitempty" tfsdk:"replication"`
}

type AzurePlatformProperties added in v0.11.0

type AzurePlatformProperties struct {
	AzureRoleMappings      []AzureRoleMapping `json:"azureRoleMappings" tfsdk:"azure_role_mappings"`
	AzureManagementGroupId string             `json:"azureManagementGroupId" tfsdk:"azure_management_group_id"`
}

type AzurePlatformRoleDefinition added in v0.12.2

type AzurePlatformRoleDefinition struct {
	Alias string `json:"alias" tfsdk:"alias"`
	Id    string `json:"id" tfsdk:"id"`
}

type AzurePlatformRoleMapping added in v0.12.2

type AzurePlatformRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2        `json:"projectRoleRef" tfsdk:"project_role_ref"`
	AzureRole          AzurePlatformRoleDefinition `json:"azureRole" tfsdk:"azure_role"`
}

type AzurePreProvisioned added in v0.12.2

type AzurePreProvisioned struct {
	UnusedSubscriptionNamePrefix string `json:"unusedSubscriptionNamePrefix" tfsdk:"unused_subscription_name_prefix"`
}

type AzureProvisioning added in v0.12.2

type AzureProvisioning struct {
	SubscriptionOwnerObjectIds []string                   `json:"subscriptionOwnerObjectIds,omitempty" tfsdk:"subscription_owner_object_ids"`
	EnterpriseEnrollment       *AzureEnterpriseEnrollment `json:"enterpriseEnrollment,omitempty" tfsdk:"enterprise_enrollment"`
	CustomerAgreement          *AzureCustomerAgreement    `json:"customerAgreement,omitempty" tfsdk:"customer_agreement"`
	PreProvisioned             *AzurePreProvisioned       `json:"preProvisioned,omitempty" tfsdk:"pre_provisioned"`
}

type AzureReplicationConfig added in v0.12.2

type AzureReplicationConfig struct {
	ServicePrincipal                           *AzureServicePrincipalConfig `json:"servicePrincipal,omitempty" tfsdk:"service_principal"`
	Provisioning                               *AzureProvisioning           `json:"provisioning,omitempty" tfsdk:"provisioning"`
	B2bUserInvitation                          *AzureB2bUserInvitation      `json:"b2bUserInvitation,omitempty" tfsdk:"b2b_user_invitation"`
	SubscriptionNamePattern                    *string                      `json:"subscriptionNamePattern,omitempty" tfsdk:"subscription_name_pattern"`
	GroupNamePattern                           *string                      `json:"groupNamePattern,omitempty" tfsdk:"group_name_pattern"`
	BlueprintServicePrincipal                  *string                      `json:"blueprintServicePrincipal,omitempty" tfsdk:"blueprint_service_principal"`
	BlueprintLocation                          *string                      `json:"blueprintLocation,omitempty" tfsdk:"blueprint_location"`
	AzureRoleMappings                          []AzurePlatformRoleMapping   `json:"azureRoleMappings,omitempty" tfsdk:"azure_role_mappings"`
	TenantTags                                 *AzureTenantTags             `json:"tenantTags,omitempty" tfsdk:"tenant_tags"`
	UserLookUpStrategy                         *string                      `json:"userLookUpStrategy,omitempty" tfsdk:"user_look_up_strategy"`
	SkipUserGroupPermissionCleanup             *bool                        `json:"skipUserGroupPermissionCleanup,omitempty" tfsdk:"skip_user_group_permission_cleanup"`
	AdministrativeUnitId                       *string                      `json:"administrativeUnitId,omitempty" tfsdk:"administrative_unit_id"`
	AllowHierarchicalManagementGroupAssignment *bool                        `json:"allowHierarchicalManagementGroupAssignment,omitempty" tfsdk:"allow_hierarchical_management_group_assignment"`
}

Azure-specific replication configuration structures

type AzureRgPlatformConfig added in v0.12.2

type AzureRgPlatformConfig struct {
	EntraTenant *string                   `json:"entraTenant,omitempty" tfsdk:"entra_tenant"`
	Replication *AzureRgReplicationConfig `json:"replication,omitempty" tfsdk:"replication"`
}

type AzureRgPlatformProperties added in v0.11.0

type AzureRgPlatformProperties struct {
	AzureRgLocation     string               `json:"azureRgLocation" tfsdk:"azure_rg_location"`
	AzureRgRoleMappings []AzureRgRoleMapping `json:"azureRgRoleMappings" tfsdk:"azure_rg_role_mappings"`
	AzureFunction       *AzureFunction       `json:"azureFunction,omitempty" tfsdk:"azure_function"`
}

type AzureRgReplicationConfig added in v0.12.2

type AzureRgReplicationConfig struct {
	ServicePrincipal                           *AzureServicePrincipalConfig `json:"servicePrincipal,omitempty" tfsdk:"service_principal"`
	Subscription                               *string                      `json:"subscription,omitempty" tfsdk:"subscription"`
	ResourceGroupNamePattern                   *string                      `json:"resourceGroupNamePattern,omitempty" tfsdk:"resource_group_name_pattern"`
	UserGroupNamePattern                       *string                      `json:"userGroupNamePattern,omitempty" tfsdk:"user_group_name_pattern"`
	B2bUserInvitation                          *AzureB2bUserInvitation      `json:"b2bUserInvitation,omitempty" tfsdk:"b2b_user_invitation"`
	UserLookUpStrategy                         *string                      `json:"userLookUpStrategy,omitempty" tfsdk:"user_look_up_strategy"`
	TenantTags                                 *AzureTenantTags             `json:"tenantTags,omitempty" tfsdk:"tenant_tags"`
	SkipUserGroupPermissionCleanup             *bool                        `json:"skipUserGroupPermissionCleanup,omitempty" tfsdk:"skip_user_group_permission_cleanup"`
	AdministrativeUnitId                       *string                      `json:"administrativeUnitId,omitempty" tfsdk:"administrative_unit_id"`
	AllowHierarchicalManagementGroupAssignment *bool                        `json:"allowHierarchicalManagementGroupAssignment,omitempty" tfsdk:"allow_hierarchical_management_group_assignment"`
}

type AzureRgRoleMapping added in v0.11.0

type AzureRgRoleMapping struct {
	MeshProjectRoleRef     MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	AzureGroupSuffix       string               `json:"azureGroupSuffix" tfsdk:"azure_group_suffix"`
	AzureRoleDefinitionIds []string             `json:"azureRoleDefinitionIds" tfsdk:"azure_role_definition_ids"`
}

type AzureRoleDefinition added in v0.11.0

type AzureRoleDefinition struct {
	AzureRoleDefinitionId string  `json:"azureRoleDefinitionId" tfsdk:"azure_role_definition_id"`
	AbacCondition         *string `json:"abacCondition" tfsdk:"abac_condition"`
}

type AzureRoleMapping added in v0.11.0

type AzureRoleMapping struct {
	MeshProjectRoleRef   MeshProjectRoleRefV2  `json:"projectRoleRef" tfsdk:"project_role_ref"`
	AzureGroupSuffix     string                `json:"azureGroupSuffix" tfsdk:"azure_group_suffix"`
	AzureRoleDefinitions []AzureRoleDefinition `json:"azureRoleDefinitions" tfsdk:"azure_role_definitions"`
}

type AzureServicePrincipalConfig added in v0.12.2

type AzureServicePrincipalConfig struct {
	ClientId                    string  `json:"clientId" tfsdk:"client_id"`
	AuthType                    string  `json:"authType" tfsdk:"auth_type"`
	CredentialsAuthClientSecret *string `json:"credentialsAuthClientSecret,omitempty" tfsdk:"credentials_auth_client_secret"`
	ObjectId                    string  `json:"objectId" tfsdk:"object_id"`
}

Azure-specific service principal configurations

type AzureSourceServicePrincipalConfig added in v0.12.2

type AzureSourceServicePrincipalConfig struct {
	ClientId                    string  `json:"clientId" tfsdk:"client_id"`
	AuthType                    string  `json:"authType" tfsdk:"auth_type"`
	CredentialsAuthClientSecret *string `json:"credentialsAuthClientSecret,omitempty" tfsdk:"credentials_auth_client_secret"`
}

type AzureTagMapper added in v0.12.2

type AzureTagMapper struct {
	Key          string `json:"key" tfsdk:"key"`
	ValuePattern string `json:"valuePattern" tfsdk:"value_pattern"`
}

type AzureTenantTags added in v0.12.2

type AzureTenantTags struct {
	NamespacePrefix string           `json:"namespacePrefix" tfsdk:"namespace_prefix"`
	TagMappers      []AzureTagMapper `json:"tagMappers" tfsdk:"tag_mappers"`
}

type GcpPlatformConfig added in v0.12.2

type GcpPlatformConfig struct {
	Replication *GcpReplicationConfig `json:"replication" tfsdk:"replication"`
}

type GcpPlatformProperties added in v0.11.0

type GcpPlatformProperties struct {
	GcpCloudFunctionUrl *string          `json:"gcpCloudFunctionUrl,omitempty" tfsdk:"gcp_cloud_function_url"`
	GcpFolderId         *string          `json:"gcpFolderId,omitempty" tfsdk:"gcp_folder_id"`
	GcpRoleMappings     []GcpRoleMapping `json:"gcpRoleMappings" tfsdk:"gcp_role_mappings"`
}

type GcpPlatformRoleMapping added in v0.12.2

type GcpPlatformRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	GcpRole            string               `json:"gcpRole" tfsdk:"gcp_role"`
}

type GcpReplicationConfig added in v0.12.2

type GcpReplicationConfig struct {
	ServiceAccountConfig              *GcpServiceAccountConfig `json:"serviceAccountConfig,omitempty" tfsdk:"service_account_config"`
	Domain                            *string                  `json:"domain,omitempty" tfsdk:"domain"`
	CustomerId                        *string                  `json:"customerId,omitempty" tfsdk:"customer_id"`
	GroupNamePattern                  *string                  `json:"groupNamePattern,omitempty" tfsdk:"group_name_pattern"`
	ProjectNamePattern                *string                  `json:"projectNamePattern,omitempty" tfsdk:"project_name_pattern"`
	ProjectIdPattern                  *string                  `json:"projectIdPattern,omitempty" tfsdk:"project_id_pattern"`
	BillingAccountId                  *string                  `json:"billingAccountId,omitempty" tfsdk:"billing_account_id"`
	UserLookupStrategy                *string                  `json:"userLookupStrategy,omitempty" tfsdk:"user_lookup_strategy"`
	GcpRoleMappings                   []GcpPlatformRoleMapping `json:"gcpRoleMappings,omitempty" tfsdk:"gcp_role_mappings"`
	AllowHierarchicalFolderAssignment *bool                    `json:"allowHierarchicalFolderAssignment,omitempty" tfsdk:"allow_hierarchical_folder_assignment"`
	TenantTags                        *GcpTenantTags           `json:"tenantTags,omitempty" tfsdk:"tenant_tags"`
	SkipUserGroupPermissionCleanup    *bool                    `json:"skipUserGroupPermissionCleanup,omitempty" tfsdk:"skip_user_group_permission_cleanup"`
}

type GcpRoleMapping added in v0.11.0

type GcpRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	PlatformRoles      []string             `json:"platformRoles" tfsdk:"platform_roles"`
}

type GcpServiceAccountConfig added in v0.12.2

type GcpServiceAccountConfig struct {
	ServiceAccountCredentialsConfig      *GcpServiceAccountCredentialsConfig      `json:"serviceAccountCredentialsConfig,omitempty" tfsdk:"service_account_credentials_config"`
	ServiceAccountWorkloadIdentityConfig *GcpServiceAccountWorkloadIdentityConfig `json:"serviceAccountWorkloadIdentityConfig,omitempty" tfsdk:"service_account_workload_identity_config"`
}

type GcpServiceAccountCredentialsConfig added in v0.12.2

type GcpServiceAccountCredentialsConfig struct {
	ServiceAccountCredentialsB64 *string `json:"serviceAccountCredentialsB64,omitempty" tfsdk:"service_account_credentials_b64"`
}

type GcpServiceAccountWorkloadIdentityConfig added in v0.12.2

type GcpServiceAccountWorkloadIdentityConfig struct {
	Audience            *string `json:"audience,omitempty" tfsdk:"audience"`
	ServiceAccountEmail *string `json:"serviceAccountEmail,omitempty" tfsdk:"service_account_email"`
}

type GcpTagMapper added in v0.12.2

type GcpTagMapper struct {
	Key          string `json:"key" tfsdk:"key"`
	ValuePattern string `json:"valuePattern" tfsdk:"value_pattern"`
}

type GcpTenantTags added in v0.12.2

type GcpTenantTags struct {
	NamespacePrefix string         `json:"namespacePrefix" tfsdk:"namespace_prefix"`
	TagMappers      []GcpTagMapper `json:"tagMappers" tfsdk:"tag_mappers"`
}

type KubernetesClientConfig added in v0.12.2

type KubernetesClientConfig struct {
	AccessToken *string `json:"accessToken,omitempty" tfsdk:"access_token"`
}

type KubernetesPlatformConfig added in v0.12.2

type KubernetesPlatformConfig struct {
	BaseUrl              string                       `json:"baseUrl" tfsdk:"base_url"`
	DisableSslValidation bool                         `json:"disableSslValidation" tfsdk:"disable_ssl_validation"`
	Replication          *KubernetesReplicationConfig `json:"replication" tfsdk:"replication"`
}

type KubernetesPlatformProperties added in v0.11.0

type KubernetesPlatformProperties struct {
	KubernetesRoleMappings []KubernetesRoleMapping `json:"kubernetesRoleMappings" tfsdk:"kubernetes_role_mappings"`
}

type KubernetesReplicationConfig added in v0.12.2

type KubernetesReplicationConfig struct {
	ClientConfig         *KubernetesClientConfig `json:"clientConfig,omitempty" tfsdk:"client_config"`
	NamespaceNamePattern *string                 `json:"namespaceNamePattern,omitempty" tfsdk:"namespace_name_pattern"`
}

type KubernetesRoleMapping added in v0.11.0

type KubernetesRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	PlatformRoles      []string             `json:"platformRoles" tfsdk:"platform_roles"`
}

type LocationRef added in v0.12.2

type LocationRef struct {
	Kind string `json:"kind" tfsdk:"kind"`
	Name string `json:"name" tfsdk:"name"`
}

type MeshBuildingBlock

type MeshBuildingBlock struct {
	ApiVersion string                    `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                    `json:"kind" tfsdk:"kind"`
	Metadata   MeshBuildingBlockMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshBuildingBlockSpec     `json:"spec" tfsdk:"spec"`
	Status     MeshBuildingBlockStatus   `json:"status" tfsdk:"status"`
}

type MeshBuildingBlockCreate added in v0.5.0

type MeshBuildingBlockCreate struct {
	ApiVersion string                          `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                          `json:"kind" tfsdk:"kind"`
	Metadata   MeshBuildingBlockCreateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshBuildingBlockSpec           `json:"spec" tfsdk:"spec"`
}

type MeshBuildingBlockCreateMetadata added in v0.5.0

type MeshBuildingBlockCreateMetadata struct {
	DefinitionUuid    string `json:"definitionUuid" tfsdk:"definition_uuid"`
	DefinitionVersion int64  `json:"definitionVersion" tfsdk:"definition_version"`
	TenantIdentifier  string `json:"tenantIdentifier" tfsdk:"tenant_identifier"`
}

type MeshBuildingBlockIO

type MeshBuildingBlockIO struct {
	Key       string `json:"key" tfsdk:"key"`
	Value     any    `json:"value" tfsdk:"value"`
	ValueType string `json:"valueType" tfsdk:"value_type"`
}

type MeshBuildingBlockMetadata

type MeshBuildingBlockMetadata struct {
	Uuid                string  `json:"uuid" tfsdk:"uuid"`
	DefinitionUuid      string  `json:"definitionUuid" tfsdk:"definition_uuid"`
	DefinitionVersion   int64   `json:"definitionVersion" tfsdk:"definition_version"`
	TenantIdentifier    string  `json:"tenantIdentifier" tfsdk:"tenant_identifier"`
	ForcePurge          bool    `json:"forcePurge" tfsdk:"force_purge"`
	CreatedOn           string  `json:"createdOn" tfsdk:"created_on"`
	MarkedForDeletionOn *string `json:"markedForDeletionOn" tfsdk:"marked_for_deletion_on"`
	MarkedForDeletionBy *string `json:"markedForDeletionBy" tfsdk:"marked_for_deletion_by"`
}

type MeshBuildingBlockParent

type MeshBuildingBlockParent struct {
	BuildingBlockUuid string `json:"buildingBlockUuid" tfsdk:"buildingblock_uuid"`
	DefinitionUuid    string `json:"definitionUuid" tfsdk:"definition_uuid"`
}

type MeshBuildingBlockSpec

type MeshBuildingBlockSpec struct {
	DisplayName          string                    `json:"displayName" tfsdk:"display_name"`
	Inputs               []MeshBuildingBlockIO     `json:"inputs" tfsdk:"inputs"`
	ParentBuildingBlocks []MeshBuildingBlockParent `json:"parentBuildingBlocks" tfsdk:"parent_building_blocks"`
}

type MeshBuildingBlockStatus

type MeshBuildingBlockStatus struct {
	Status  string                `json:"status" tfsdk:"status"`
	Outputs []MeshBuildingBlockIO `json:"outputs" tfsdk:"outputs"`
}

type MeshBuildingBlockV2 added in v0.7.0

type MeshBuildingBlockV2 struct {
	ApiVersion string                      `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                      `json:"kind" tfsdk:"kind"`
	Metadata   MeshBuildingBlockV2Metadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshBuildingBlockV2Spec     `json:"spec" tfsdk:"spec"`
	Status     MeshBuildingBlockV2Status   `json:"status" tfsdk:"status"`
}

type MeshBuildingBlockV2Create added in v0.7.0

type MeshBuildingBlockV2Create struct {
	ApiVersion string                  `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                  `json:"kind" tfsdk:"kind"`
	Spec       MeshBuildingBlockV2Spec `json:"spec" tfsdk:"spec"`
}

type MeshBuildingBlockV2DefinitionVersionRef added in v0.7.0

type MeshBuildingBlockV2DefinitionVersionRef struct {
	Uuid string `json:"uuid" tfsdk:"uuid"`
}

type MeshBuildingBlockV2Metadata added in v0.7.0

type MeshBuildingBlockV2Metadata struct {
	Uuid                string  `json:"uuid" tfsdk:"uuid"`
	OwnedByWorkspace    string  `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	CreatedOn           string  `json:"createdOn" tfsdk:"created_on"`
	MarkedForDeletionOn *string `json:"markedForDeletionOn" tfsdk:"marked_for_deletion_on"`
	MarkedForDeletionBy *string `json:"markedForDeletionBy" tfsdk:"marked_for_deletion_by"`
}

type MeshBuildingBlockV2Spec added in v0.7.0

type MeshBuildingBlockV2Spec struct {
	BuildingBlockDefinitionVersionRef MeshBuildingBlockV2DefinitionVersionRef `json:"buildingBlockDefinitionVersionRef" tfsdk:"building_block_definition_version_ref"`
	TargetRef                         MeshBuildingBlockV2TargetRef            `json:"targetRef" tfsdk:"target_ref"`
	DisplayName                       string                                  `json:"displayName" tfsdk:"display_name"`

	Inputs               []MeshBuildingBlockIO     `json:"inputs" tfsdk:"inputs"`
	ParentBuildingBlocks []MeshBuildingBlockParent `json:"parentBuildingBlocks" tfsdk:"parent_building_blocks"`
}

type MeshBuildingBlockV2Status added in v0.7.0

type MeshBuildingBlockV2Status struct {
	Status     string                `json:"status" tfsdk:"status"`
	Outputs    []MeshBuildingBlockIO `json:"outputs" tfsdk:"outputs"`
	ForcePurge bool                  `json:"forcePurge" tfsdk:"force_purge"`
}

type MeshBuildingBlockV2TargetRef added in v0.7.0

type MeshBuildingBlockV2TargetRef struct {
	Kind       string  `json:"kind" tfsdk:"kind"`
	Uuid       *string `json:"uuid" tfsdk:"uuid"`
	Identifier *string `json:"identifier" tfsdk:"identifier"`
}

type MeshLandingZone added in v0.11.0

type MeshLandingZone struct {
	ApiVersion string                  `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                  `json:"kind" tfsdk:"kind"`
	Metadata   MeshLandingZoneMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshLandingZoneSpec     `json:"spec" tfsdk:"spec"`
	Status     MeshLandingZoneStatus   `json:"status" tfsdk:"status"`
}

type MeshLandingZoneCreate added in v0.11.0

type MeshLandingZoneCreate struct {
	ApiVersion string                  `json:"apiVersion" tfsdk:"api_version"`
	Metadata   MeshLandingZoneMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshLandingZoneSpec     `json:"spec" tfsdk:"spec"`
}

type MeshLandingZoneMetadata added in v0.11.0

type MeshLandingZoneMetadata struct {
	Name string              `json:"name" tfsdk:"name"`
	Tags map[string][]string `json:"tags" tfsdk:"tags"`
}

type MeshLandingZoneSpec added in v0.11.0

type MeshLandingZoneSpec struct {
	DisplayName                 string              `json:"displayName" tfsdk:"display_name"`
	Description                 string              `json:"description" tfsdk:"description"`
	AutomateDeletionApproval    bool                `json:"automateDeletionApproval" tfsdk:"automate_deletion_approval"`
	AutomateDeletionReplication bool                `json:"automateDeletionReplication" tfsdk:"automate_deletion_replication"`
	InfoLink                    *string             `json:"infoLink,omitempty" tfsdk:"info_link"`
	PlatformRef                 PlatformRef         `json:"platformRef" tfsdk:"platform_ref"`
	PlatformProperties          *PlatformProperties `json:"platformProperties,omitempty" tfsdk:"platform_properties"`
}

type MeshLandingZoneStatus added in v0.11.0

type MeshLandingZoneStatus struct {
	Disabled   bool `json:"disabled" tfsdk:"disabled"`
	Restricted bool `json:"restricted" tfsdk:"restricted"`
}

type MeshPlatform added in v0.12.2

type MeshPlatform struct {
	ApiVersion string               `json:"apiVersion" tfsdk:"api_version"`
	Kind       string               `json:"kind" tfsdk:"kind"`
	Metadata   MeshPlatformMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshPlatformSpec     `json:"spec" tfsdk:"spec"`
}

type MeshPlatformCreate added in v0.12.2

type MeshPlatformCreate struct {
	ApiVersion string                     `json:"apiVersion" tfsdk:"api_version"`
	Metadata   MeshPlatformCreateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshPlatformSpec           `json:"spec" tfsdk:"spec"`
}

type MeshPlatformCreateMetadata added in v0.12.2

type MeshPlatformCreateMetadata struct {
	Name             string `json:"name" tfsdk:"name"`
	OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
}

type MeshPlatformMetadata added in v0.12.2

type MeshPlatformMetadata struct {
	Name             string  `json:"name" tfsdk:"name"`
	OwnedByWorkspace string  `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	Uuid             string  `json:"uuid" tfsdk:"uuid"`
	CreatedOn        string  `json:"createdOn" tfsdk:"created_on"`
	DeletedOn        *string `json:"deletedOn" tfsdk:"deleted_on"`
}

type MeshPlatformSpec added in v0.12.2

type MeshPlatformSpec struct {
	DisplayName            string               `json:"displayName" tfsdk:"display_name"`
	Description            string               `json:"description" tfsdk:"description"`
	Endpoint               string               `json:"endpoint" tfsdk:"endpoint"`
	SupportUrl             *string              `json:"supportUrl,omitempty" tfsdk:"support_url"`
	DocumentationUrl       *string              `json:"documentationUrl,omitempty" tfsdk:"documentation_url"`
	LocationRef            LocationRef          `json:"locationRef" tfsdk:"location_ref"`
	ContributingWorkspaces []string             `json:"contributingWorkspaces" tfsdk:"contributing_workspaces"`
	Availability           PlatformAvailability `json:"availability" tfsdk:"availability"`
	Config                 PlatformConfig       `json:"config" tfsdk:"config"`
}

type MeshPlatformUpdate added in v0.12.2

type MeshPlatformUpdate struct {
	ApiVersion string                     `json:"apiVersion" tfsdk:"api_version"`
	Metadata   MeshPlatformUpdateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshPlatformSpec           `json:"spec" tfsdk:"spec"`
}

type MeshPlatformUpdateMetadata added in v0.12.2

type MeshPlatformUpdateMetadata struct {
	Name             string `json:"name" tfsdk:"name"`
	OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	Uuid             string `json:"uuid" tfsdk:"uuid"`
}

type MeshProject

type MeshProject struct {
	ApiVersion string              `json:"apiVersion" tfsdk:"api_version"`
	Kind       string              `json:"kind" tfsdk:"kind"`
	Metadata   MeshProjectMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshProjectSpec     `json:"spec" tfsdk:"spec"`
}

type MeshProjectBinding added in v0.4.0

type MeshProjectBinding struct {
	ApiVersion string                     `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                     `json:"kind" tfsdk:"kind"`
	Metadata   MeshProjectBindingMetadata `json:"metadata" tfsdk:"metadata"`
	RoleRef    MeshProjectRoleRef         `json:"roleRef" tfsdk:"role_ref"`
	TargetRef  MeshProjectTargetRef       `json:"targetRef" tfsdk:"target_ref"`
	Subject    MeshSubject                `json:"subject" tfsdk:"subject"`
}

type MeshProjectBindingMetadata added in v0.4.0

type MeshProjectBindingMetadata struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshProjectCreate

type MeshProjectCreate struct {
	Metadata MeshProjectCreateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec     MeshProjectSpec           `json:"spec" tfsdk:"spec"`
}

type MeshProjectCreateMetadata

type MeshProjectCreateMetadata struct {
	Name             string `json:"name" tfsdk:"name"`
	OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
}

type MeshProjectGroupBinding added in v0.4.0

type MeshProjectGroupBinding = MeshProjectBinding

type MeshProjectMetadata

type MeshProjectMetadata struct {
	Name             string  `json:"name" tfsdk:"name"`
	OwnedByWorkspace string  `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	CreatedOn        string  `json:"createdOn" tfsdk:"created_on"`
	DeletedOn        *string `json:"deletedOn" tfsdk:"deleted_on"`
}

type MeshProjectRoleRef deprecated

type MeshProjectRoleRef struct {
	Name string `json:"name" tfsdk:"name"`
}

Deprecated: Use MeshProjectRoleRefV2 if possible. The convention is to also provide the `kind`, so this struct should only be used for meshobjects that violate our API conventions.

type MeshProjectRoleRefV2 added in v0.11.0

type MeshProjectRoleRefV2 struct {
	Name string `json:"name" tfsdk:"name"`
	Kind string `json:"kind" tfsdk:"kind"`
}

type MeshProjectSpec

type MeshProjectSpec struct {
	DisplayName                       string              `json:"displayName" tfsdk:"display_name"`
	Tags                              map[string][]string `json:"tags" tfsdk:"tags"`
	PaymentMethodIdentifier           *string             `json:"paymentMethodIdentifier" tfsdk:"payment_method_identifier"`
	SubstitutePaymentMethodIdentifier *string             `json:"substitutePaymentMethodIdentifier" tfsdk:"substitute_payment_method_identifier"`
}

type MeshProjectTargetRef

type MeshProjectTargetRef struct {
	Name             string `json:"name" tfsdk:"name"`
	OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
}

type MeshProjectUserBinding

type MeshProjectUserBinding = MeshProjectBinding

type MeshStackProviderClient

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

func NewClient

func NewClient(rootUrl *url.URL, apiKey string, apiSecret string) (*MeshStackProviderClient, error)

func (*MeshStackProviderClient) CreateBuildingBlock added in v0.5.0

func (*MeshStackProviderClient) CreateBuildingBlockV2 added in v0.7.0

func (*MeshStackProviderClient) CreateLandingZone added in v0.11.0

func (c *MeshStackProviderClient) CreateLandingZone(landingZone *MeshLandingZoneCreate) (*MeshLandingZone, error)

func (*MeshStackProviderClient) CreatePlatform added in v0.12.2

func (c *MeshStackProviderClient) CreatePlatform(platform *MeshPlatformCreate) (*MeshPlatform, error)

func (*MeshStackProviderClient) CreateProject

func (c *MeshStackProviderClient) CreateProject(project *MeshProjectCreate) (*MeshProject, error)

func (*MeshStackProviderClient) CreateProjectGroupBinding added in v0.4.0

func (c *MeshStackProviderClient) CreateProjectGroupBinding(binding *MeshProjectGroupBinding) (*MeshProjectGroupBinding, error)

func (*MeshStackProviderClient) CreateProjectUserBinding

func (c *MeshStackProviderClient) CreateProjectUserBinding(binding *MeshProjectUserBinding) (*MeshProjectUserBinding, error)

func (*MeshStackProviderClient) CreateTagDefinition added in v0.6.0

func (c *MeshStackProviderClient) CreateTagDefinition(tagDefinition *MeshTagDefinition) (*MeshTagDefinition, error)

func (*MeshStackProviderClient) CreateTenant

func (c *MeshStackProviderClient) CreateTenant(tenant *MeshTenantCreate) (*MeshTenant, error)

func (*MeshStackProviderClient) CreateTenantV4 added in v0.8.0

func (c *MeshStackProviderClient) CreateTenantV4(tenant *MeshTenantV4Create) (*MeshTenantV4, error)

func (*MeshStackProviderClient) CreateWorkspace added in v0.8.0

func (c *MeshStackProviderClient) CreateWorkspace(workspace *MeshWorkspaceCreate) (*MeshWorkspace, error)

func (*MeshStackProviderClient) CreateWorkspaceGroupBinding added in v0.11.0

func (c *MeshStackProviderClient) CreateWorkspaceGroupBinding(binding *MeshWorkspaceGroupBinding) (*MeshWorkspaceGroupBinding, error)

func (*MeshStackProviderClient) CreateWorkspaceUserBinding added in v0.11.0

func (c *MeshStackProviderClient) CreateWorkspaceUserBinding(binding *MeshWorkspaceUserBinding) (*MeshWorkspaceUserBinding, error)

func (*MeshStackProviderClient) DeleteBuildingBlock added in v0.5.0

func (c *MeshStackProviderClient) DeleteBuildingBlock(uuid string) error

func (*MeshStackProviderClient) DeleteBuildingBlockV2 added in v0.7.0

func (c *MeshStackProviderClient) DeleteBuildingBlockV2(uuid string) error

func (*MeshStackProviderClient) DeleteLandingZone added in v0.11.0

func (c *MeshStackProviderClient) DeleteLandingZone(name string) error

func (*MeshStackProviderClient) DeletePlatform added in v0.12.2

func (c *MeshStackProviderClient) DeletePlatform(uuid string) error

func (*MeshStackProviderClient) DeleteProjecGroupBinding added in v0.4.0

func (c *MeshStackProviderClient) DeleteProjecGroupBinding(name string) error

func (*MeshStackProviderClient) DeleteProjecUserBinding

func (c *MeshStackProviderClient) DeleteProjecUserBinding(name string) error

func (*MeshStackProviderClient) DeleteProject

func (c *MeshStackProviderClient) DeleteProject(workspace string, name string) error

func (*MeshStackProviderClient) DeleteTagDefinition added in v0.6.0

func (c *MeshStackProviderClient) DeleteTagDefinition(name string) error

func (*MeshStackProviderClient) DeleteTenant

func (c *MeshStackProviderClient) DeleteTenant(workspace string, project string, platform string) error

func (*MeshStackProviderClient) DeleteTenantV4 added in v0.8.0

func (c *MeshStackProviderClient) DeleteTenantV4(uuid string) error

func (*MeshStackProviderClient) DeleteWorkspace added in v0.8.0

func (c *MeshStackProviderClient) DeleteWorkspace(name string) error

func (*MeshStackProviderClient) DeleteWorkspaceGroupBinding added in v0.11.0

func (c *MeshStackProviderClient) DeleteWorkspaceGroupBinding(name string) error

func (*MeshStackProviderClient) DeleteWorkspaceUserBinding added in v0.11.0

func (c *MeshStackProviderClient) DeleteWorkspaceUserBinding(name string) error

func (*MeshStackProviderClient) PollBuildingBlockV2UntilCompletion added in v0.9.0

func (c *MeshStackProviderClient) PollBuildingBlockV2UntilCompletion(ctx context.Context, uuid string) (*MeshBuildingBlockV2, error)

PollBuildingBlockV2UntilCompletion polls a building block until it reaches a terminal state (SUCCEEDED or FAILED) Returns the final building block state or an error if polling fails or times out

func (*MeshStackProviderClient) PollBuildingBlockV2UntilDeletion added in v0.9.0

func (c *MeshStackProviderClient) PollBuildingBlockV2UntilDeletion(ctx context.Context, uuid string) error

PollBuildingBlockV2UntilDeletion polls a building block until it is deleted (not found) Returns nil on successful deletion or an error if polling fails or times out

func (*MeshStackProviderClient) PollTenantV4UntilCreation added in v0.9.0

func (c *MeshStackProviderClient) PollTenantV4UntilCreation(ctx context.Context, uuid string) (*MeshTenantV4, error)

PollTenantV4UntilCreation polls a tenant until creation completes (platformTenantId is set) Returns the final tenant state or an error if polling fails or times out

func (*MeshStackProviderClient) PollTenantV4UntilDeletion added in v0.9.0

func (c *MeshStackProviderClient) PollTenantV4UntilDeletion(ctx context.Context, uuid string) error

PollTenantV4UntilDeletion polls a tenant until it is deleted (not found) Returns nil on successful deletion or an error if polling fails or times out

func (*MeshStackProviderClient) ReadBuildingBlock

func (c *MeshStackProviderClient) ReadBuildingBlock(uuid string) (*MeshBuildingBlock, error)

func (*MeshStackProviderClient) ReadBuildingBlockV2 added in v0.7.0

func (c *MeshStackProviderClient) ReadBuildingBlockV2(uuid string) (*MeshBuildingBlockV2, error)

func (*MeshStackProviderClient) ReadLandingZone added in v0.11.0

func (c *MeshStackProviderClient) ReadLandingZone(name string) (*MeshLandingZone, error)

func (*MeshStackProviderClient) ReadPlatform added in v0.12.2

func (c *MeshStackProviderClient) ReadPlatform(uuid string) (*MeshPlatform, error)

func (*MeshStackProviderClient) ReadProject

func (c *MeshStackProviderClient) ReadProject(workspace string, name string) (*MeshProject, error)

func (*MeshStackProviderClient) ReadProjectGroupBinding added in v0.4.0

func (c *MeshStackProviderClient) ReadProjectGroupBinding(name string) (*MeshProjectGroupBinding, error)

func (*MeshStackProviderClient) ReadProjectUserBinding

func (c *MeshStackProviderClient) ReadProjectUserBinding(name string) (*MeshProjectUserBinding, error)

func (*MeshStackProviderClient) ReadProjects

func (c *MeshStackProviderClient) ReadProjects(workspaceIdentifier string, paymentMethodIdentifier *string) (*[]MeshProject, error)

func (*MeshStackProviderClient) ReadTagDefinition added in v0.6.0

func (c *MeshStackProviderClient) ReadTagDefinition(name string) (*MeshTagDefinition, error)

func (*MeshStackProviderClient) ReadTagDefinitions added in v0.6.0

func (c *MeshStackProviderClient) ReadTagDefinitions() (*[]MeshTagDefinition, error)

func (*MeshStackProviderClient) ReadTenant

func (c *MeshStackProviderClient) ReadTenant(workspace string, project string, platform string) (*MeshTenant, error)

func (*MeshStackProviderClient) ReadTenantV4 added in v0.8.0

func (c *MeshStackProviderClient) ReadTenantV4(uuid string) (*MeshTenantV4, error)

func (*MeshStackProviderClient) ReadWorkspace added in v0.8.0

func (c *MeshStackProviderClient) ReadWorkspace(name string) (*MeshWorkspace, error)

func (*MeshStackProviderClient) ReadWorkspaceGroupBinding added in v0.11.0

func (c *MeshStackProviderClient) ReadWorkspaceGroupBinding(name string) (*MeshWorkspaceGroupBinding, error)

func (*MeshStackProviderClient) ReadWorkspaceUserBinding added in v0.11.0

func (c *MeshStackProviderClient) ReadWorkspaceUserBinding(name string) (*MeshWorkspaceUserBinding, error)

func (*MeshStackProviderClient) UpdateLandingZone added in v0.11.0

func (c *MeshStackProviderClient) UpdateLandingZone(name string, landingZone *MeshLandingZoneCreate) (*MeshLandingZone, error)

func (*MeshStackProviderClient) UpdatePlatform added in v0.12.2

func (c *MeshStackProviderClient) UpdatePlatform(uuid string, platform *MeshPlatformUpdate) (*MeshPlatform, error)

func (*MeshStackProviderClient) UpdateProject

func (c *MeshStackProviderClient) UpdateProject(project *MeshProjectCreate) (*MeshProject, error)

func (*MeshStackProviderClient) UpdateTagDefinition added in v0.6.0

func (c *MeshStackProviderClient) UpdateTagDefinition(tagDefinition *MeshTagDefinition) (*MeshTagDefinition, error)

func (*MeshStackProviderClient) UpdateWorkspace added in v0.8.0

func (c *MeshStackProviderClient) UpdateWorkspace(name string, workspace *MeshWorkspaceCreate) (*MeshWorkspace, error)

type MeshSubject

type MeshSubject struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshTagDefinition added in v0.6.0

type MeshTagDefinition struct {
	ApiVersion string                    `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                    `json:"kind" tfsdk:"kind"`
	Metadata   MeshTagDefinitionMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshTagDefinitionSpec     `json:"spec" tfsdk:"spec"`
}

type MeshTagDefinitionMetadata added in v0.6.0

type MeshTagDefinitionMetadata struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshTagDefinitionSpec added in v0.6.0

type MeshTagDefinitionSpec struct {
	TargetKind     string                     `json:"targetKind" tfsdk:"target_kind"`
	Key            string                     `json:"key" tfsdk:"key"`
	ValueType      MeshTagDefinitionValueType `json:"valueType" tfsdk:"value_type"`
	Description    string                     `json:"description" tfsdk:"description"`
	DisplayName    string                     `json:"displayName" tfsdk:"display_name"`
	SortOrder      int64                      `json:"sortOrder" tfsdk:"sort_order"`
	Mandatory      bool                       `json:"mandatory" tfsdk:"mandatory"`
	Immutable      bool                       `json:"immutable" tfsdk:"immutable"`
	Restricted     bool                       `json:"restricted" tfsdk:"restricted"`
	ReplicationKey *string                    `json:"replicationKey,omitempty" tfsdk:"replication_key"`
}

type MeshTagDefinitionValueType added in v0.6.0

type MeshTagDefinitionValueType struct {
	String       *TagValueString       `json:"string,omitempty" tfsdk:"string"`
	Email        *TagValueEmail        `json:"email,omitempty" tfsdk:"email"`
	Integer      *TagValueInteger      `json:"integer,omitempty" tfsdk:"integer"`
	Number       *TagValueNumber       `json:"number,omitempty" tfsdk:"number"`
	SingleSelect *TagValueSingleSelect `json:"singleSelect,omitempty" tfsdk:"single_select"`
	MultiSelect  *TagValueMultiSelect  `json:"multiSelect,omitempty" tfsdk:"multi_select"`
}

type MeshTenant

type MeshTenant struct {
	ApiVersion string             `json:"apiVersion" tfsdk:"api_version"`
	Kind       string             `json:"kind" tfsdk:"kind"`
	Metadata   MeshTenantMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshTenantSpec     `json:"spec" tfsdk:"spec"`
}

type MeshTenantCreate

type MeshTenantCreate struct {
	Metadata MeshTenantCreateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec     MeshTenantCreateSpec     `json:"spec" tfsdk:"spec"`
}

type MeshTenantCreateMetadata

type MeshTenantCreateMetadata struct {
	OwnedByProject     string `json:"ownedByProject" tfsdk:"owned_by_project"`
	OwnedByWorkspace   string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	PlatformIdentifier string `json:"platformIdentifier" tfsdk:"platform_identifier"`
}

type MeshTenantCreateSpec

type MeshTenantCreateSpec struct {
	LocalId               *string            `json:"localId" tfsdk:"local_id"`
	LandingZoneIdentifier *string            `json:"landingZoneIdentifier" tfsdk:"landing_zone_identifier"`
	Quotas                *[]MeshTenantQuota `json:"quotas" tfsdk:"quotas"`
}

type MeshTenantMetadata

type MeshTenantMetadata struct {
	OwnedByProject     string              `json:"ownedByProject" tfsdk:"owned_by_project"`
	OwnedByWorkspace   string              `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	PlatformIdentifier string              `json:"platformIdentifier" tfsdk:"platform_identifier"`
	AssignedTags       map[string][]string `json:"assignedTags" tfsdk:"assigned_tags"`
	DeletedOn          *string             `json:"deletedOn" tfsdk:"deleted_on"`
}

type MeshTenantQuota

type MeshTenantQuota struct {
	Key   string `json:"key" tfsdk:"key"`
	Value int64  `json:"value" tfsdk:"value"`
}

type MeshTenantSpec

type MeshTenantSpec struct {
	LocalId               *string           `json:"localId" tfsdk:"local_id"`
	LandingZoneIdentifier string            `json:"landingZoneIdentifier" tfsdk:"landing_zone_identifier"`
	Quotas                []MeshTenantQuota `json:"quotas" tfsdk:"quotas"`
}

type MeshTenantV4 added in v0.8.0

type MeshTenantV4 struct {
	ApiVersion string               `json:"apiVersion" tfsdk:"api_version"`
	Kind       string               `json:"kind" tfsdk:"kind"`
	Metadata   MeshTenantV4Metadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshTenantV4Spec     `json:"spec" tfsdk:"spec"`
	Status     MeshTenantV4Status   `json:"status" tfsdk:"status"`
}

type MeshTenantV4Create added in v0.8.0

type MeshTenantV4Create struct {
	Metadata MeshTenantV4CreateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec     MeshTenantV4CreateSpec     `json:"spec" tfsdk:"spec"`
}

type MeshTenantV4CreateMetadata added in v0.8.0

type MeshTenantV4CreateMetadata struct {
	OwnedByProject   string `json:"ownedByProject" tfsdk:"owned_by_project"`
	OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
}

type MeshTenantV4CreateSpec added in v0.8.0

type MeshTenantV4CreateSpec struct {
	PlatformIdentifier    string             `json:"platformIdentifier" tfsdk:"platform_identifier"`
	LandingZoneIdentifier *string            `json:"landingZoneIdentifier" tfsdk:"landing_zone_identifier"`
	PlatformTenantId      *string            `json:"platformTenantId" tfsdk:"platform_tenant_id"`
	Quotas                *[]MeshTenantQuota `json:"quotas" tfsdk:"quotas"`
}

type MeshTenantV4Metadata added in v0.8.0

type MeshTenantV4Metadata struct {
	Uuid                string  `json:"uuid" tfsdk:"uuid"`
	OwnedByProject      string  `json:"ownedByProject" tfsdk:"owned_by_project"`
	OwnedByWorkspace    string  `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
	CreatedOn           string  `json:"createdOn" tfsdk:"created_on"`
	MarkedForDeletionOn *string `json:"markedForDeletionOn" tfsdk:"marked_for_deletion_on"`
	DeletedOn           *string `json:"deletedOn" tfsdk:"deleted_on"`
}

type MeshTenantV4Spec added in v0.8.0

type MeshTenantV4Spec struct {
	PlatformIdentifier    string             `json:"platformIdentifier" tfsdk:"platform_identifier"`
	PlatformTenantId      *string            `json:"platformTenantId" tfsdk:"platform_tenant_id"`
	LandingZoneIdentifier *string            `json:"landingZoneIdentifier" tfsdk:"landing_zone_identifier"`
	Quotas                *[]MeshTenantQuota `json:"quotas" tfsdk:"quotas"`
}

type MeshTenantV4Status added in v0.8.0

type MeshTenantV4Status struct {
	TenantName                  string              `json:"tenantName" tfsdk:"tenant_name"`
	PlatformTypeIdentifier      string              `json:"platformTypeIdentifier" tfsdk:"platform_type_identifier"`
	PlatformWorkspaceIdentifier *string             `json:"platformWorkspaceIdentifier" tfsdk:"platform_workspace_identifier"`
	Tags                        map[string][]string `json:"tags" tfsdk:"tags"`
}

type MeshWorkspace added in v0.8.0

type MeshWorkspace struct {
	ApiVersion string                `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                `json:"kind" tfsdk:"kind"`
	Metadata   MeshWorkspaceMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshWorkspaceSpec     `json:"spec" tfsdk:"spec"`
}

type MeshWorkspaceBinding added in v0.11.0

type MeshWorkspaceBinding struct {
	ApiVersion string                       `json:"apiVersion" tfsdk:"api_version"`
	Kind       string                       `json:"kind" tfsdk:"kind"`
	Metadata   MeshWorkspaceBindingMetadata `json:"metadata" tfsdk:"metadata"`
	RoleRef    MeshWorkspaceRoleRef         `json:"roleRef" tfsdk:"role_ref"`
	TargetRef  MeshWorkspaceTargetRef       `json:"targetRef" tfsdk:"target_ref"`
	Subject    MeshWorkspaceSubject         `json:"subject" tfsdk:"subject"`
}

type MeshWorkspaceBindingMetadata added in v0.11.0

type MeshWorkspaceBindingMetadata struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshWorkspaceCreate added in v0.8.0

type MeshWorkspaceCreate struct {
	ApiVersion string                      `json:"apiVersion" tfsdk:"api_version"`
	Metadata   MeshWorkspaceCreateMetadata `json:"metadata" tfsdk:"metadata"`
	Spec       MeshWorkspaceSpec           `json:"spec" tfsdk:"spec"`
}

type MeshWorkspaceCreateMetadata added in v0.8.0

type MeshWorkspaceCreateMetadata struct {
	Name string              `json:"name" tfsdk:"name"`
	Tags map[string][]string `json:"tags" tfsdk:"tags"`
}

type MeshWorkspaceGroupBinding added in v0.11.0

type MeshWorkspaceGroupBinding = MeshWorkspaceBinding

type MeshWorkspaceMetadata added in v0.8.0

type MeshWorkspaceMetadata struct {
	Name      string              `json:"name" tfsdk:"name"`
	CreatedOn string              `json:"createdOn" tfsdk:"created_on"`
	DeletedOn *string             `json:"deletedOn" tfsdk:"deleted_on"`
	Tags      map[string][]string `json:"tags" tfsdk:"tags"`
}

type MeshWorkspaceRoleRef added in v0.11.0

type MeshWorkspaceRoleRef struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshWorkspaceSpec added in v0.8.0

type MeshWorkspaceSpec struct {
	DisplayName                  string `json:"displayName" tfsdk:"display_name"`
	PlatformBuilderAccessEnabled *bool  `json:"platformBuilderAccessEnabled,omitempty" tfsdk:"platform_builder_access_enabled"`
}

type MeshWorkspaceSubject added in v0.11.0

type MeshWorkspaceSubject struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshWorkspaceTargetRef added in v0.11.0

type MeshWorkspaceTargetRef struct {
	Name string `json:"name" tfsdk:"name"`
}

type MeshWorkspaceUserBinding added in v0.11.0

type MeshWorkspaceUserBinding = MeshWorkspaceBinding

type OpenShiftClientConfig added in v0.12.2

type OpenShiftClientConfig struct {
	AccessToken *string `json:"accessToken,omitempty" tfsdk:"access_token"`
}

type OpenShiftPlatformConfig added in v0.12.2

type OpenShiftPlatformConfig struct {
	BaseUrl              string                      `json:"baseUrl" tfsdk:"base_url"`
	DisableSslValidation bool                        `json:"disableSslValidation" tfsdk:"disable_ssl_validation"`
	Replication          *OpenShiftReplicationConfig `json:"replication" tfsdk:"replication"`
}

type OpenShiftPlatformProperties added in v0.11.0

type OpenShiftPlatformProperties struct {
	OpenShiftTemplate *string `json:"openShiftTemplate,omitempty" tfsdk:"openshift_template"`
}

type OpenShiftPlatformRoleMapping added in v0.12.2

type OpenShiftPlatformRoleMapping struct {
	MeshProjectRoleRef MeshProjectRoleRefV2 `json:"projectRoleRef" tfsdk:"project_role_ref"`
	OpenShiftRole      string               `json:"openshiftRole" tfsdk:"openshift_role"`
}

type OpenShiftReplicationConfig added in v0.12.2

type OpenShiftReplicationConfig struct {
	ClientConfig                *OpenShiftClientConfig         `json:"clientConfig,omitempty" tfsdk:"client_config"`
	WebConsoleUrl               *string                        `json:"webConsoleUrl,omitempty" tfsdk:"web_console_url"`
	ProjectNamePattern          *string                        `json:"projectNamePattern,omitempty" tfsdk:"project_name_pattern"`
	EnableTemplateInstantiation *bool                          `json:"enableTemplateInstantiation,omitempty" tfsdk:"enable_template_instantiation"`
	OpenShiftRoleMappings       []OpenShiftPlatformRoleMapping `json:"openshiftRoleMappings,omitempty" tfsdk:"openshift_role_mappings"`
	IdentityProviderName        *string                        `json:"identityProviderName,omitempty" tfsdk:"identity_provider_name"`
	TenantTags                  *OpenShiftTenantTags           `json:"tenantTags,omitempty" tfsdk:"tenant_tags"`
}

type OpenShiftTagMapper added in v0.12.2

type OpenShiftTagMapper struct {
	Key          string `json:"key" tfsdk:"key"`
	ValuePattern string `json:"valuePattern" tfsdk:"value_pattern"`
}

type OpenShiftTenantTags added in v0.12.2

type OpenShiftTenantTags struct {
	NamespacePrefix string               `json:"namespacePrefix" tfsdk:"namespace_prefix"`
	TagMappers      []OpenShiftTagMapper `json:"tagMappers" tfsdk:"tag_mappers"`
}

type PlatformAvailability added in v0.12.2

type PlatformAvailability struct {
	Restriction            string   `json:"restriction" tfsdk:"restriction"`
	PublicationState       string   `json:"publicationState" tfsdk:"publication_state"`
	RestrictedToWorkspaces []string `json:"restrictedToWorkspaces,omitempty" tfsdk:"restricted_to_workspaces"`
}

type PlatformConfig added in v0.12.2

type PlatformConfig struct {
	Type       string                    `json:"type" tfsdk:"type"`
	Aws        *AwsPlatformConfig        `json:"aws,omitempty" tfsdk:"aws"`
	Aks        *AksPlatformConfig        `json:"aks,omitempty" tfsdk:"aks"`
	Azure      *AzurePlatformConfig      `json:"azure,omitempty" tfsdk:"azure"`
	AzureRg    *AzureRgPlatformConfig    `json:"azurerg,omitempty" tfsdk:"azurerg"`
	Gcp        *GcpPlatformConfig        `json:"gcp,omitempty" tfsdk:"gcp"`
	Kubernetes *KubernetesPlatformConfig `json:"kubernetes,omitempty" tfsdk:"kubernetes"`
	OpenShift  *OpenShiftPlatformConfig  `json:"openshift,omitempty" tfsdk:"openshift"`
}

type PlatformProperties added in v0.11.0

type PlatformProperties struct {
	Type       string                        `json:"type" tfsdk:"type"`
	Aws        *AwsPlatformProperties        `json:"aws" tfsdk:"aws"`
	Aks        *AksPlatformProperties        `json:"aks" tfsdk:"aks"`
	Azure      *AzurePlatformProperties      `json:"azure" tfsdk:"azure"`
	AzureRg    *AzureRgPlatformProperties    `json:"azurerg" tfsdk:"azurerg"`
	Gcp        *GcpPlatformProperties        `json:"gcp" tfsdk:"gcp"`
	Kubernetes *KubernetesPlatformProperties `json:"kubernetes" tfsdk:"kubernetes"`
	OpenShift  *OpenShiftPlatformProperties  `json:"openshift" tfsdk:"openshift"`
}

type PlatformRef added in v0.11.0

type PlatformRef struct {
	Uuid string `json:"uuid" tfsdk:"uuid"`
	Kind string `json:"kind" tfsdk:"kind"`
}

type ServicePrincipalConfig added in v0.12.2

type ServicePrincipalConfig struct {
	ClientId                    string  `json:"clientId" tfsdk:"client_id"`
	AuthType                    string  `json:"authType" tfsdk:"auth_type"`
	CredentialsAuthClientSecret *string `json:"credentialsAuthClientSecret,omitempty" tfsdk:"credentials_auth_client_secret"`
	EntraTenant                 string  `json:"entraTenant" tfsdk:"entra_tenant"`
	ObjectId                    string  `json:"objectId" tfsdk:"object_id"`
}

type TagValueEmail added in v0.6.0

type TagValueEmail struct {
	DefaultValue    *string `json:"defaultValue,omitempty" tfsdk:"default_value"`
	ValidationRegex *string `json:"validationRegex,omitempty" tfsdk:"validation_regex"`
}

type TagValueInteger added in v0.6.0

type TagValueInteger struct {
	DefaultValue *int64 `json:"defaultValue,omitempty" tfsdk:"default_value"`
}

type TagValueMultiSelect added in v0.6.0

type TagValueMultiSelect struct {
	Options      []string  `json:"options,omitempty" tfsdk:"options"`
	DefaultValue *[]string `json:"defaultValue,omitempty" tfsdk:"default_value"`
}

type TagValueNumber added in v0.6.0

type TagValueNumber struct {
	DefaultValue *float64 `json:"defaultValue,omitempty" tfsdk:"default_value"`
}

type TagValueSingleSelect added in v0.6.0

type TagValueSingleSelect struct {
	Options      []string `json:"options,omitempty" tfsdk:"options"`
	DefaultValue *string  `json:"defaultValue,omitempty" tfsdk:"default_value"`
}

type TagValueString added in v0.6.0

type TagValueString struct {
	DefaultValue    *string `json:"defaultValue,omitempty" tfsdk:"default_value"`
	ValidationRegex *string `json:"validationRegex,omitempty" tfsdk:"validation_regex"`
}

Jump to

Keyboard shortcuts

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