Documentation
¶
Index ¶
- Constants
- Variables
- func AllApiKeyPermissions() []string
- func TagInputTargetsFor(targetType MeshBuildingBlockType) enum.Enum[MeshBuildingBlockTagInputTarget]
- func WithListOptions(ctx context.Context, options ListOptions) context.Context
- func WorkspacePermissionCodes() []string
- type AksMeteringConfig
- type AksPlatformConfig
- type AksPlatformProperties
- type AksReplicationConfig
- type AksServicePrincipalConfig
- type ApiKeyPermissions
- type ApiPermission
- type AppliedQuotaValue
- type Authorization
- type AwsAccessConfig
- type AwsAuth
- type AwsEnrollmentConfiguration
- type AwsIdentityStoreConfig
- type AwsIdentityStoreRoleMapping
- type AwsMeteringConfig
- type AwsPlatformConfig
- type AwsPlatformProperties
- type AwsReplicationConfig
- type AwsRoleMapping
- type AwsServiceUserCredential
- type AwsSsoConfig
- type AwsSsoRoleMapping
- type AwsWorkloadIdentityCredential
- type AzureAuthConfig
- type AzureCustomerAgreementConfig
- type AzureEnterpriseEnrollmentConfig
- type AzureFunction
- type AzureGraphApiCredentials
- type AzureInviteB2BUserConfig
- type AzureMeteringConfig
- type AzurePlatformConfig
- type AzurePlatformProperties
- type AzurePreProvisionedSubscriptionConfig
- type AzureReplicationConfig
- type AzureRgPlatformConfig
- type AzureRgPlatformProperties
- type AzureRgReplicationConfig
- type AzureRgRoleMapping
- type AzureRole
- type AzureRoleDefinition
- type AzureRoleMapping
- type AzureRoleMappingProperty
- type AzureServicePrincipalConfig
- type AzureSubscriptionProvisioningConfig
- type BuildingBlockDeletionMode
- type BuildingBlockLifecycleState
- type BuildingBlockStatus
- type Client
- type CustomMeteringConfig
- type CustomPlatformConfig
- type CustomPlatformProperties
- type GcpMeteringConfig
- type GcpPlatformConfig
- type GcpPlatformProperties
- type GcpPlatformRoleMapping
- type GcpReplicationConfig
- type GcpRoleMapping
- type GcpServiceAccountConfig
- type GcpServiceAccountWorkloadIdentityConfig
- type HttpError
- type KubernetesClientConfig
- type KubernetesMeteringConfig
- type KubernetesPlatformConfig
- type KubernetesPlatformProperties
- type KubernetesReplicationConfig
- type KubernetesRoleMapping
- type ListOptions
- type MeshApiKey
- type MeshApiKeyClient
- type MeshApiKeyMetadata
- type MeshApiKeySpec
- type MeshApiKeyStatus
- type MeshAwsWifProvider
- type MeshBuildingBlock
- type MeshBuildingBlockClient
- type MeshBuildingBlockCreate
- type MeshBuildingBlockCreateMetadata
- type MeshBuildingBlockDefinition
- type MeshBuildingBlockDefinitionApprovalPolicies
- type MeshBuildingBlockDefinitionAzureDevOpsPipelineImplementation
- type MeshBuildingBlockDefinitionClient
- type MeshBuildingBlockDefinitionCloudWif
- type MeshBuildingBlockDefinitionGitHubWorkflowsImplementation
- type MeshBuildingBlockDefinitionGitLabPipelineImplementation
- type MeshBuildingBlockDefinitionImplementation
- type MeshBuildingBlockDefinitionInput
- type MeshBuildingBlockDefinitionManualImplementation
- type MeshBuildingBlockDefinitionMetadata
- type MeshBuildingBlockDefinitionOutput
- type MeshBuildingBlockDefinitionOutputAssignmentType
- type MeshBuildingBlockDefinitionSchedule
- type MeshBuildingBlockDefinitionSpec
- type MeshBuildingBlockDefinitionSshKnownHost
- type MeshBuildingBlockDefinitionStatus
- type MeshBuildingBlockDefinitionStatusVersion
- type MeshBuildingBlockDefinitionTerraformImplementation
- type MeshBuildingBlockDefinitionVersion
- type MeshBuildingBlockDefinitionVersionClient
- type MeshBuildingBlockDefinitionVersionMetadata
- type MeshBuildingBlockDefinitionVersionSpec
- type MeshBuildingBlockDefinitionVersionState
- type MeshBuildingBlockDefinitionVersionStatus
- type MeshBuildingBlockDefinitionWif
- type MeshBuildingBlockIO
- type MeshBuildingBlockIOType
- type MeshBuildingBlockImplementationType
- type MeshBuildingBlockInput
- type MeshBuildingBlockInputAssignmentType
- type MeshBuildingBlockMetadata
- type MeshBuildingBlockOutput
- type MeshBuildingBlockParent
- type MeshBuildingBlockRun
- type MeshBuildingBlockRunBuildingBlock
- type MeshBuildingBlockRunBuildingBlockSpec
- type MeshBuildingBlockRunClient
- type MeshBuildingBlockRunListFilter
- type MeshBuildingBlockRunLogs
- type MeshBuildingBlockRunMetadata
- type MeshBuildingBlockRunSpec
- type MeshBuildingBlockRunStepLog
- type MeshBuildingBlockRunner
- type MeshBuildingBlockRunnerClient
- type MeshBuildingBlockRunnerImplementationType
- type MeshBuildingBlockRunnerMetadata
- type MeshBuildingBlockRunnerSpec
- type MeshBuildingBlockScheduleFrequency
- type MeshBuildingBlockScheduleMode
- type MeshBuildingBlockSpec
- type MeshBuildingBlockStatus
- type MeshBuildingBlockTagInputTarget
- type MeshBuildingBlockType
- type MeshBuildingBlockV2
- type MeshBuildingBlockV2Client
- type MeshBuildingBlockV2DefinitionVersionRef
- type MeshBuildingBlockV2Lifecycle
- type MeshBuildingBlockV2ListFilter
- type MeshBuildingBlockV2Metadata
- type MeshBuildingBlockV2Parent
- type MeshBuildingBlockV2Spec
- type MeshBuildingBlockV2Status
- type MeshBuildingBlockV2TargetRef
- type MeshFeatureFlag
- type MeshInfo
- type MeshInfoClient
- type MeshIntegration
- type MeshIntegrationAzureDevopsConfig
- type MeshIntegrationClient
- type MeshIntegrationConfig
- type MeshIntegrationConfigType
- type MeshIntegrationEntraIdConfig
- type MeshIntegrationGithubConfig
- type MeshIntegrationGitlabConfig
- type MeshIntegrationMetadata
- type MeshIntegrationSpec
- type MeshIntegrationStatus
- type MeshLandingZone
- type MeshLandingZoneClient
- type MeshLandingZoneCreate
- type MeshLandingZoneListQuery
- type MeshLandingZoneMetadata
- type MeshLandingZonePlatformProperties
- type MeshLandingZoneQuota
- type MeshLandingZoneSpec
- type MeshLandingZoneStatus
- type MeshListingClient
- type MeshLocation
- type MeshLocationClient
- type MeshLocationCreate
- type MeshLocationCreateMetadata
- type MeshLocationMetadata
- type MeshLocationSpec
- type MeshLocationStatus
- type MeshPaymentMethod
- type MeshPaymentMethodClient
- type MeshPaymentMethodCreate
- type MeshPaymentMethodCreateMetadata
- type MeshPaymentMethodMetadata
- type MeshPaymentMethodSpec
- type MeshPlatform
- type MeshPlatformClient
- type MeshPlatformListQuery
- type MeshPlatformMetadata
- type MeshPlatformMeteringProcessingConfig
- type MeshPlatformSpec
- type MeshPlatformType
- type MeshPlatformTypeClient
- type MeshPlatformTypeCreate
- type MeshPlatformTypeCreateMetadata
- type MeshPlatformTypeLifecycle
- type MeshPlatformTypeMetadata
- type MeshPlatformTypeSpec
- type MeshPlatformTypeStatus
- type MeshProject
- type MeshProjectBinding
- type MeshProjectBindingMetadata
- type MeshProjectClient
- type MeshProjectCreate
- type MeshProjectCreateMetadata
- type MeshProjectGroupBinding
- type MeshProjectGroupBindingClient
- type MeshProjectMetadata
- type MeshProjectRoleRefdeprecated
- type MeshProjectSpec
- type MeshProjectTargetRef
- type MeshProjectUserBinding
- type MeshProjectUserBindingClient
- type MeshRunnerWifProviderConfig
- type MeshRunnerWorkloadIdentityFed
- type MeshServiceInstance
- type MeshServiceInstanceClient
- type MeshServiceInstanceFilter
- type MeshServiceInstanceMetadata
- type MeshServiceInstanceSpec
- type MeshSubject
- type MeshTagDefinition
- type MeshTagDefinitionClient
- type MeshTagDefinitionMetadata
- type MeshTagDefinitionSpec
- type MeshTagDefinitionValueType
- type MeshTenant
- type MeshTenantClient
- type MeshTenantCreate
- type MeshTenantCreateMetadata
- type MeshTenantCreateSpec
- type MeshTenantLifecycle
- type MeshTenantLifecycleAction
- type MeshTenantMetadata
- type MeshTenantQuery
- type MeshTenantQuota
- type MeshTenantSpec
- type MeshTenantStatus
- type MeshTenantTags
- type MeshWifProvider
- type MeshWorkloadIdentityFederation
- type MeshWorkspace
- type MeshWorkspaceBinding
- type MeshWorkspaceBindingMetadata
- type MeshWorkspaceClient
- type MeshWorkspaceCreate
- type MeshWorkspaceCreateMetadata
- type MeshWorkspaceGroupBinding
- type MeshWorkspaceGroupBindingClient
- type MeshWorkspaceMetadata
- type MeshWorkspaceRoleRef
- type MeshWorkspaceSpec
- type MeshWorkspaceSubject
- type MeshWorkspaceTargetRef
- type MeshWorkspaceUserBinding
- type MeshWorkspaceUserBindingClient
- type NamedRef
- type OpenShiftMeteringConfig
- type OpenShiftPlatformConfig
- type OpenShiftPlatformProperties
- type OpenShiftPlatformRoleMapping
- type OpenShiftReplicationConfig
- type Page
- type PlatformAvailability
- type PlatformConfig
- type QuotaDefinition
- type RequestQuotaValue
- type TagMapper
- type TagValueEmail
- type TagValueInteger
- type TagValueMultiSelect
- type TagValueNumber
- type TagValueSingleSelect
- type TagValueString
- type TenantLifecycleState
- type UuidRef
- type Version
Constants ¶
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_MULTI_SELECT = "MULTI_SELECT" MESH_BUILDING_BLOCK_IO_TYPE_FILE = "FILE" MESH_BUILDING_BLOCK_IO_TYPE_LIST = "LIST" MESH_BUILDING_BLOCK_IO_TYPE_CODE = "CODE" )
const TagInputTargetSeparator = "."
TagInputTargetSeparator splits the target from the tag key. Only the first one separates them, because a tag key may contain a dot itself.
Variables ¶
var ( MeshBuildingBlockTypes = enum.Enum[MeshBuildingBlockType]{} MeshBuildingBlockTypeTenantLevel = MeshBuildingBlockTypes.Entry("TENANT_LEVEL") MeshBuildingBlockTypeWorkspaceLevel = MeshBuildingBlockTypes.Entry("WORKSPACE_LEVEL") )
var ( MeshBuildingBlockScheduleModes = enum.Enum[MeshBuildingBlockScheduleMode]{} MeshBuildingBlockScheduleModeDisabled = MeshBuildingBlockScheduleModes.Entry("DISABLED") MeshBuildingBlockScheduleModeDriftDetection = MeshBuildingBlockScheduleModes.Entry("DRIFT_DETECTION") MeshBuildingBlockScheduleModeDriftReconciliation = MeshBuildingBlockScheduleModes.Entry("DRIFT_RECONCILIATION") )
var ( MeshBuildingBlockScheduleFrequencies = enum.Enum[MeshBuildingBlockScheduleFrequency]{} MeshBuildingBlockScheduleFrequencyNone = MeshBuildingBlockScheduleFrequencies.Entry("NONE") MeshBuildingBlockScheduleFrequencyDaily = MeshBuildingBlockScheduleFrequencies.Entry("DAILY") MeshBuildingBlockScheduleFrequencyWeekly = MeshBuildingBlockScheduleFrequencies.Entry("WEEKLY") )
var ( MeshBuildingBlockDefinitionVersionStates = enum.Enum[MeshBuildingBlockDefinitionVersionState]{} MeshBuildingBlockDefinitionVersionStateDraft = MeshBuildingBlockDefinitionVersionStates.Entry("DRAFT") MeshBuildingBlockDefinitionVersionStateReleased = MeshBuildingBlockDefinitionVersionStates.Entry("RELEASED") )
var ( BuildingBlockDeletionModes = enum.Enum[BuildingBlockDeletionMode]{} BuildingBlockDeletionModeDelete = BuildingBlockDeletionModes.Entry("DELETE") BuildingBlockDeletionModePurge = BuildingBlockDeletionModes.Entry("PURGE") )
var ( MeshBuildingBlockIOTypes = enum.Enum[MeshBuildingBlockIOType]{} MeshBuildingBlockIOTypeString = MeshBuildingBlockIOTypes.Entry("STRING") MeshBuildingBlockIOTypeCode = MeshBuildingBlockIOTypes.Entry("CODE") MeshBuildingBlockIOTypeInteger = MeshBuildingBlockIOTypes.Entry("INTEGER") MeshBuildingBlockIOTypeBoolean = MeshBuildingBlockIOTypes.Entry("BOOLEAN") MeshBuildingBlockIOTypeFile = MeshBuildingBlockIOTypes.Entry("FILE") MeshBuildingBlockIOTypeList = MeshBuildingBlockIOTypes.Entry("LIST") MeshBuildingBlockIOTypeSingleSelect = MeshBuildingBlockIOTypes.Entry("SINGLE_SELECT") MeshBuildingBlockIOTypeMultiSelect = MeshBuildingBlockIOTypes.Entry("MULTI_SELECT") // MeshBuildingBlockIOTypeJson is deliberately not an entry of MeshBuildingBlockIOTypes: a // definition input declaring it describes a form of its own, through the accompanying JsonSchema. // What that form produces is JSON text, which a building block's own inputs report as CODE. MeshBuildingBlockIOTypeJson = enum.Entry[MeshBuildingBlockIOType]("JSON") )
var ( MeshBuildingBlockInputAssignmentTypes = enum.Enum[MeshBuildingBlockInputAssignmentType]{} MeshBuildingBlockInputAssignmentTypeAuthor = MeshBuildingBlockInputAssignmentTypes.Entry("AUTHOR") MeshBuildingBlockInputAssignmentTypeUserInput = MeshBuildingBlockInputAssignmentTypes.Entry("USER_INPUT") MeshBuildingBlockInputAssignmentTypePlatformOperatorManualInput = MeshBuildingBlockInputAssignmentTypes.Entry("PLATFORM_OPERATOR_MANUAL_INPUT") MeshBuildingBlockInputAssignmentTypeBuildingBlockOutput = MeshBuildingBlockInputAssignmentTypes.Entry("BUILDING_BLOCK_OUTPUT") MeshBuildingBlockInputAssignmentTypePlatformTenantID = MeshBuildingBlockInputAssignmentTypes.Entry("PLATFORM_TENANT_ID") MeshBuildingBlockInputAssignmentTypeMeshstackTenantUuid = MeshBuildingBlockInputAssignmentTypes.Entry("MESHSTACK_TENANT_UUID") MeshBuildingBlockInputAssignmentTypeWorkspaceIdentifier = MeshBuildingBlockInputAssignmentTypes.Entry("WORKSPACE_IDENTIFIER") MeshBuildingBlockInputAssignmentTypeProjectIdentifier = MeshBuildingBlockInputAssignmentTypes.Entry("PROJECT_IDENTIFIER") MeshBuildingBlockInputAssignmentTypeFullPlatformIdentifier = MeshBuildingBlockInputAssignmentTypes.Entry("FULL_PLATFORM_IDENTIFIER") MeshBuildingBlockInputAssignmentTypeTenantBuildingBlockUuid = MeshBuildingBlockInputAssignmentTypes.Entry("TENANT_BUILDING_BLOCK_UUID") MeshBuildingBlockInputAssignmentTypeStatic = MeshBuildingBlockInputAssignmentTypes.Entry("STATIC") MeshBuildingBlockInputAssignmentTypeUserPermissions = MeshBuildingBlockInputAssignmentTypes.Entry("USER_PERMISSIONS") MeshBuildingBlockInputAssignmentTypeTag = MeshBuildingBlockInputAssignmentTypes.Entry("TAG") )
var ( MeshBuildingBlockTagInputTargets = enum.Enum[MeshBuildingBlockTagInputTarget]{} MeshBuildingBlockTagInputTargetWorkspace = MeshBuildingBlockTagInputTargets.Entry("WORKSPACE") MeshBuildingBlockTagInputTargetProject = MeshBuildingBlockTagInputTargets.Entry("PROJECT") MeshBuildingBlockTagInputTargetPaymentMethod = MeshBuildingBlockTagInputTargets.Entry("PAYMENT_METHOD") MeshBuildingBlockTagInputTargetLandingZone = MeshBuildingBlockTagInputTargets.Entry("LANDING_ZONE") )
var ( MeshBuildingBlockDefinitionOutputAssignmentTypes = enum.Enum[MeshBuildingBlockDefinitionOutputAssignmentType]{} MeshBuildingBlockDefinitionOutputAssignmentTypeNone = MeshBuildingBlockDefinitionOutputAssignmentTypes.Entry("NONE") MeshBuildingBlockDefinitionOutputAssignmentTypePlatformTenantID = MeshBuildingBlockDefinitionOutputAssignmentTypes.Entry("PLATFORM_TENANT_ID") MeshBuildingBlockDefinitionOutputAssignmentTypeSignInURL = MeshBuildingBlockDefinitionOutputAssignmentTypes.Entry("SIGN_IN_URL") MeshBuildingBlockDefinitionOutputAssignmentTypeResourceURL = MeshBuildingBlockDefinitionOutputAssignmentTypes.Entry("RESOURCE_URL") MeshBuildingBlockDefinitionOutputAssignmentTypeSummary = MeshBuildingBlockDefinitionOutputAssignmentTypes.Entry("SUMMARY") )
var ( MeshBuildingBlockImplementationTypes = enum.Enum[MeshBuildingBlockImplementationType]{} MeshBuildingBlockImplementationTypeManual = MeshBuildingBlockImplementationTypes.Entry("manual") MeshBuildingBlockImplementationTypeTerraform = MeshBuildingBlockImplementationTypes.Entry("terraform") MeshBuildingBlockImplementationTypeGithubWorkflows = MeshBuildingBlockImplementationTypes.Entry("githubWorkflows") MeshBuildingBlockImplementationTypeGitlabPipeline = MeshBuildingBlockImplementationTypes.Entry("gitlabPipeline") MeshBuildingBlockImplementationTypeAzureDevOpsPipeline = MeshBuildingBlockImplementationTypes.Entry("azureDevOpsPipeline") )
var ( BuildingBlockLifecycleStates = enum.Enum[BuildingBlockLifecycleState]{} BuildingBlockLifecycleStateActive = BuildingBlockLifecycleStates.Entry("ACTIVE") BuildingBlockLifecycleStateMarkedForDeletion = BuildingBlockLifecycleStates.Entry("MARKED_FOR_DELETION") BuildingBlockLifecycleStateDeleted = BuildingBlockLifecycleStates.Entry("DELETED") )
var ( BuildingBlockStatuses = enum.Enum[BuildingBlockStatus]{} BuildingBlockStatusWaitingForDependentInput = BuildingBlockStatuses.Entry("WAITING_FOR_DEPENDENT_INPUT") BuildingBlockStatusWaitingForOperatorInput = BuildingBlockStatuses.Entry("WAITING_FOR_OPERATOR_INPUT") BuildingBlockStatusWaitingForUserInput = BuildingBlockStatuses.Entry("WAITING_FOR_USER_INPUT") BuildingBlockStatusWaitingForApproval = BuildingBlockStatuses.Entry("WAITING_FOR_APPROVAL") BuildingBlockStatusPending = BuildingBlockStatuses.Entry("PENDING") BuildingBlockStatusInProgress = BuildingBlockStatuses.Entry("IN_PROGRESS") BuildingBlockStatusSucceeded = BuildingBlockStatuses.Entry("SUCCEEDED") BuildingBlockStatusFailed = BuildingBlockStatuses.Entry("FAILED") BuildingBlockStatusAborted = BuildingBlockStatuses.Entry("ABORTED") )
var ( MeshIntegrationConfigTypes = enum.Enum[MeshIntegrationConfigType]{} MeshIntegrationConfigTypeGithub = MeshIntegrationConfigTypes.Entry("github") MeshIntegrationConfigTypeGitlab = MeshIntegrationConfigTypes.Entry("gitlab") MeshIntegrationConfigTypeAzureDevops = MeshIntegrationConfigTypes.Entry("azuredevops") MeshIntegrationConfigTypeEntraId = MeshIntegrationConfigTypes.Entry("entraid") )
var ( MeshFeatureFlags = enum.Enum[MeshFeatureFlag]{} MeshFeatureFlagFourEyesRoleApproval = MeshFeatureFlags.Entry("four_eyes_role_approval") )
var ( TenantLifecycleStates = enum.Enum[TenantLifecycleState]{} TenantLifecycleStateActive = TenantLifecycleStates.Entry("ACTIVE") TenantLifecycleStateMarkedForDeletion = TenantLifecycleStates.Entry("MARKED_FOR_DELETION") TenantLifecycleStateDeleted = TenantLifecycleStates.Entry("DELETED") )
var MeshBuildingBlockDefinitionInputTypes = MeshBuildingBlockIOTypes.With(MeshBuildingBlockIOTypeJson)
MeshBuildingBlockDefinitionInputTypes are the types a definition input may declare.
var MeshBuildingBlockOutputIOTypes = enum.Of( MeshBuildingBlockIOTypeString, MeshBuildingBlockIOTypeCode, MeshBuildingBlockIOTypeInteger, MeshBuildingBlockIOTypeBoolean, )
var MeshBuildingBlockRunnerImplementationTypes = []string{ string(MeshBuildingBlockRunnerImplementationTypeTerraform), string(MeshBuildingBlockRunnerImplementationTypeGithubWorkflow), string(MeshBuildingBlockRunnerImplementationTypeGitlabPipeline), string(MeshBuildingBlockRunnerImplementationTypeAzureDevopsPipeline), string(MeshBuildingBlockRunnerImplementationTypeManual), string(MeshBuildingBlockRunnerImplementationTypeAll), }
var MeshObjectKind = meshObjectKind{
ApiKey: "meshApiKey",
BuildingBlock: "meshBuildingBlock",
BuildingBlockRun: "meshBuildingBlockRun",
BuildingBlockDefinition: "meshBuildingBlockDefinition",
BuildingBlockDefinitionVersion: "meshBuildingBlockDefinitionVersion",
BuildingBlockRunner: "meshBuildingBlockRunner",
Integration: "meshIntegration",
LandingZone: "meshLandingZone",
Location: "meshLocation",
PaymentMethod: "meshPaymentMethod",
Platform: "meshPlatform",
PlatformType: "meshPlatformType",
Project: "meshProject",
ProjectGroupBinding: "meshProjectGroupBinding",
ProjectRole: "meshProjectRole",
ProjectUserBinding: "meshProjectUserBinding",
ServiceInstance: "meshServiceInstance",
TagDefinition: "meshTagDefinition",
Tenant: "meshTenant",
Workspace: "meshWorkspace",
WorkspaceGroupBinding: "meshWorkspaceGroupBinding",
WorkspaceUserBinding: "meshWorkspaceUserBinding",
}
var MinMeshStackVersion = version.MustParse("2026.36.0")
var Permissions = ApiKeyPermissions{
{
{"APIKEY_DELETE", "ADM_APIKEY_DELETE"},
{"APIKEY_LIST", "ADM_APIKEY_LIST"},
{"APIKEY_SAVE", "ADM_APIKEY_SAVE"},
},
{
{"BUILDINGBLOCK_DELETE", "ADM_BUILDINGBLOCK_DELETE"},
{"BUILDINGBLOCK_LIST", "ADM_BUILDINGBLOCK_LIST", "MANAGED_BUILDINGBLOCK_LIST"},
{"BUILDINGBLOCK_SAVE", "ADM_BUILDINGBLOCK_SAVE", "MANAGED_BUILDINGBLOCK_SAVE"},
},
{
{"BUILDINGBLOCKDEFINITION_DELETE", "ADM_BUILDINGBLOCKDEFINITION_DELETE"},
{"BUILDINGBLOCKDEFINITION_LIST", "ADM_BUILDINGBLOCKDEFINITION_LIST"},
{"BUILDINGBLOCKDEFINITION_SAVE", "ADM_BUILDINGBLOCKDEFINITION_SAVE"},
{"ADM_REVIEW_PUBLICATION"},
},
{
{"MANAGED_BUILDINGBLOCKRUN_LIST", "ADM_BUILDINGBLOCKRUN_LIST"},
{"MANAGED_BUILDINGBLOCKRUN_SAVE", "ADM_BUILDINGBLOCKRUN_SAVE"},
{"MANAGED_BUILDINGBLOCKRUNSOURCE_SAVE", "ADM_BUILDINGBLOCKRUNSOURCE_SAVE"},
},
{
{"BUILDINGBLOCKRUNNER_DELETE", "ADM_BUILDINGBLOCKRUNNER_DELETE"},
{"BUILDINGBLOCKRUNNER_LIST", "ADM_BUILDINGBLOCKRUNNER_LIST"},
{"BUILDINGBLOCKRUNNER_SAVE", "ADM_BUILDINGBLOCKRUNNER_SAVE"},
},
{
{"COMMUNICATIONDEFINITION_DELETE", "ADM_COMMUNICATIONDEFINITION_DELETE"},
{"COMMUNICATIONDEFINITION_LIST", "ADM_COMMUNICATIONDEFINITION_LIST"},
{"COMMUNICATIONDEFINITION_SAVE", "ADM_COMMUNICATIONDEFINITION_SAVE"},
},
{
{"COMMUNICATION_DELETE", "ADM_COMMUNICATION_DELETE"},
{"COMMUNICATION_LIST", "ADM_COMMUNICATION_LIST"},
{"COMMUNICATION_SAVE", "ADM_COMMUNICATION_SAVE"},
},
{
{"EVENTLOG_LIST", "ADM_EVENTLOG_LIST"},
},
{
{"INTEGRATION_DELETE", "ADM_INTEGRATION_DELETE"},
{"INTEGRATION_LIST", "ADM_INTEGRATION_LIST"},
{"INTEGRATION_SAVE", "ADM_INTEGRATION_SAVE"},
},
{
{"LANDINGZONE_DELETE", "ADM_LANDINGZONE_DELETE"},
{"LANDINGZONE_LIST", "ADM_LANDINGZONE_LIST"},
{"LANDINGZONE_SAVE", "ADM_LANDINGZONE_SAVE"},
},
{
{"ADM_PAYMENTMETHOD_DELETE"},
{"PAYMENTMETHOD_LIST", "ADM_PAYMENTMETHOD_LIST"},
{"ADM_PAYMENTMETHOD_SAVE"},
},
{
{"PLATFORMINSTANCE_DELETE", "ADM_PLATFORMINSTANCE_DELETE"},
{"PLATFORMINSTANCE_LIST", "ADM_PLATFORMINSTANCE_LIST"},
{"PLATFORMINSTANCE_SAVE", "ADM_PLATFORMINSTANCE_SAVE"},
},
{
{"PROJECTPRINCIPALROLE_DELETE", "ADM_PROJECTPRINCIPALROLE_DELETE"},
{"PROJECTPRINCIPALROLE_LIST", "ADM_PROJECTPRINCIPALROLE_LIST"},
{"PROJECTPRINCIPALROLE_SAVE", "ADM_PROJECTPRINCIPALROLE_SAVE"},
},
{
{"ADM_PROJECTROLE_DELETE"},
{"ADM_PROJECTROLE_SAVE"},
},
{
{"PROJECT_DELETE", "ADM_PROJECT_DELETE"},
{"PROJECT_LIST", "ADM_PROJECT_LIST"},
{"PROJECT_SAVE", "ADM_PROJECT_SAVE"},
},
{
{"SERVICEINSTANCE_DELETE", "ADM_SERVICEINSTANCE_DELETE"},
{"SERVICEINSTANCE_LIST", "ADM_SERVICEINSTANCE_LIST"},
{"SERVICEINSTANCE_SAVE", "ADM_SERVICEINSTANCE_SAVE"},
},
{
{"ADM_TAGDEFINITION_DELETE"},
{"ADM_TAGDEFINITION_LIST"},
{"ADM_TAGDEFINITION_SAVE"},
},
{
{"TENANT_DELETE", "ADM_TENANT_DELETE"},
{"MANAGED_TENANT_IMPORT", "ADM_TENANT_IMPORT"},
{"TENANT_LIST", "ADM_TENANT_LIST"},
{"TENANT_SAVE", "ADM_TENANT_SAVE"},
},
{
{"TFSTATE_DELETE", "ADM_TFSTATE_DELETE", "MANAGED_TFSTATE_DELETE"},
{"TFSTATE_LIST", "ADM_TFSTATE_LIST", "MANAGED_TFSTATE_LIST"},
{"TFSTATE_SAVE", "ADM_TFSTATE_SAVE", "MANAGED_TFSTATE_SAVE"},
},
{
{"ADM_USER_DELETE"},
{"ADM_USER_LIST"},
{"ADM_USER_SAVE"},
},
{
{"WORKSPACEPRINCIPALBINDING_DELETE", "ADM_WORKSPACEPRINCIPALBINDING_DELETE"},
{"WORKSPACEPRINCIPALBINDING_LIST", "ADM_WORKSPACEPRINCIPALBINDING_LIST"},
{"WORKSPACEPRINCIPALBINDING_SAVE", "ADM_WORKSPACEPRINCIPALBINDING_SAVE"},
},
{
{"WORKSPACEUSERGROUP_LIST", "ADM_WORKSPACEUSERGROUP_LIST"},
},
{
{"WORKSPACE_DELETE", "ADM_WORKSPACE_DELETE"},
{"WORKSPACE_LIST", "ADM_WORKSPACE_LIST"},
{"WORKSPACE_SAVE", "ADM_WORKSPACE_SAVE"},
},
}
Permissions is the complete registry of API key permissions, aligned 1:1 with the Kotlin ApiKeyRightMetadataRegistry.
Functions ¶
func AllApiKeyPermissions ¶
func AllApiKeyPermissions() []string
AllApiKeyPermissions returns all valid API key permission shortcodes.
func TagInputTargetsFor ¶
func TagInputTargetsFor(targetType MeshBuildingBlockType) enum.Enum[MeshBuildingBlockTagInputTarget]
TagInputTargetsFor answers which tags a building block of this target type can read. A workspace building block only ever runs in the context of a workspace; a tenant building block additionally sees its project, and that project's payment method and landing zone.
func WithListOptions ¶ added in v0.2.0
func WithListOptions(ctx context.Context, options ListOptions) context.Context
func WorkspacePermissionCodes ¶
func WorkspacePermissionCodes() []string
WorkspacePermissionCodes returns only workspace-scoped permission shortcodes.
Types ¶
type AksMeteringConfig ¶
type AksMeteringConfig struct {
ClientConfig KubernetesClientConfig `json:"clientConfig" tfsdk:"client_config"`
Processing MeshPlatformMeteringProcessingConfig `json:"processing" tfsdk:"processing"`
}
type AksPlatformConfig ¶
type AksPlatformConfig struct {
BaseUrl string `json:"baseUrl" tfsdk:"base_url"`
DisableSslValidation bool `json:"disableSslValidation" tfsdk:"disable_ssl_validation"`
Replication *AksReplicationConfig `json:"replication" tfsdk:"replication"`
Metering *AksMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type AksPlatformProperties ¶
type AksPlatformProperties struct {
KubernetesRoleMappings []KubernetesRoleMapping `json:"kubernetesRoleMappings" tfsdk:"kubernetes_role_mappings"`
}
type AksReplicationConfig ¶
type AksReplicationConfig struct {
AccessToken types.Secret `json:"accessToken" tfsdk:"access_token"`
NamespaceNamePattern string `json:"namespaceNamePattern" tfsdk:"namespace_name_pattern"`
GroupNamePattern string `json:"groupNamePattern" tfsdk:"group_name_pattern"`
ServicePrincipal AksServicePrincipalConfig `json:"servicePrincipal" tfsdk:"service_principal"`
AksSubscriptionId string `json:"aksSubscriptionId" tfsdk:"aks_subscription_id"`
AksClusterName string `json:"aksClusterName" tfsdk:"aks_cluster_name"`
AksResourceGroup string `json:"aksResourceGroup" tfsdk:"aks_resource_group"`
RedirectUrl *string `json:"redirectUrl,omitzero" tfsdk:"redirect_url"`
SendAzureInvitationMail bool `json:"sendAzureInvitationMail" tfsdk:"send_azure_invitation_mail"`
UserLookupStrategy string `json:"userLookUpStrategy" tfsdk:"user_lookup_strategy"`
AdministrativeUnitId *string `json:"administrativeUnitId,omitzero" tfsdk:"administrative_unit_id"`
}
type AksServicePrincipalConfig ¶
type AksServicePrincipalConfig struct {
EntraTenant string `json:"entraTenant" tfsdk:"entra_tenant"`
ObjectId string `json:"objectId" tfsdk:"object_id"`
ClientId string `json:"clientId" tfsdk:"client_id"`
Auth AzureAuthConfig `json:"auth" tfsdk:"auth"`
}
type ApiKeyPermissions ¶
type ApiKeyPermissions [][][]ApiPermission
ApiKeyPermissions is a 3D structure:
- outer: groups (e.g. "Building Blocks", "Projects")
- middle: suffix groups within a group (e.g. DELETE, LIST, SAVE variants together)
- inner: scope variants (e.g. [TENANT_DELETE, ADM_TENANT_DELETE])
Each permission is listed exactly as it appears in the API, no prefix derivation.
func (ApiKeyPermissions) AllCodes ¶
func (p ApiKeyPermissions) AllCodes() []string
AllCodes returns all valid API key permission shortcodes (flattened).
func (ApiKeyPermissions) MarkdownString ¶
func (p ApiKeyPermissions) MarkdownString() string
MarkdownString returns an unordered markdown list of all permissions grouped by resource. Each bullet shows workspace codes, then MANAGED_ codes, then ADM_ codes separated by " and ".
func (ApiKeyPermissions) WorkspaceCodes ¶
func (p ApiKeyPermissions) WorkspaceCodes() []string
WorkspaceCodes returns only non-ADM_ permission shortcodes (workspace + platform builder scoped).
type ApiPermission ¶
type ApiPermission string
ApiPermission is a permission shortcode string used for JSON serialization.
type AppliedQuotaValue ¶
type AppliedQuotaValue struct {
Value int64 `json:"value" tfsdk:"value"`
}
AppliedQuotaValue is a tenant quota value as actually applied by the backend. See RequestQuotaValue for why the two are not a single type.
type Authorization ¶
type Authorization = http.Authorization
type AwsAccessConfig ¶
type AwsAccessConfig struct {
OrganizationRootAccountRole string `json:"organizationRootAccountRole" tfsdk:"organization_root_account_role"`
OrganizationRootAccountExternalId *string `json:"organizationRootAccountExternalId,omitzero" tfsdk:"organization_root_account_external_id"`
Auth AwsAuth `json:"auth" tfsdk:"auth"`
}
type AwsAuth ¶
type AwsAuth struct {
Type string `json:"type" tfsdk:"type"`
Credential *AwsServiceUserCredential `json:"credential,omitzero" tfsdk:"credential"`
WorkloadIdentity *AwsWorkloadIdentityCredential `json:"workloadIdentity,omitzero" tfsdk:"workload_identity"`
}
type AwsIdentityStoreConfig ¶
type AwsIdentityStoreConfig struct {
IdentityStoreId string `json:"identityStoreId" tfsdk:"identity_store_id"`
Arn string `json:"arn" tfsdk:"arn"`
GroupNamePattern string `json:"groupNamePattern" tfsdk:"group_name_pattern"`
AwsRoleMappings types.Set[AwsIdentityStoreRoleMapping] `json:"awsRoleMappings" tfsdk:"aws_role_mappings"`
SignInUrl string `json:"signInUrl" tfsdk:"sign_in_url"`
}
type AwsMeteringConfig ¶
type AwsMeteringConfig struct {
AccessConfig AwsAccessConfig `json:"accessConfig" tfsdk:"access_config"`
Filter string `json:"filter" tfsdk:"filter"`
ReservedInstanceFairChargeback bool `json:"reservedInstanceFairChargeback" tfsdk:"reserved_instance_fair_chargeback"`
SavingsPlanFairChargeback bool `json:"savingsPlanFairChargeback" tfsdk:"savings_plan_fair_chargeback"`
Processing MeshPlatformMeteringProcessingConfig `json:"processing" tfsdk:"processing"`
}
type AwsPlatformConfig ¶
type AwsPlatformConfig struct {
Region string `json:"region,omitempty" tfsdk:"region"`
Replication *AwsReplicationConfig `json:"replication,omitzero" tfsdk:"replication"`
Metering *AwsMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type AwsPlatformProperties ¶
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 ¶
type AwsReplicationConfig struct {
AccessConfig AwsAccessConfig `json:"accessConfig" tfsdk:"access_config"`
WaitForExternalAvm bool `json:"waitForExternalAvm" tfsdk:"wait_for_external_avm"`
AutomationAccountRole string `json:"automationAccountRole" tfsdk:"automation_account_role"`
AutomationAccountExternalId *string `json:"automationAccountExternalId,omitzero" tfsdk:"automation_account_external_id"`
AccountAccessRole string `json:"accountAccessRole" tfsdk:"account_access_role"`
AccountAliasPattern string `json:"accountAliasPattern" tfsdk:"account_alias_pattern"`
EnforceAccountAlias bool `json:"enforceAccountAlias" tfsdk:"enforce_account_alias"`
AccountEmailPattern string `json:"accountEmailPattern" tfsdk:"account_email_pattern"`
TenantTags *MeshTenantTags `json:"tenantTags,omitzero" tfsdk:"tenant_tags"`
AwsSso *AwsSsoConfig `json:"awsSso,omitzero" tfsdk:"aws_sso"`
AwsIdentityStore *AwsIdentityStoreConfig `json:"awsIdentityStore,omitzero" tfsdk:"aws_identity_store"`
EnrollmentConfiguration *AwsEnrollmentConfiguration `json:"enrollmentConfiguration,omitzero" tfsdk:"enrollment_configuration"`
SelfDowngradeAccessRole bool `json:"selfDowngradeAccessRole" tfsdk:"self_downgrade_access_role"`
SkipUserGroupPermissionCleanup bool `json:"skipUserGroupPermissionCleanup" tfsdk:"skip_user_group_permission_cleanup"`
AllowHierarchicalOrganizationalUnitAssignment bool `json:"allowHierarchicalOrganizationalUnitAssignment" tfsdk:"allow_hierarchical_organizational_unit_assignment"`
}
type AwsRoleMapping ¶
type AwsSsoConfig ¶
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 types.Secret `json:"ssoAccessToken" tfsdk:"sso_access_token"`
AwsRoleMappings types.Set[AwsSsoRoleMapping] `json:"awsRoleMappings" tfsdk:"aws_role_mappings"`
SignInUrl string `json:"signInUrl" tfsdk:"sign_in_url"`
}
type AwsSsoRoleMapping ¶
type AwsWorkloadIdentityCredential ¶
type AwsWorkloadIdentityCredential struct {
RoleArn string `json:"roleArn" tfsdk:"role_arn"`
}
type AzureAuthConfig ¶
type AzureCustomerAgreementConfig ¶
type AzureCustomerAgreementConfig struct {
SourceServicePrincipal AzureGraphApiCredentials `json:"sourceServicePrincipal" 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 *int64 `json:"subscriptionCreationErrorCooldownSec,omitzero" tfsdk:"subscription_creation_error_cooldown_sec"`
}
type AzureEnterpriseEnrollmentConfig ¶
type AzureEnterpriseEnrollmentConfig struct {
EnrollmentAccountId string `json:"enrollmentAccountId" tfsdk:"enrollment_account_id"`
SubscriptionOfferType string `json:"subscriptionOfferType" tfsdk:"subscription_offer_type"`
UseLegacySubscriptionEnrollment bool `json:"useLegacySubscriptionEnrollment" tfsdk:"use_legacy_subscription_enrollment"`
SubscriptionCreationErrorCooldownSec *int64 `json:"subscriptionCreationErrorCooldownSec,omitzero" tfsdk:"subscription_creation_error_cooldown_sec"`
}
type AzureFunction ¶
type AzureGraphApiCredentials ¶
type AzureGraphApiCredentials struct {
ClientId string `json:"clientId" tfsdk:"client_id"`
Auth AzureAuthConfig `json:"auth" tfsdk:"auth"`
}
type AzureMeteringConfig ¶
type AzureMeteringConfig struct {
ServicePrincipal AzureServicePrincipalConfig `json:"servicePrincipal" tfsdk:"service_principal"`
Processing MeshPlatformMeteringProcessingConfig `json:"processing" tfsdk:"processing"`
}
type AzurePlatformConfig ¶
type AzurePlatformConfig struct {
EntraTenant string `json:"entraTenant" tfsdk:"entra_tenant"`
Replication *AzureReplicationConfig `json:"replication,omitzero" tfsdk:"replication"`
Metering *AzureMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type AzurePlatformProperties ¶
type AzurePlatformProperties struct {
AzureRoleMappings []AzureRoleMappingProperty `json:"azureRoleMappings" tfsdk:"azure_role_mappings"`
AzureManagementGroupId string `json:"azureManagementGroupId" tfsdk:"azure_management_group_id"`
}
type AzurePreProvisionedSubscriptionConfig ¶
type AzurePreProvisionedSubscriptionConfig struct {
UnusedSubscriptionNamePrefix string `json:"unusedSubscriptionNamePrefix" tfsdk:"unused_subscription_name_prefix"`
}
type AzureReplicationConfig ¶
type AzureReplicationConfig struct {
ServicePrincipal AzureServicePrincipalConfig `json:"servicePrincipal" tfsdk:"service_principal"`
UpdateSubscriptionName bool `json:"updateSubscriptionName" tfsdk:"update_subscription_name"`
Provisioning *AzureSubscriptionProvisioningConfig `json:"provisioning,omitzero" tfsdk:"provisioning"`
B2bUserInvitation *AzureInviteB2BUserConfig `json:"b2bUserInvitation,omitzero" tfsdk:"b2b_user_invitation"`
SubscriptionNamePattern string `json:"subscriptionNamePattern" tfsdk:"subscription_name_pattern"`
GroupNamePattern string `json:"groupNamePattern" tfsdk:"group_name_pattern"`
AzureRoleMappings types.Set[AzureRoleMapping] `json:"azureRoleMappings" tfsdk:"azure_role_mappings"`
TenantTags *MeshTenantTags `json:"tenantTags,omitzero" tfsdk:"tenant_tags"`
UserLookUpStrategy string `json:"userLookUpStrategy" tfsdk:"user_lookup_strategy"`
SkipUserGroupPermissionCleanup bool `json:"skipUserGroupPermissionCleanup" tfsdk:"skip_user_group_permission_cleanup"`
AdministrativeUnitId *string `json:"administrativeUnitId,omitzero" tfsdk:"administrative_unit_id"`
AllowHierarchicalManagementGroupAssignment bool `json:"allowHierarchicalManagementGroupAssignment" tfsdk:"allow_hierarchical_management_group_assignment"`
}
type AzureRgPlatformConfig ¶
type AzureRgPlatformConfig struct {
EntraTenant string `json:"entraTenant" tfsdk:"entra_tenant"`
Replication *AzureRgReplicationConfig `json:"replication,omitzero" tfsdk:"replication"`
}
type AzureRgPlatformProperties ¶
type AzureRgPlatformProperties struct {
AzureRgLocation string `json:"azureRgLocation" tfsdk:"azure_rg_location"`
AzureRgRoleMappings []AzureRgRoleMapping `json:"azureRgRoleMappings" tfsdk:"azure_rg_role_mappings"`
AzureFunction *AzureFunction `json:"azureFunction,omitzero" tfsdk:"azure_function"`
}
type AzureRgReplicationConfig ¶
type AzureRgReplicationConfig struct {
ServicePrincipal AzureServicePrincipalConfig `json:"servicePrincipal" tfsdk:"service_principal"`
Subscription string `json:"subscription" tfsdk:"subscription"`
ResourceGroupNamePattern string `json:"resourceGroupNamePattern" tfsdk:"resource_group_name_pattern"`
UserGroupNamePattern string `json:"userGroupNamePattern" tfsdk:"user_group_name_pattern"`
B2bUserInvitation *AzureInviteB2BUserConfig `json:"b2bUserInvitation,omitzero" tfsdk:"b2b_user_invitation"`
UserLookUpStrategy string `json:"userLookUpStrategy" tfsdk:"user_lookup_strategy"`
TenantTags *MeshTenantTags `json:"tenantTags,omitzero" tfsdk:"tenant_tags"`
SkipUserGroupPermissionCleanup bool `json:"skipUserGroupPermissionCleanup" tfsdk:"skip_user_group_permission_cleanup"`
AdministrativeUnitId *string `json:"administrativeUnitId,omitzero" tfsdk:"administrative_unit_id"`
}
type AzureRgRoleMapping ¶
type AzureRoleDefinition ¶
type AzureRoleMapping ¶
type AzureRoleMappingProperty ¶
type AzureRoleMappingProperty struct {
MeshProjectRoleRef NamedRef `json:"projectRoleRef" tfsdk:"project_role_ref"`
AzureGroupSuffix string `json:"azureGroupSuffix" tfsdk:"azure_group_suffix"`
AzureRoleDefinitions []AzureRoleDefinition `json:"azureRoleDefinitions" tfsdk:"azure_role_definitions"`
}
type AzureServicePrincipalConfig ¶
type AzureServicePrincipalConfig struct {
ClientId string `json:"clientId" tfsdk:"client_id"`
ObjectId string `json:"objectId" tfsdk:"object_id"`
Auth AzureAuthConfig `json:"auth" tfsdk:"auth"`
}
type AzureSubscriptionProvisioningConfig ¶
type AzureSubscriptionProvisioningConfig struct {
SubscriptionOwnerObjectIds types.Set[string] `json:"subscriptionOwnerObjectIds" tfsdk:"subscription_owner_object_ids"`
EnterpriseEnrollment *AzureEnterpriseEnrollmentConfig `json:"enterpriseEnrollment,omitzero" tfsdk:"enterprise_enrollment"`
CustomerAgreement *AzureCustomerAgreementConfig `json:"customerAgreement,omitzero" tfsdk:"customer_agreement"`
PreProvisioned *AzurePreProvisionedSubscriptionConfig `json:"preProvisioned,omitzero" tfsdk:"pre_provisioned"`
}
type BuildingBlockDeletionMode ¶
type BuildingBlockDeletionMode string
type BuildingBlockLifecycleState ¶
type BuildingBlockLifecycleState string
type BuildingBlockStatus ¶
type BuildingBlockStatus string
type Client ¶
type Client struct {
ApiKey MeshApiKeyClient
BuildingBlock MeshBuildingBlockClient
BuildingBlockV2 MeshBuildingBlockV2Client
BuildingBlockRun MeshBuildingBlockRunClient
BuildingBlockDefinition MeshBuildingBlockDefinitionClient
BuildingBlockDefinitionVersion MeshBuildingBlockDefinitionVersionClient
BuildingBlockRunner MeshBuildingBlockRunnerClient
Integration MeshIntegrationClient
LandingZone MeshLandingZoneClient
Location MeshLocationClient
MeshInfo MeshInfoClient
PaymentMethod MeshPaymentMethodClient
Platform MeshPlatformClient
PlatformType MeshPlatformTypeClient
Project MeshProjectClient
ProjectGroupBinding MeshProjectGroupBindingClient
ProjectUserBinding MeshProjectUserBindingClient
ServiceInstance MeshServiceInstanceClient
TagDefinition MeshTagDefinitionClient
Tenant MeshTenantClient
Workspace MeshWorkspaceClient
WorkspaceGroupBinding MeshWorkspaceGroupBindingClient
WorkspaceUserBinding MeshWorkspaceUserBindingClient
Listing MeshListingClient
// Endpoint is read by the Terraform provider's meshstack_instance data source.
Endpoint xurl.URL
}
type CustomMeteringConfig ¶
type CustomMeteringConfig struct {
Processing *MeshPlatformMeteringProcessingConfig `json:"processing,omitzero" tfsdk:"processing"`
}
type CustomPlatformConfig ¶
type CustomPlatformConfig struct {
PlatformTypeRef NamedRef `json:"platformTypeRef" tfsdk:"platform_type_ref"`
Metering *CustomMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type CustomPlatformProperties ¶
type CustomPlatformProperties struct {
}
type GcpMeteringConfig ¶
type GcpMeteringConfig struct {
ServiceAccount GcpServiceAccountConfig `json:"serviceAccount" tfsdk:"service_account"`
BigqueryTable string `json:"bigqueryTable" tfsdk:"bigquery_table"`
BigqueryTableForCarbonFootprint *string `json:"bigqueryTableForCarbonFootprint,omitzero" tfsdk:"bigquery_table_for_carbon_footprint"`
CarbonFootprintDataCollectionStartMonth *string `json:"carbonFootprintDataCollectionStartMonth,omitzero" tfsdk:"carbon_footprint_data_collection_start_month"`
PartitionTimeColumn string `json:"partitionTimeColumn" tfsdk:"partition_time_column"`
AdditionalFilter *string `json:"additionalFilter,omitzero" tfsdk:"additional_filter"`
Processing MeshPlatformMeteringProcessingConfig `json:"processing" tfsdk:"processing"`
}
type GcpPlatformConfig ¶
type GcpPlatformConfig struct {
Replication *GcpReplicationConfig `json:"replication,omitzero" tfsdk:"replication"`
Metering *GcpMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type GcpPlatformProperties ¶
type GcpPlatformProperties struct {
GcpCloudFunctionUrl *string `json:"gcpCloudFunctionUrl,omitzero" tfsdk:"gcp_cloud_function_url"`
GcpFolderId *string `json:"gcpFolderId,omitzero" tfsdk:"gcp_folder_id"`
GcpRoleMappings []GcpRoleMapping `json:"gcpRoleMappings" tfsdk:"gcp_role_mappings"`
}
type GcpPlatformRoleMapping ¶
type GcpReplicationConfig ¶
type GcpReplicationConfig struct {
ServiceAccount GcpServiceAccountConfig `json:"serviceAccount" tfsdk:"service_account"`
Domain string `json:"domain" tfsdk:"domain"`
CustomerId string `json:"customerId" tfsdk:"customer_id"`
GroupNamePattern string `json:"groupNamePattern" tfsdk:"group_name_pattern"`
ProjectNamePattern string `json:"projectNamePattern" tfsdk:"project_name_pattern"`
ProjectIdPattern string `json:"projectIdPattern" tfsdk:"project_id_pattern"`
BillingAccountId string `json:"billingAccountId" tfsdk:"billing_account_id"`
UserLookupStrategy string `json:"userLookupStrategy" tfsdk:"user_lookup_strategy"`
UsedExternalIdType *string `json:"usedExternalIdType,omitzero" tfsdk:"used_external_id_type"`
GcpRoleMappings types.Set[GcpPlatformRoleMapping] `json:"gcpRoleMappings" tfsdk:"gcp_role_mappings"`
AllowHierarchicalFolderAssignment bool `json:"allowHierarchicalFolderAssignment" tfsdk:"allow_hierarchical_folder_assignment"`
TenantTags *MeshTenantTags `json:"tenantTags,omitzero" tfsdk:"tenant_tags"`
SkipUserGroupPermissionCleanup bool `json:"skipUserGroupPermissionCleanup" tfsdk:"skip_user_group_permission_cleanup"`
}
type GcpRoleMapping ¶
type GcpServiceAccountConfig ¶
type GcpServiceAccountConfig struct {
Type string `json:"type" tfsdk:"type"`
Credential *types.Secret `json:"credential,omitzero" tfsdk:"credential"`
WorkloadIdentity *GcpServiceAccountWorkloadIdentityConfig `json:"workloadIdentity,omitzero" tfsdk:"workload_identity"`
}
type HttpError ¶
HttpError represents an HTTP error response with status code. This error is returned when an HTTP request fails with a non-2XX status code.
type KubernetesClientConfig ¶
type KubernetesMeteringConfig ¶
type KubernetesMeteringConfig struct {
ClientConfig KubernetesClientConfig `json:"clientConfig" tfsdk:"client_config"`
Processing MeshPlatformMeteringProcessingConfig `json:"processing" tfsdk:"processing"`
}
type KubernetesPlatformConfig ¶
type KubernetesPlatformConfig struct {
BaseUrl string `json:"baseUrl" tfsdk:"base_url"`
DisableSslValidation bool `json:"disableSslValidation" tfsdk:"disable_ssl_validation"`
Replication *KubernetesReplicationConfig `json:"replication" tfsdk:"replication"`
Metering *KubernetesMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type KubernetesPlatformProperties ¶
type KubernetesPlatformProperties struct {
KubernetesRoleMappings []KubernetesRoleMapping `json:"kubernetesRoleMappings" tfsdk:"kubernetes_role_mappings"`
}
type KubernetesReplicationConfig ¶
type KubernetesReplicationConfig struct {
ClientConfig KubernetesClientConfig `json:"clientConfig" tfsdk:"client_config"`
NamespaceNamePattern string `json:"namespaceNamePattern" tfsdk:"namespace_name_pattern"`
}
type KubernetesRoleMapping ¶
type ListOptions ¶ added in v0.2.0
type ListOptions = internal.ListOptions
func ListOptionsFrom ¶ added in v0.2.0
func ListOptionsFrom(ctx context.Context) ListOptions
type MeshApiKey ¶
type MeshApiKey struct {
Metadata MeshApiKeyMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshApiKeySpec `json:"spec" tfsdk:"spec"`
Status *MeshApiKeyStatus `json:"status,omitzero" tfsdk:"status"`
}
type MeshApiKeyClient ¶
type MeshApiKeyClient interface {
Create(ctx context.Context, apiKey *MeshApiKey) (*MeshApiKey, error)
Read(ctx context.Context, uuid string) (*MeshApiKey, error)
Update(ctx context.Context, uuid string, apiKey *MeshApiKey) (*MeshApiKey, error)
Delete(ctx context.Context, uuid string) error
}
type MeshApiKeyMetadata ¶
type MeshApiKeySpec ¶
type MeshApiKeySpec struct {
DisplayName string `json:"displayName" tfsdk:"display_name"`
Permissions types.Set[ApiPermission] `json:"permissions" tfsdk:"permissions"`
ExpiresAt *string `json:"expiresAt,omitzero" tfsdk:"expires_at"`
}
type MeshApiKeyStatus ¶
type MeshAwsWifProvider ¶
type MeshBuildingBlock ¶
type MeshBuildingBlock struct {
Metadata MeshBuildingBlockMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshBuildingBlockSpec `json:"spec" tfsdk:"spec"`
Status MeshBuildingBlockStatus `json:"status" tfsdk:"status"`
}
type MeshBuildingBlockClient ¶
type MeshBuildingBlockClient interface {
Read(ctx context.Context, uuid string) (*MeshBuildingBlock, error)
Create(ctx context.Context, bb *MeshBuildingBlockCreate) (*MeshBuildingBlock, error)
Delete(ctx context.Context, uuid string) error
}
type MeshBuildingBlockCreate ¶
type MeshBuildingBlockCreate struct {
Metadata MeshBuildingBlockCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshBuildingBlockSpec `json:"spec" tfsdk:"spec"`
}
type MeshBuildingBlockDefinition ¶
type MeshBuildingBlockDefinition struct {
Metadata MeshBuildingBlockDefinitionMetadata `json:"metadata"`
Spec MeshBuildingBlockDefinitionSpec `json:"spec"`
Status *MeshBuildingBlockDefinitionStatus `json:"status,omitzero"`
}
type MeshBuildingBlockDefinitionApprovalPolicies ¶
type MeshBuildingBlockDefinitionApprovalPolicies struct {
VersionUpgrade bool `json:"versionUpgrade" tfsdk:"version_upgrade"`
UserInputChanges bool `json:"userInputChanges" tfsdk:"user_input_changes"`
ManualTriggers bool `json:"manualTriggers" tfsdk:"manual_triggers"`
BuildingBlockCreation bool `json:"buildingBlockCreation" tfsdk:"building_block_creation"`
AnyInputChanges bool `json:"anyInputChanges" tfsdk:"any_input_changes"`
}
func (MeshBuildingBlockDefinitionApprovalPolicies) NothingRequiresApproval ¶
func (a MeshBuildingBlockDefinitionApprovalPolicies) NothingRequiresApproval() bool
NothingRequiresApproval reports whether no approval gate is enabled.
type MeshBuildingBlockDefinitionAzureDevOpsPipelineImplementation ¶
type MeshBuildingBlockDefinitionAzureDevOpsPipelineImplementation struct {
Project string `json:"project" tfsdk:"project"`
PipelineID string `json:"pipelineId" tfsdk:"pipeline_id"`
RefName *string `json:"refName,omitzero" tfsdk:"ref_name"`
Async bool `json:"async" tfsdk:"async"`
IntegrationRef UuidRef `json:"integrationRef" tfsdk:"integration_ref"`
}
type MeshBuildingBlockDefinitionClient ¶
type MeshBuildingBlockDefinitionClient interface {
List(ctx context.Context, workspaceIdentifier *string) ([]MeshBuildingBlockDefinition, error)
Read(ctx context.Context, uuid string) (*MeshBuildingBlockDefinition, error)
Create(ctx context.Context, definition MeshBuildingBlockDefinition) (*MeshBuildingBlockDefinition, error)
Update(ctx context.Context, uuid string, definition MeshBuildingBlockDefinition) (*MeshBuildingBlockDefinition, error)
Delete(ctx context.Context, uuid string) error
}
type MeshBuildingBlockDefinitionCloudWif ¶ added in v0.2.0
type MeshBuildingBlockDefinitionGitHubWorkflowsImplementation ¶
type MeshBuildingBlockDefinitionGitHubWorkflowsImplementation struct {
Repository string `json:"repository" tfsdk:"repository"`
Branch string `json:"branch" tfsdk:"branch"`
ApplyWorkflow string `json:"applyWorkflow" tfsdk:"apply_workflow"`
DestroyWorkflow *string `json:"destroyWorkflow" tfsdk:"destroy_workflow"`
Async bool `json:"async" tfsdk:"async"`
OmitRunObjectInput bool `json:"omitRunObjectInput" tfsdk:"omit_run_object_input"`
IntegrationRef UuidRef `json:"integrationRef" tfsdk:"integration_ref"`
}
type MeshBuildingBlockDefinitionGitLabPipelineImplementation ¶
type MeshBuildingBlockDefinitionGitLabPipelineImplementation struct {
ProjectID string `json:"projectId" tfsdk:"project_id"`
RefName string `json:"refName" tfsdk:"ref_name"`
IntegrationRef UuidRef `json:"integrationRef" tfsdk:"integration_ref"`
PipelineTriggerToken types.Secret `json:"pipelineTriggerToken" tfsdk:"pipeline_trigger_token"`
}
type MeshBuildingBlockDefinitionImplementation ¶
type MeshBuildingBlockDefinitionImplementation struct {
Type enum.Entry[MeshBuildingBlockImplementationType] `json:"type" tfsdk:"-"`
Manual *MeshBuildingBlockDefinitionManualImplementation `json:"manual,omitzero" tfsdk:"manual"`
GithubWorkflows *MeshBuildingBlockDefinitionGitHubWorkflowsImplementation `json:"githubWorkflows,omitzero" tfsdk:"github_workflows"`
AzureDevOpsPipeline *MeshBuildingBlockDefinitionAzureDevOpsPipelineImplementation `json:"azureDevOpsPipeline,omitzero" tfsdk:"azure_devops_pipeline"`
GitlabPipeline *MeshBuildingBlockDefinitionGitLabPipelineImplementation `json:"gitlabPipeline,omitzero" tfsdk:"gitlab_pipeline"`
Terraform *MeshBuildingBlockDefinitionTerraformImplementation `json:"terraform,omitzero" tfsdk:"terraform"`
}
func (MeshBuildingBlockDefinitionImplementation) InferType ¶ added in v0.2.0
func (m MeshBuildingBlockDefinitionImplementation) InferType() (enum.Entry[MeshBuildingBlockImplementationType], error)
InferType derives the implementation type from the one variant that is set. A version without any variant is what meshStack answers a workspace that may only consume the definition.
func (MeshBuildingBlockDefinitionImplementation) MarshalJSON ¶
func (m MeshBuildingBlockDefinitionImplementation) MarshalJSON() ([]byte, error)
func (*MeshBuildingBlockDefinitionImplementation) UnmarshalJSON ¶
func (m *MeshBuildingBlockDefinitionImplementation) UnmarshalJSON(bytes []byte) error
type MeshBuildingBlockDefinitionInput ¶
type MeshBuildingBlockDefinitionInput struct {
DisplayName string `json:"displayName" tfsdk:"display_name"`
Type MeshBuildingBlockIOType `json:"type" tfsdk:"type"`
AssignmentType MeshBuildingBlockInputAssignmentType `json:"assignmentType" tfsdk:"assignment_type"`
IsEnvironment bool `json:"isEnvironment" tfsdk:"is_environment"`
IsSensitive bool `json:"isSensitive" tfsdk:"-"`
// If IsSensitive is true, the [types.Variant] (typedef [types.SecretOrAny]) for fields
// MeshBuildingBlockDefinitionInputAdapter.Argument and
// MeshBuildingBlockDefinitionInputAdapter.DefaultValue
// is of [types.Secret] (case [types.Variant.X]).
// Otherwise, the [types.Variant] is of [types.Any] (case [types.Variant.Y]).
// As this is a fallback detection when JSON (un)marshaling,
// types.Any must go second as [types.Variant] intentionally prefers X over Y.
Argument types.SecretOrAny `json:"argument" tfsdk:"argument"`
DefaultValue types.SecretOrAny `json:"defaultValue" tfsdk:"default_value"`
UpdateableByConsumer bool `json:"updateableByConsumer" tfsdk:"updateable_by_consumer"`
IsOptional bool `json:"isOptional,omitzero" tfsdk:"is_optional"`
SelectableValues types.Set[string] `json:"selectableValues,omitempty" tfsdk:"selectable_values"`
Description *string `json:"description,omitzero" tfsdk:"description"`
ValueValidationRegex *string `json:"valueValidationRegex,omitzero" tfsdk:"value_validation_regex"`
ValidationRegexErrorMessage *string `json:"validationRegexErrorMessage,omitzero" tfsdk:"validation_regex_error_message"`
// The form this input is filled in through, as a JSON Schema string. Only for MeshBuildingBlockIOTypeJson.
JsonSchema *string `json:"jsonSchema,omitzero" tfsdk:"json_schema"`
Condition *string `json:"condition,omitzero" tfsdk:"condition"`
// No omitempty: a 0 (the schema default, and what an unknown plan value collapses to) must be sent so
// the backend stores it verbatim. With omitempty the 0 would be dropped and the backend would assign
// a position itself, making the applied value differ from the plan.
DisplayOrder int64 `json:"displayOrder" tfsdk:"display_order"`
}
func (*MeshBuildingBlockDefinitionInput) UnmarshalJSON ¶
func (m *MeshBuildingBlockDefinitionInput) UnmarshalJSON(bytes []byte) error
type MeshBuildingBlockDefinitionManualImplementation ¶
type MeshBuildingBlockDefinitionManualImplementation struct{}
type MeshBuildingBlockDefinitionOutput ¶
type MeshBuildingBlockDefinitionOutput struct {
DisplayName string `json:"displayName" tfsdk:"display_name"`
Type MeshBuildingBlockIOType `json:"type" tfsdk:"type"`
AssignmentType MeshBuildingBlockDefinitionOutputAssignmentType `json:"assignmentType" tfsdk:"assignment_type"`
// No omitempty so a 0 is sent, not dropped (see MeshBuildingBlockDefinitionInput.DisplayOrder).
DisplayOrder int64 `json:"displayOrder" tfsdk:"display_order"`
}
type MeshBuildingBlockDefinitionOutputAssignmentType ¶
type MeshBuildingBlockDefinitionOutputAssignmentType string
type MeshBuildingBlockDefinitionSchedule ¶
type MeshBuildingBlockDefinitionSchedule struct {
Mode MeshBuildingBlockScheduleMode `json:"mode" tfsdk:"mode"`
Frequency MeshBuildingBlockScheduleFrequency `json:"frequency" tfsdk:"frequency"`
AutomaticApproval bool `json:"automaticApproval" tfsdk:"automatic_approval"`
}
func DisabledSchedule ¶
func DisabledSchedule() MeshBuildingBlockDefinitionSchedule
DisabledSchedule is the only schedule meshStack accepts for every implementation.
func (MeshBuildingBlockDefinitionSchedule) IsDisabled ¶
func (s MeshBuildingBlockDefinitionSchedule) IsDisabled() bool
type MeshBuildingBlockDefinitionSpec ¶
type MeshBuildingBlockDefinitionSpec struct {
DisplayName string `json:"displayName" tfsdk:"display_name"`
DisplayNameTemplate *string `json:"displayNameTemplate,omitzero" tfsdk:"display_name_template"`
TargetType MeshBuildingBlockType `json:"targetType" tfsdk:"target_type"`
Description string `json:"description" tfsdk:"description"`
Readme *string `json:"readme,omitzero" tfsdk:"readme"`
RunTransparency bool `json:"runTransparency" tfsdk:"run_transparency"`
ApprovalPolicies MeshBuildingBlockDefinitionApprovalPolicies `json:"approvalPolicies" tfsdk:"approval_policies"`
Schedule MeshBuildingBlockDefinitionSchedule `json:"schedule" tfsdk:"schedule"`
UseInLandingZonesOnly bool `json:"useInLandingZonesOnly" tfsdk:"use_in_landing_zones_only"`
SupportURL *string `json:"supportUrl,omitzero" tfsdk:"support_url"`
DocumentationURL *string `json:"documentationUrl,omitzero" tfsdk:"documentation_url"`
// NotificationSubscribers can also specify emails with prefix 'email:', so it's not only usernames (as the JSON field name suggests)!
NotificationSubscribers types.Set[string] `json:"notificationSubscriberUsernames,omitempty" tfsdk:"notification_subscribers"`
Symbol *string `json:"symbol,omitzero" tfsdk:"symbol"`
SupportedPlatforms types.Set[NamedRef] `json:"supportedPlatforms" tfsdk:"supported_platforms"`
}
func (MeshBuildingBlockDefinitionSpec) HasNeutralPolicies ¶
func (s MeshBuildingBlockDefinitionSpec) HasNeutralPolicies() bool
HasNeutralPolicies reports whether the spec asks for no approval gate and no schedule.
func (MeshBuildingBlockDefinitionSpec) WithNeutralPolicies ¶
func (s MeshBuildingBlockDefinitionSpec) WithNeutralPolicies() MeshBuildingBlockDefinitionSpec
WithNeutralPolicies returns a copy of the spec without any required approvals and without a schedule.
type MeshBuildingBlockDefinitionStatus ¶
type MeshBuildingBlockDefinitionStatus struct {
UsageCount *int64 `json:"usageCount"`
Versions []MeshBuildingBlockDefinitionStatusVersion `json:"versions"`
LatestVersion int64 `json:"latestVersion"`
LatestVersionUuid string `json:"latestVersionUuid"`
LatestReleasedVersion *int64 `json:"latestReleasedVersion"`
LatestReleasedVersionUuid *string `json:"latestReleasedVersionUuid"`
RedactedForNonOwnerAccess bool `json:"redactedForNonOwnerAccess"`
}
type MeshBuildingBlockDefinitionStatusVersion ¶
type MeshBuildingBlockDefinitionStatusVersion struct {
VersionUuid string `json:"versionUuid"`
VersionNumber int64 `json:"versionNumber"`
State MeshBuildingBlockDefinitionVersionState `json:"state"`
// WorkloadIdentityFederation is the identity a run of this version presents to a cloud provider, rendered from the runner's template, absent when the runner declares none.
WorkloadIdentityFederation *MeshBuildingBlockDefinitionWif `json:"workloadIdentityFederation,omitzero"`
}
type MeshBuildingBlockDefinitionTerraformImplementation ¶
type MeshBuildingBlockDefinitionTerraformImplementation struct {
TerraformVersion string `json:"terraformVersion" tfsdk:"terraform_version"`
RepositoryURL string `json:"repositoryUrl" tfsdk:"repository_url"`
Async bool `json:"async" tfsdk:"async"`
RepositoryPath *string `json:"repositoryPath,omitzero" tfsdk:"repository_path"`
RefName *string `json:"refName,omitzero" tfsdk:"ref_name"`
SSHKnownHost *MeshBuildingBlockDefinitionSshKnownHost `json:"sshKnownHost,omitzero" tfsdk:"ssh_known_host"`
UseMeshHTTPBackendFallback bool `json:"useMeshHttpBackendFallback" tfsdk:"use_mesh_http_backend_fallback"`
SSHPrivateKey *types.Secret `json:"sshPrivateKey,omitzero" tfsdk:"ssh_private_key"`
PreRunScript *string `json:"preRunScript,omitzero" tfsdk:"pre_run_script"`
}
type MeshBuildingBlockDefinitionVersion ¶
type MeshBuildingBlockDefinitionVersion struct {
Metadata MeshBuildingBlockDefinitionVersionMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshBuildingBlockDefinitionVersionSpec `json:"spec" tfsdk:"spec"`
Status *MeshBuildingBlockDefinitionVersionStatus `json:"status,omitzero" tfsdk:"status"`
}
type MeshBuildingBlockDefinitionVersionClient ¶
type MeshBuildingBlockDefinitionVersionClient interface {
List(ctx context.Context, buildingBlockDefinitionUuid string) ([]MeshBuildingBlockDefinitionVersion, error)
Create(ctx context.Context, ownedByWorkspace string, versionSpec MeshBuildingBlockDefinitionVersionSpec) (*MeshBuildingBlockDefinitionVersion, error)
Update(ctx context.Context, uuid, ownedByWorkspace string, versionSpec MeshBuildingBlockDefinitionVersionSpec) (*MeshBuildingBlockDefinitionVersion, error)
}
MeshBuildingBlockDefinitionVersionClient manages a version of a building block definition. As such a version is tightly coupled to the definition, there's no single Get or Delete implemented. A Get is not required as we always expose all versions of a definition anyway, and a Delete happens together when the definition is deleted.
type MeshBuildingBlockDefinitionVersionSpec ¶
type MeshBuildingBlockDefinitionVersionSpec struct {
BuildingBlockDefinitionRef *UuidRef `json:"buildingBlockDefinitionRef" tfsdk:"-"`
OnlyApplyOncePerTenant bool `json:"onlyApplyOncePerTenant" tfsdk:"only_apply_once_per_tenant"`
DeletionMode BuildingBlockDeletionMode `json:"deletionMode" tfsdk:"deletion_mode"`
Permissions types.Set[ApiPermission] `json:"permissions,omitempty" tfsdk:"permissions"`
Outputs map[string]MeshBuildingBlockDefinitionOutput `json:"outputs" tfsdk:"outputs"`
VersionNumber *int64 `json:"versionNumber,omitzero" tfsdk:"version_number"`
State *MeshBuildingBlockDefinitionVersionState `json:"state,omitzero" tfsdk:"state"`
RunnerRef *UuidRef `json:"runnerRef" tfsdk:"runner_ref"`
// Replaces the deprecated bare-UUID dependencyDefinitionUuids; requires a backend serving it.
DependencyDefinitionRefs types.Set[UuidRef] `json:"dependencyDefinitionRefs,omitempty" tfsdk:"dependency_refs"`
Implementation MeshBuildingBlockDefinitionImplementation `json:"implementation" tfsdk:"implementation"`
Inputs map[string]*MeshBuildingBlockDefinitionInput `json:"inputs" tfsdk:"inputs"`
}
type MeshBuildingBlockDefinitionVersionState ¶
type MeshBuildingBlockDefinitionVersionState string
type MeshBuildingBlockDefinitionVersionStatus ¶
type MeshBuildingBlockDefinitionVersionStatus struct {
State MeshBuildingBlockDefinitionVersionState `json:"state" tfsdk:"state"`
UsageCount *int64 `json:"usageCount,omitzero" tfsdk:"usage_count"`
}
type MeshBuildingBlockDefinitionWif ¶ added in v0.2.0
type MeshBuildingBlockDefinitionWif struct {
Issuer string `json:"issuer" tfsdk:"issuer"`
Subject string `json:"subject" tfsdk:"subject"`
Gcp *MeshBuildingBlockDefinitionCloudWif `json:"gcp,omitzero" tfsdk:"gcp"`
Aws *MeshBuildingBlockDefinitionCloudWif `json:"aws,omitzero" tfsdk:"aws"`
Azure *MeshBuildingBlockDefinitionCloudWif `json:"azure,omitzero" tfsdk:"azure"`
}
type MeshBuildingBlockIO ¶
type MeshBuildingBlockIOType ¶
type MeshBuildingBlockIOType string
type MeshBuildingBlockImplementationType ¶
type MeshBuildingBlockImplementationType string
type MeshBuildingBlockInput ¶
type MeshBuildingBlockInput struct {
Value types.SecretOrAny `json:"value" tfsdk:"value"`
ValueType *enum.Entry[MeshBuildingBlockIOType] `json:"valueType,omitzero" tfsdk:"-"`
AssignmentType enum.Entry[MeshBuildingBlockInputAssignmentType] `json:"assignmentType,omitempty" tfsdk:"-"`
// If IsSensitive is true, the [types.Variant] (typedef [types.SecretOrAny]) for Value field
// is of [types.Secret] (case [types.Variant.X]).
// Otherwise, the [types.Variant] is of [types.Any] (case [types.Variant.Y]).
// As this is a fallback detection when JSON (un)marshaling,
// types.Any must go second as [types.Variant] intentionally prefers X over Y.
IsSensitive bool `json:"isSensitive" tfsdk:"-"`
}
func (*MeshBuildingBlockInput) UnmarshalJSON ¶
func (m *MeshBuildingBlockInput) UnmarshalJSON(bytes []byte) error
type MeshBuildingBlockInputAssignmentType ¶
type MeshBuildingBlockInputAssignmentType string
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 MeshBuildingBlockOutput ¶
type MeshBuildingBlockOutput struct {
Value types.Any `json:"value" tfsdk:"value"`
ValueType enum.Entry[MeshBuildingBlockIOType] `json:"valueType" tfsdk:"value_type"`
AssignmentType enum.Entry[MeshBuildingBlockDefinitionOutputAssignmentType] `json:"assignmentType" tfsdk:"assignment_type"`
}
type MeshBuildingBlockParent ¶
type MeshBuildingBlockParent struct {
BuildingBlockUuid string `json:"buildingBlockUuid" tfsdk:"buildingblock_uuid"`
DefinitionUuid string `json:"definitionUuid" tfsdk:"definition_uuid"`
}
MeshBuildingBlockParent is the v1 API's flat parent shape. The v2 API identifies a parent by reference instead — see MeshBuildingBlockV2Parent.
type MeshBuildingBlockRun ¶
type MeshBuildingBlockRun struct {
Metadata MeshBuildingBlockRunMetadata `json:"metadata"`
Spec MeshBuildingBlockRunSpec `json:"spec"`
Status string `json:"status"`
}
type MeshBuildingBlockRunBuildingBlock ¶ added in v0.2.0
type MeshBuildingBlockRunBuildingBlock struct {
Uuid string `json:"uuid"`
Spec MeshBuildingBlockRunBuildingBlockSpec `json:"spec"`
}
MeshBuildingBlockRunBuildingBlock is spec.buildingBlock of a meshBuildingBlockRun. The wire also carries spec.buildingBlock.spec.inputs, which holds the run's input values and is left out here because a sensitive one goes out encrypted for the runner alone.
type MeshBuildingBlockRunBuildingBlockSpec ¶ added in v0.2.0
type MeshBuildingBlockRunBuildingBlockSpec struct {
DisplayName string `json:"displayName"`
TargetRef MeshBuildingBlockV2TargetRef `json:"targetRef"`
WorkspaceIdentifier string `json:"workspaceIdentifier"`
ProjectIdentifier *string `json:"projectIdentifier"`
FullPlatformIdentifier *string `json:"fullPlatformIdentifier"`
}
type MeshBuildingBlockRunClient ¶
type MeshBuildingBlockRunClient interface {
GetLogs(ctx context.Context, runUuid string) (MeshBuildingBlockRunLogs, error)
}
type MeshBuildingBlockRunListFilter ¶ added in v0.2.0
type MeshBuildingBlockRunListFilter struct {
BuildingBlockUuid string `json:"buildingBlockUuid"`
}
type MeshBuildingBlockRunLogs ¶
type MeshBuildingBlockRunLogs struct {
Steps []MeshBuildingBlockRunStepLog `json:"steps"`
}
MeshBuildingBlockRunLogs is the response from the download-logs actions endpoint.
type MeshBuildingBlockRunSpec ¶
type MeshBuildingBlockRunSpec struct {
RunNumber int64 `json:"runNumber"`
Behavior string `json:"behavior"`
BuildingBlock MeshBuildingBlockRunBuildingBlock `json:"buildingBlock"`
}
type MeshBuildingBlockRunStepLog ¶
type MeshBuildingBlockRunStepLog struct {
DisplayName string `json:"displayName"`
Status string `json:"status"`
UserMessage *string `json:"userMessage"`
SystemMessage *string `json:"systemMessage"`
}
MeshBuildingBlockRunStepLog represents a single step's log data.
type MeshBuildingBlockRunner ¶
type MeshBuildingBlockRunner struct {
Metadata MeshBuildingBlockRunnerMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshBuildingBlockRunnerSpec `json:"spec" tfsdk:"spec"`
}
type MeshBuildingBlockRunnerClient ¶
type MeshBuildingBlockRunnerClient interface {
Create(ctx context.Context, runner MeshBuildingBlockRunner) (*MeshBuildingBlockRunner, error)
Read(ctx context.Context, uuid string) (*MeshBuildingBlockRunner, error)
Update(ctx context.Context, runner MeshBuildingBlockRunner) (*MeshBuildingBlockRunner, error)
Delete(ctx context.Context, uuid string) error
}
type MeshBuildingBlockRunnerImplementationType ¶
type MeshBuildingBlockRunnerImplementationType string
const ( MeshBuildingBlockRunnerImplementationTypeTerraform MeshBuildingBlockRunnerImplementationType = "TERRAFORM" MeshBuildingBlockRunnerImplementationTypeGithubWorkflow MeshBuildingBlockRunnerImplementationType = "GITHUB_WORKFLOW" MeshBuildingBlockRunnerImplementationTypeGitlabPipeline MeshBuildingBlockRunnerImplementationType = "GITLAB_PIPELINE" MeshBuildingBlockRunnerImplementationTypeAzureDevopsPipeline MeshBuildingBlockRunnerImplementationType = "AZURE_DEVOPS_PIPELINE" MeshBuildingBlockRunnerImplementationTypeManual MeshBuildingBlockRunnerImplementationType = "MANUAL" MeshBuildingBlockRunnerImplementationTypeAll MeshBuildingBlockRunnerImplementationType = "ALL" )
TODO Turn this into enum!
type MeshBuildingBlockRunnerMetadata ¶
type MeshBuildingBlockRunnerMetadata struct {
Uuid *string `json:"uuid,omitzero" tfsdk:"uuid"`
OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
CreatedOn *string `json:"createdOn,omitzero" tfsdk:"created_on"`
LastSeen *string `json:"lastSeen,omitzero" tfsdk:"last_seen"`
}
type MeshBuildingBlockRunnerSpec ¶
type MeshBuildingBlockRunnerSpec struct {
DisplayName string `json:"displayName" tfsdk:"display_name"`
PublicKey string `json:"publicKey" tfsdk:"public_key"`
ImplementationType string `json:"implementationType" tfsdk:"implementation_type"`
Restriction *string `json:"restriction,omitzero" tfsdk:"restriction"`
IsSelfHosted *bool `json:"isSelfHosted,omitzero" tfsdk:"is_self_hosted"`
WorkloadIdentityFederation *MeshRunnerWorkloadIdentityFed `json:"workloadIdentityFederation,omitzero" tfsdk:"workload_identity_federation"`
}
type MeshBuildingBlockScheduleFrequency ¶
type MeshBuildingBlockScheduleFrequency string
type MeshBuildingBlockScheduleMode ¶
type MeshBuildingBlockScheduleMode string
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 MeshBuildingBlockTagInputTarget ¶
type MeshBuildingBlockTagInputTarget string
MeshBuildingBlockTagInputTarget names the meshObject a tag input reads its tag from. It is the first half of the input's argument, `<target>.<tag key>`.
type MeshBuildingBlockType ¶
type MeshBuildingBlockType string
type MeshBuildingBlockV2 ¶
type MeshBuildingBlockV2 struct {
Metadata MeshBuildingBlockV2Metadata `json:"metadata" tfsdk:"metadata"`
Spec MeshBuildingBlockV2Spec `json:"spec" tfsdk:"spec"`
Status *MeshBuildingBlockV2Status `json:"status" tfsdk:"status"`
}
func (*MeshBuildingBlockV2) CreateSuccessful ¶
func (bb *MeshBuildingBlockV2) CreateSuccessful() (done bool, err error)
func (*MeshBuildingBlockV2) DeletionSuccessful ¶
func (bb *MeshBuildingBlockV2) DeletionSuccessful() (done bool, err error)
func (*MeshBuildingBlockV2) IsWaitingForInput ¶
func (bb *MeshBuildingBlockV2) IsWaitingForInput() bool
IsWaitingForInput reports whether the building block run is paused awaiting human input, a dependency, or an approval. Such a run will not progress on its own, so polling callers treat it as a terminal (but non-fatal) state and surface a warning.
type MeshBuildingBlockV2Client ¶
type MeshBuildingBlockV2Client interface {
Read(ctx context.Context, uuid string) (*MeshBuildingBlockV2, error)
ReadFunc(uuid string) func(ctx context.Context) (*MeshBuildingBlockV2, error)
List(ctx context.Context, filter MeshBuildingBlockV2ListFilter) ([]MeshBuildingBlockV2, error)
Create(ctx context.Context, bb *MeshBuildingBlockV2) (*MeshBuildingBlockV2, error)
Update(ctx context.Context, bb *MeshBuildingBlockV2) (*MeshBuildingBlockV2, error)
Delete(ctx context.Context, uuid string, purge bool) error
TriggerRun(ctx context.Context, uuid string) error
}
type MeshBuildingBlockV2DefinitionVersionRef ¶
type MeshBuildingBlockV2DefinitionVersionRef struct {
UuidRef
// ContentHash is a Terraform-only field (json:"-", never sent to or returned by the backend).
// It lets a config signal that the referenced version's content changed so a rerun is triggered
// even though the version uuid is unchanged. The building_block (v3) resource honors it via the
// shared rerunNeeded predicate used by both ModifyPlan and Update.
ContentHash *string `json:"-" tfsdk:"content_hash"`
}
type MeshBuildingBlockV2Lifecycle ¶
type MeshBuildingBlockV2Lifecycle struct {
State enum.Entry[BuildingBlockLifecycleState] `json:"state" tfsdk:"state"`
}
type MeshBuildingBlockV2ListFilter ¶
type MeshBuildingBlockV2ListFilter struct {
WorkspaceIdentifier *string `json:"workspaceIdentifier"`
ProjectIdentifier *string `json:"projectIdentifier"`
PlatformIdentifier *string `json:"platformIdentifier"`
Name *string `json:"name"`
// DefinitionUuid filters by the owning building block definition's UUID (not a version).
DefinitionUuid *string `json:"definitionUuid"`
// VersionUuid filters by a specific building block definition version UUID.
VersionUuid *string `json:"versionUuid"`
// VersionNumber filters by the literal definition version number. The backend parses it
// leniently, so both "v1" and "1" match version 1.
VersionNumber *string `json:"versionNumber"`
TenantUuid *string `json:"tenantUuid"`
// TargetKind filters by target ref kind, one of meshTenant or meshWorkspace.
TargetKind *string `json:"targetRefKind"`
Status *string `json:"status"`
// ManagedByWorkspaceIdentifier and ManagedByDefinitionUuid select the platform-operator
// (managed) permission scope: building blocks created from definitions owned by the given
// workspace / definition. Requires the MANAGED_BUILDINGBLOCK_LIST authority.
ManagedByWorkspaceIdentifier *string `json:"managedByWorkspaceIdentifier"`
ManagedByDefinitionUuid *string `json:"managedByDefinitionUuid"`
}
MeshBuildingBlockV2ListFilter holds the optional query filters for listing building blocks via the v2-preview list endpoint. All scalar fields are nil when unset (omitted from the query). The backend returns only active building blocks; soft-deleted ones are not listed. MeshBuildingBlockV2ListFilter holds the optional filters for the V2 building block list endpoint. The json tags are the query param names and must match the backend fetchBuildingBlocksV2 @RequestParam names exactly; a typo silently disables the filter.
type MeshBuildingBlockV2Parent ¶
type MeshBuildingBlockV2Parent struct {
UuidRef
// BuildingBlockUuid identifies the parent and always holds the same value as Uuid.
BuildingBlockUuid string `json:"buildingBlockUuid"`
// DefinitionUuid is the parent's building block definition. The backend derives it from the
// referenced block, so every response carries it and a request never does.
DefinitionUuid string `json:"definitionUuid,omitempty"`
}
MeshBuildingBlockV2Parent is an entry of the deprecated parentBuildingBlocks field.
func (*MeshBuildingBlockV2Parent) UnmarshalJSON ¶
func (p *MeshBuildingBlockV2Parent) UnmarshalJSON(data []byte) error
UnmarshalJSON fills Uuid from the deprecated buildingBlockUuid, which is where a response carries the parent's identity.
type MeshBuildingBlockV2Spec ¶
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 as pointer MeshBuildingBlockInput to support mocking secret responses.
Inputs map[string]*MeshBuildingBlockInput `json:"inputs" tfsdk:"inputs"`
ParentBuildingBlockRefs types.Set[UuidRef] `json:"parentBuildingBlockRefs" tfsdk:"parent_building_block_refs"`
// ParentBuildingBlocks holds the deprecated parentBuildingBlocks field. MarshalJSON and
// UnmarshalJSON put it on the wire and take it off again, and the deprecated
// meshstack_building_block_v2 surfaces read it for the definition uuid they report.
ParentBuildingBlocks types.Set[MeshBuildingBlockV2Parent] `json:"-" tfsdk:"-"`
}
func (MeshBuildingBlockV2Spec) MarshalJSON ¶
func (s MeshBuildingBlockV2Spec) MarshalJSON() ([]byte, error)
MarshalJSON sends the parents under both field names: parentBuildingBlockRefs, and the deprecated parentBuildingBlocks for a backend that does not know the new field yet. A newer backend accepts both as long as they name the same building blocks, and an older one ignores the field it does not know, because the meshObject API does not reject unknown properties.
Together with UnmarshalJSON this is the whole compatibility window. Once every backend still in use knows parentBuildingBlockRefs, both methods can go.
func (*MeshBuildingBlockV2Spec) UnmarshalJSON ¶
func (s *MeshBuildingBlockV2Spec) UnmarshalJSON(data []byte) error
UnmarshalJSON reads the parents from parentBuildingBlockRefs, or from the deprecated parentBuildingBlocks when a backend does not serve the new field yet. Terraform then sees the same elements against either backend and set hashing stays stable.
type MeshBuildingBlockV2Status ¶
type MeshBuildingBlockV2Status struct {
Status enum.Entry[BuildingBlockStatus] `json:"status" tfsdk:"status"`
Outputs map[string]MeshBuildingBlockOutput `json:"outputs" tfsdk:"outputs"`
ForcePurge bool `json:"forcePurge" tfsdk:"force_purge"`
Lifecycle MeshBuildingBlockV2Lifecycle `json:"lifecycle" tfsdk:"-"`
// LatestRunUuid tracks the latest *modifying* (apply/destroy) run and excludes dry runs. It is nil
// only when no such run exists: run_transparency gates reading the run and its system messages, not
// this identifier (MeshBuildingBlockV2RepresentationModelAssembler.resolveLatestRunUuid).
LatestRunUuid *string `json:"latestRunUuid" tfsdk:"latest_run_uuid"`
// LatestDryRunUuid is the latest dry (DETECT) run, but only when it is the newest run; nil otherwise.
// Ungated like LatestRunUuid.
LatestDryRunUuid *string `json:"latestDryRunUuid" tfsdk:"latest_dry_run_uuid"`
}
type MeshFeatureFlag ¶
type MeshFeatureFlag string
MeshFeatureFlag names an optional meshStack capability. /mesh/info reports each one as a bool of its own, so a consumer that wants a list of names maps them itself.
type MeshInfo ¶
type MeshInfo struct {
Version string `json:"version" tfsdk:"version"`
// Is4EPEnabled means "Is four-eyes principle enabled"
Is4EPEnabled bool `json:"is4EPEnabled" tfsdk:"-"`
Metadata map[string]string `json:"metadata" tfsdk:"metadata"`
AdminWorkspaceIdentifier string `json:"adminWorkspaceIdentifier" tfsdk:"admin_workspace_identifier"`
Issuer xurl.URL `json:"issuer" tfsdk:"-"`
CliClientId string `json:"cliClientId" tfsdk:"-"`
}
MeshInfo is the public, unauthenticated /mesh/info document, as the endpoint returns it.
func (MeshInfo) CheckVersion ¶
type MeshInfoClient ¶
func NewMeshInfoClient ¶
func NewMeshInfoClient(client http.Client, endpoint xurl.URL) MeshInfoClient
type MeshIntegration ¶
type MeshIntegration struct {
Metadata MeshIntegrationMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshIntegrationSpec `json:"spec" tfsdk:"spec"`
Status *MeshIntegrationStatus `json:"status" tfsdk:"status"`
}
type MeshIntegrationAzureDevopsConfig ¶
type MeshIntegrationAzureDevopsConfig struct {
BaseUrl string `json:"baseUrl" tfsdk:"base_url"`
Organization string `json:"organization" tfsdk:"organization"`
PersonalAccessToken types.Secret `json:"personalAccessToken" tfsdk:"personal_access_token"`
RunnerRef *UuidRef `json:"runnerRef" tfsdk:"runner_ref"`
}
type MeshIntegrationClient ¶
type MeshIntegrationClient interface {
Create(ctx context.Context, integration MeshIntegration) (*MeshIntegration, error)
Read(ctx context.Context, uuid string) (*MeshIntegration, error)
Update(ctx context.Context, integration MeshIntegration) (*MeshIntegration, error)
Delete(ctx context.Context, uuid string) error
List(ctx context.Context) ([]MeshIntegration, error)
}
type MeshIntegrationConfig ¶
type MeshIntegrationConfig struct {
Type enum.Entry[MeshIntegrationConfigType] `json:"type" tfsdk:"-"`
Github *MeshIntegrationGithubConfig `json:"github,omitzero" tfsdk:"github"`
Gitlab *MeshIntegrationGitlabConfig `json:"gitlab,omitzero" tfsdk:"gitlab"`
AzureDevops *MeshIntegrationAzureDevopsConfig `json:"azuredevops,omitzero" tfsdk:"azuredevops"`
EntraId *MeshIntegrationEntraIdConfig `json:"entraid,omitzero" tfsdk:"entraid"`
}
func (MeshIntegrationConfig) InferType ¶ added in v0.2.0
func (m MeshIntegrationConfig) InferType() (enum.Entry[MeshIntegrationConfigType], error)
func (MeshIntegrationConfig) MarshalJSON ¶
func (m MeshIntegrationConfig) MarshalJSON() ([]byte, error)
func (*MeshIntegrationConfig) UnmarshalJSON ¶
func (m *MeshIntegrationConfig) UnmarshalJSON(bytes []byte) error
type MeshIntegrationConfigType ¶
type MeshIntegrationConfigType string
type MeshIntegrationEntraIdConfig ¶
type MeshIntegrationEntraIdConfig struct {
TenantId string `json:"tenantId" tfsdk:"tenant_id"`
ClientId string `json:"clientId" tfsdk:"client_id"`
ClientSecret types.Secret `json:"clientSecret" tfsdk:"client_secret"`
IdpAlias *string `json:"idpAlias,omitzero" tfsdk:"idp_alias"`
// meshStack derives this and returns it inside spec, which configuration writes. A computed value
// there is unreachable under provider mocks (issue #272), so Terraform reads it from status instead.
RedirectUrl *string `json:"redirectUrl,omitzero" tfsdk:"-"`
}
type MeshIntegrationGithubConfig ¶
type MeshIntegrationGithubConfig struct {
Owner string `json:"owner" tfsdk:"owner"`
BaseUrl string `json:"baseUrl" tfsdk:"base_url"`
AppId string `json:"appId" tfsdk:"app_id"`
AppPrivateKey types.Secret `json:"appPrivateKey" tfsdk:"app_private_key"`
RunnerRef *UuidRef `json:"runnerRef" tfsdk:"runner_ref"`
}
type MeshIntegrationMetadata ¶
type MeshIntegrationSpec ¶
type MeshIntegrationSpec struct {
DisplayName string `json:"displayName" tfsdk:"display_name"`
Config MeshIntegrationConfig `json:"config" tfsdk:"config"`
}
type MeshIntegrationStatus ¶
type MeshIntegrationStatus struct {
IsBuiltIn bool `json:"isBuiltIn" tfsdk:"is_built_in"`
WorkloadIdentityFederation *MeshWorkloadIdentityFederation `json:"workloadIdentityFederation" tfsdk:"workload_identity_federation"`
}
type MeshLandingZone ¶
type MeshLandingZone struct {
Metadata MeshLandingZoneMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshLandingZoneSpec `json:"spec" tfsdk:"spec"`
Status MeshLandingZoneStatus `json:"status" tfsdk:"status"`
}
type MeshLandingZoneClient ¶
type MeshLandingZoneClient interface {
Read(ctx context.Context, name string) (*MeshLandingZone, error)
List(ctx context.Context, query MeshLandingZoneListQuery) ([]MeshLandingZone, error)
Create(ctx context.Context, landingZone *MeshLandingZoneCreate) (*MeshLandingZone, error)
Update(ctx context.Context, name string, landingZone *MeshLandingZoneCreate) (*MeshLandingZone, error)
Delete(ctx context.Context, name string) error
}
type MeshLandingZoneCreate ¶
type MeshLandingZoneCreate struct {
Metadata MeshLandingZoneMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshLandingZoneSpec `json:"spec" tfsdk:"spec"`
}
type MeshLandingZoneListQuery ¶
type MeshLandingZoneListQuery struct {
PlatformUuid *string `json:"platformUuid"`
Identifier *string `json:"identifier"`
DisplayName *string `json:"displayName"`
Restricted *bool `json:"restricted"`
OwnedByWorkspace *string `json:"ownedByWorkspace"`
}
MeshLandingZoneListQuery holds the optional filters for the V1 landing zone list endpoint. The json tags name the query params; unset (nil/zero) fields are dropped by WithUrlQuery.
type MeshLandingZoneMetadata ¶
type MeshLandingZonePlatformProperties ¶
type MeshLandingZonePlatformProperties 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"`
Custom *CustomPlatformProperties `json:"custom" tfsdk:"custom"`
Gcp *GcpPlatformProperties `json:"gcp" tfsdk:"gcp"`
Kubernetes *KubernetesPlatformProperties `json:"kubernetes" tfsdk:"kubernetes"`
OpenShift *OpenShiftPlatformProperties `json:"openshift" tfsdk:"openshift"`
}
type MeshLandingZoneQuota ¶
type MeshLandingZoneSpec ¶
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"`
// Nullable in the API, where absent means "keep the stored value" — hence no `,omitempty`: the
// schema defaults this to false, so the provider always states the value it wants and never
// asks the backend to keep whatever is stored.
Restricted bool `json:"restricted" tfsdk:"restricted"`
InfoLink *string `json:"infoLink,omitzero" tfsdk:"info_link"`
PlatformRef UuidRef `json:"platformRef" tfsdk:"platform_ref"`
PlatformProperties *MeshLandingZonePlatformProperties `json:"platformProperties,omitzero" tfsdk:"platform_properties"`
Quotas []MeshLandingZoneQuota `json:"quotas" tfsdk:"quotas"`
MandatoryBuildingBlockRefs []UuidRef `json:"mandatoryBuildingBlockRefs" tfsdk:"mandatory_building_block_refs"`
RecommendedBuildingBlockRefs []UuidRef `json:"recommendedBuildingBlockRefs" tfsdk:"recommended_building_block_refs"`
}
type MeshLandingZoneStatus ¶
type MeshListingClient ¶ added in v0.2.0
type MeshListingClient interface {
Workspaces(ctx context.Context) iter.Seq2[jsontext.Value, error]
BuildingBlocksV2(ctx context.Context, filter MeshBuildingBlockV2ListFilter) iter.Seq2[jsontext.Value, error]
BuildingBlockRuns(ctx context.Context, filter MeshBuildingBlockRunListFilter) iter.Seq2[jsontext.Value, error]
}
type MeshLocation ¶
type MeshLocation struct {
Metadata MeshLocationMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshLocationSpec `json:"spec" tfsdk:"spec"`
Status MeshLocationStatus `json:"status" tfsdk:"status"`
}
type MeshLocationClient ¶
type MeshLocationClient interface {
Read(ctx context.Context, name string) (*MeshLocation, error)
Create(ctx context.Context, location *MeshLocationCreate) (*MeshLocation, error)
Update(ctx context.Context, name string, location *MeshLocationCreate) (*MeshLocation, error)
Delete(ctx context.Context, name string) error
}
type MeshLocationCreate ¶
type MeshLocationCreate struct {
Metadata MeshLocationCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshLocationSpec `json:"spec" tfsdk:"spec"`
}
type MeshLocationMetadata ¶
type MeshLocationSpec ¶
type MeshLocationStatus ¶
type MeshLocationStatus struct {
IsPublic bool `json:"isPublic" tfsdk:"is_public"`
}
type MeshPaymentMethod ¶
type MeshPaymentMethod struct {
Metadata MeshPaymentMethodMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshPaymentMethodSpec `json:"spec" tfsdk:"spec"`
}
type MeshPaymentMethodClient ¶
type MeshPaymentMethodClient interface {
Read(ctx context.Context, identifier string) (*MeshPaymentMethod, error)
Create(ctx context.Context, paymentMethod *MeshPaymentMethodCreate) (*MeshPaymentMethod, error)
Update(ctx context.Context, identifier string, paymentMethod *MeshPaymentMethodCreate) (*MeshPaymentMethod, error)
Delete(ctx context.Context, identifier string) error
}
type MeshPaymentMethodCreate ¶
type MeshPaymentMethodCreate struct {
Metadata MeshPaymentMethodCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshPaymentMethodSpec `json:"spec" tfsdk:"spec"`
}
type MeshPaymentMethodSpec ¶
type MeshPlatform ¶
type MeshPlatform struct {
Metadata MeshPlatformMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshPlatformSpec `json:"spec" tfsdk:"spec"`
}
type MeshPlatformClient ¶
type MeshPlatformClient interface {
Read(ctx context.Context, uuid string) (*MeshPlatform, error)
List(ctx context.Context, query MeshPlatformListQuery) ([]MeshPlatform, error)
Create(ctx context.Context, platform MeshPlatform) (*MeshPlatform, error)
Update(ctx context.Context, uuid string, platform MeshPlatform) (*MeshPlatform, error)
Delete(ctx context.Context, uuid string) error
}
type MeshPlatformListQuery ¶
type MeshPlatformListQuery struct {
OwnedByWorkspace *string `json:"ownedByWorkspace"`
Identifier *string `json:"identifier"`
LocationIdentifier *string `json:"locationIdentifier"`
DisplayName *string `json:"displayName"`
Restriction *string `json:"restriction"`
PublicationState *string `json:"publicationState"`
ContributingWorkspace *string `json:"contributingWorkspace"`
// PlatformTypeIdentifier filters by the platform type's identifier (matched backend-side); the type
// is not carried in the response, and spec.config is redacted for marketplace consumers anyway.
PlatformTypeIdentifier *string `json:"platformTypeIdentifier"`
}
MeshPlatformListQuery holds the optional filters for the V2 platform list endpoint. The json tags name the query params; unset (nil/zero) fields are dropped by WithUrlQuery.
type MeshPlatformMetadata ¶
type MeshPlatformSpec ¶
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,omitzero" tfsdk:"support_url"`
DocumentationUrl *string `json:"documentationUrl,omitzero" tfsdk:"documentation_url"`
AccessInformation *string `json:"accessInformation,omitzero" tfsdk:"access_information"`
LocationRef NamedRef `json:"locationRef" tfsdk:"location_ref"`
ContributingWorkspaces types.Set[string] `json:"contributingWorkspaces" tfsdk:"contributing_workspaces"`
Availability PlatformAvailability `json:"availability" tfsdk:"availability"`
// Config is nullable in responses: redacted (omitted) for marketplace-consumer callers. Required on write.
Config *PlatformConfig `json:"config,omitzero" tfsdk:"config"`
QuotaDefinitions types.Set[QuotaDefinition] `json:"quotaDefinitions" tfsdk:"quota_definitions"`
}
type MeshPlatformType ¶
type MeshPlatformType struct {
Metadata MeshPlatformTypeMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshPlatformTypeSpec `json:"spec" tfsdk:"spec"`
Status MeshPlatformTypeStatus `json:"status" tfsdk:"status"`
}
type MeshPlatformTypeClient ¶
type MeshPlatformTypeClient interface {
Create(ctx context.Context, platformType *MeshPlatformTypeCreate) (*MeshPlatformType, error)
Read(ctx context.Context, identifier string) (*MeshPlatformType, error)
Update(ctx context.Context, name string, platformType *MeshPlatformTypeCreate) (*MeshPlatformType, error)
Delete(ctx context.Context, name string) error
List(ctx context.Context, category *string, lifecycleStatus *string) ([]MeshPlatformType, error)
}
type MeshPlatformTypeCreate ¶
type MeshPlatformTypeCreate struct {
Metadata MeshPlatformTypeCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshPlatformTypeSpec `json:"spec" tfsdk:"spec"`
}
type MeshPlatformTypeLifecycle ¶
type MeshPlatformTypeLifecycle struct {
State string `json:"state" tfsdk:"state"`
}
type MeshPlatformTypeSpec ¶
type MeshPlatformTypeStatus ¶
type MeshPlatformTypeStatus struct {
Lifecycle MeshPlatformTypeLifecycle `json:"lifecycle" tfsdk:"lifecycle"`
}
type MeshProject ¶
type MeshProject struct {
Metadata MeshProjectMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshProjectSpec `json:"spec" tfsdk:"spec"`
}
type MeshProjectBinding ¶
type MeshProjectBinding struct {
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 ¶
type MeshProjectBindingMetadata struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshProjectClient ¶
type MeshProjectClient interface {
Read(ctx context.Context, workspace string, name string) (*MeshProject, error)
List(ctx context.Context, workspaceIdentifier string, paymentMethodIdentifier *string) ([]MeshProject, error)
Create(ctx context.Context, project *MeshProjectCreate) (*MeshProject, error)
Update(ctx context.Context, project *MeshProjectCreate) (*MeshProject, error)
Delete(ctx context.Context, workspace string, name string) error
}
type MeshProjectCreate ¶
type MeshProjectCreate struct {
Metadata MeshProjectCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshProjectSpec `json:"spec" tfsdk:"spec"`
}
type MeshProjectGroupBinding ¶
type MeshProjectGroupBinding struct {
MeshProjectBinding
}
type MeshProjectGroupBindingClient ¶
type MeshProjectGroupBindingClient interface {
Read(ctx context.Context, name string) (*MeshProjectGroupBinding, error)
Create(ctx context.Context, binding *MeshProjectGroupBinding) (*MeshProjectGroupBinding, error)
Delete(ctx context.Context, name string) error
}
type MeshProjectMetadata ¶
type MeshProjectRoleRef
deprecated
type MeshProjectRoleRef struct {
Name string `json:"name" tfsdk:"name"`
}
MeshProjectRoleRef names a role by its name alone.
Deprecated: Use NamedRef 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 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 MeshProjectUserBinding ¶
type MeshProjectUserBinding struct {
MeshProjectBinding
}
type MeshProjectUserBindingClient ¶
type MeshProjectUserBindingClient interface {
Read(ctx context.Context, name string) (*MeshProjectUserBinding, error)
Create(ctx context.Context, binding *MeshProjectUserBinding) (*MeshProjectUserBinding, error)
Delete(ctx context.Context, name string) error
}
type MeshRunnerWorkloadIdentityFed ¶
type MeshRunnerWorkloadIdentityFed struct {
// SubjectTemplate holds {{ workspaceIdentifier }} and {{ buildingBlockDefinitionUuid }}, which meshStack renders per building block definition version.
SubjectTemplate *string `json:"subjectTemplate,omitzero" tfsdk:"subject_template"`
Issuer *string `json:"issuer,omitzero" tfsdk:"issuer"`
Gcp *MeshRunnerWifProviderConfig `json:"gcp,omitzero" tfsdk:"gcp"`
Aws *MeshRunnerWifProviderConfig `json:"aws,omitzero" tfsdk:"aws"`
Azure *MeshRunnerWifProviderConfig `json:"azure,omitzero" tfsdk:"azure"`
}
type MeshServiceInstance ¶
type MeshServiceInstance struct {
Metadata MeshServiceInstanceMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshServiceInstanceSpec `json:"spec" tfsdk:"spec"`
}
type MeshServiceInstanceClient ¶
type MeshServiceInstanceClient interface {
Read(ctx context.Context, instanceId string) (*MeshServiceInstance, error)
List(ctx context.Context, filter MeshServiceInstanceFilter) ([]MeshServiceInstance, error)
}
type MeshServiceInstanceFilter ¶
type MeshServiceInstanceFilter struct {
WorkspaceIdentifier *string `json:"workspaceIdentifier"`
ProjectIdentifier *string `json:"projectIdentifier"`
MarketplaceIdentifier *string `json:"marketplaceIdentifier"`
ServiceIdentifier *string `json:"serviceIdentifier"`
PlanIdentifier *string `json:"planIdentifier"`
}
type MeshServiceInstanceMetadata ¶
type MeshServiceInstanceMetadata struct {
OwnedByProject string `json:"ownedByProject" tfsdk:"owned_by_project"`
OwnedByWorkspace string `json:"ownedByWorkspace" tfsdk:"owned_by_workspace"`
MarketplaceIdentifier string `json:"marketplaceIdentifier" tfsdk:"marketplace_identifier"`
InstanceId string `json:"instanceId" tfsdk:"instance_id"`
}
type MeshServiceInstanceSpec ¶
type MeshServiceInstanceSpec struct {
Creator string `json:"creator" tfsdk:"creator"`
DisplayName string `json:"displayName" tfsdk:"display_name"`
PlanId string `json:"planId" tfsdk:"plan_id"`
ServiceId string `json:"serviceId" tfsdk:"service_id"`
Parameters map[string]types.Any `json:"parameters" tfsdk:"parameters"`
}
type MeshSubject ¶
type MeshSubject struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshTagDefinition ¶
type MeshTagDefinition struct {
Metadata MeshTagDefinitionMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshTagDefinitionSpec `json:"spec" tfsdk:"spec"`
}
type MeshTagDefinitionClient ¶
type MeshTagDefinitionClient interface {
List(ctx context.Context) ([]MeshTagDefinition, error)
Read(ctx context.Context, name string) (*MeshTagDefinition, error)
Create(ctx context.Context, tagDefinition *MeshTagDefinition) (*MeshTagDefinition, error)
Update(ctx context.Context, tagDefinition *MeshTagDefinition) (*MeshTagDefinition, error)
Delete(ctx context.Context, name string) error
}
type MeshTagDefinitionMetadata ¶
type MeshTagDefinitionMetadata struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshTagDefinitionSpec ¶
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,omitzero" tfsdk:"replication_key"`
}
type MeshTagDefinitionValueType ¶
type MeshTagDefinitionValueType struct {
String *TagValueString `json:"string,omitzero" tfsdk:"string"`
Email *TagValueEmail `json:"email,omitzero" tfsdk:"email"`
Integer *TagValueInteger `json:"integer,omitzero" tfsdk:"integer"`
Number *TagValueNumber `json:"number,omitzero" tfsdk:"number"`
SingleSelect *TagValueSingleSelect `json:"singleSelect,omitzero" tfsdk:"single_select"`
MultiSelect *TagValueMultiSelect `json:"multiSelect,omitzero" tfsdk:"multi_select"`
}
type MeshTenant ¶
type MeshTenant struct {
Metadata MeshTenantMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshTenantSpec `json:"spec" tfsdk:"spec"`
Status MeshTenantStatus `json:"status" tfsdk:"status"`
}
func (*MeshTenant) CreationSuccessful ¶
func (tenant *MeshTenant) CreationSuccessful() (done bool, err error)
func (*MeshTenant) DeletionState ¶
func (tenant *MeshTenant) DeletionState() string
func (*MeshTenant) DeletionSuccessful ¶
func (tenant *MeshTenant) DeletionSuccessful() (done bool, err error)
type MeshTenantClient ¶
type MeshTenantClient interface {
Read(ctx context.Context, uuid string) (*MeshTenant, error)
ReadFunc(uuid string) func(ctx context.Context) (*MeshTenant, error)
List(ctx context.Context, query MeshTenantQuery) ([]MeshTenant, error)
Create(ctx context.Context, tenant *MeshTenantCreate) (*MeshTenant, error)
Delete(ctx context.Context, uuid string) error
}
type MeshTenantCreate ¶
type MeshTenantCreate struct {
Metadata MeshTenantCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshTenantCreateSpec `json:"spec" tfsdk:"spec"`
}
type MeshTenantCreateSpec ¶
type MeshTenantCreateSpec struct {
PlatformRef UuidRef `json:"platformRef" tfsdk:"platform_ref"`
LandingZoneRef *NamedRef `json:"landingZoneRef" tfsdk:"landing_zone_ref"`
PlatformTenantId *string `json:"platformTenantId" tfsdk:"platform_tenant_id"`
RequestedQuotas map[string]RequestQuotaValue `json:"requestedQuotas,omitempty" tfsdk:"requested_quotas"`
}
type MeshTenantLifecycle ¶
type MeshTenantLifecycle struct {
State enum.Entry[TenantLifecycleState] `json:"state" tfsdk:"-"`
MarkedForDeletion *MeshTenantLifecycleAction `json:"markedForDeletion" tfsdk:"-"`
}
type MeshTenantLifecycleAction ¶
type MeshTenantLifecycleAction struct {
Timestamp string `json:"timestamp" tfsdk:"-"`
}
type MeshTenantMetadata ¶
type MeshTenantQuery ¶
type MeshTenantQuery struct {
Workspace string `json:"workspaceIdentifier"`
Project *string `json:"projectIdentifier"`
Platform *string `json:"platformIdentifier"`
PlatformType *string `json:"platformTypeIdentifier"`
LandingZone *string `json:"landingZoneIdentifier"`
PlatformTenant *string `json:"platformTenantId"`
}
type MeshTenantQuota ¶
type MeshTenantQuota struct {
Key string `json:"key" tfsdk:"key"`
Value int64 `json:"value" tfsdk:"value"`
}
MeshTenantQuota is the {key, value} element of the removed list-form spec.quotas. The schema version 1 prior state still declares that attribute, so the state upgrader needs this shape to read it.
type MeshTenantSpec ¶
type MeshTenantSpec struct {
PlatformRef UuidRef `json:"platformRef" tfsdk:"platform_ref"`
PlatformTenantId *string `json:"platformTenantId" tfsdk:"platform_tenant_id"`
LandingZoneRef *NamedRef `json:"landingZoneRef" tfsdk:"landing_zone_ref"`
// RequestedQuotas is the preferred key->value form for requesting quotas at creation, e.g.
// {"limits.cpu": {"value": 4}}. The backend does not return it on read (it is a create-time input),
// so the resource echoes the configured value from state.
RequestedQuotas map[string]RequestQuotaValue `json:"requestedQuotas" tfsdk:"requested_quotas"`
}
type MeshTenantStatus ¶
type MeshTenantStatus struct {
TenantName string `json:"tenantName" tfsdk:"tenant_name"`
PlatformTypeIdentifier string `json:"platformTypeIdentifier" tfsdk:"platform_type_identifier"`
PlatformWorkspaceId *string `json:"platformWorkspaceId" tfsdk:"platform_workspace_id"`
Tags map[string][]string `json:"tags" tfsdk:"tags"`
// AppliedQuotas are the effective quotas meshStack applied to the tenant as a key->value map, each
// value a structured object (e.g. `{"limits.cpu": {"value": 4}}`). spec.requested_quotas carries
// only the values requested at create (create-only); the effective quotas here can differ once
// landing-zone defaults are merged in or an operator adjusts them, so drift is tracked against these.
AppliedQuotas map[string]AppliedQuotaValue `json:"appliedQuotas" tfsdk:"applied_quotas"`
Lifecycle MeshTenantLifecycle `json:"lifecycle" tfsdk:"-"`
}
type MeshTenantTags ¶
type MeshWifProvider ¶
type MeshWifProvider struct {
Audience string `json:"audience" tfsdk:"audience"`
}
type MeshWorkloadIdentityFederation ¶
type MeshWorkloadIdentityFederation struct {
Issuer string `json:"issuer" tfsdk:"issuer"`
Subject string `json:"subject" tfsdk:"subject"`
Gcp *MeshWifProvider `json:"gcp" tfsdk:"gcp"`
Aws *MeshAwsWifProvider `json:"aws" tfsdk:"aws"`
Azure *MeshWifProvider `json:"azure" tfsdk:"azure"`
}
type MeshWorkspace ¶
type MeshWorkspace struct {
Metadata MeshWorkspaceMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshWorkspaceSpec `json:"spec" tfsdk:"spec"`
}
type MeshWorkspaceBinding ¶
type MeshWorkspaceBinding struct {
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"`
ExpiryDate *string `json:"expiryDate,omitzero" tfsdk:"expiry_date"`
}
type MeshWorkspaceBindingMetadata ¶
type MeshWorkspaceBindingMetadata struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshWorkspaceClient ¶
type MeshWorkspaceClient interface {
// List returns every workspace the credential can see. An unscoped user token reaches this and
// almost nothing else, which is why `meshstack auth login` prompts for a workspace from it.
List(ctx context.Context) ([]MeshWorkspace, error)
Read(ctx context.Context, name string) (*MeshWorkspace, error)
Create(ctx context.Context, workspace *MeshWorkspaceCreate) (*MeshWorkspace, error)
Update(ctx context.Context, name string, workspace *MeshWorkspaceCreate) (*MeshWorkspace, error)
Delete(ctx context.Context, name string) error
}
type MeshWorkspaceCreate ¶
type MeshWorkspaceCreate struct {
Metadata MeshWorkspaceCreateMetadata `json:"metadata" tfsdk:"metadata"`
Spec MeshWorkspaceSpec `json:"spec" tfsdk:"spec"`
}
type MeshWorkspaceGroupBinding ¶
type MeshWorkspaceGroupBinding struct {
MeshWorkspaceBinding
}
type MeshWorkspaceGroupBindingClient ¶
type MeshWorkspaceGroupBindingClient interface {
Read(ctx context.Context, name string) (*MeshWorkspaceGroupBinding, error)
Create(ctx context.Context, binding *MeshWorkspaceGroupBinding) (*MeshWorkspaceGroupBinding, error)
Delete(ctx context.Context, name string) error
}
type MeshWorkspaceMetadata ¶
type MeshWorkspaceRoleRef ¶
type MeshWorkspaceRoleRef struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshWorkspaceSpec ¶
type MeshWorkspaceSubject ¶
type MeshWorkspaceSubject struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshWorkspaceTargetRef ¶
type MeshWorkspaceTargetRef struct {
Name string `json:"name" tfsdk:"name"`
}
type MeshWorkspaceUserBinding ¶
type MeshWorkspaceUserBinding struct {
MeshWorkspaceBinding
}
type MeshWorkspaceUserBindingClient ¶
type MeshWorkspaceUserBindingClient interface {
Read(ctx context.Context, name string) (*MeshWorkspaceUserBinding, error)
Create(ctx context.Context, binding *MeshWorkspaceUserBinding) (*MeshWorkspaceUserBinding, error)
Delete(ctx context.Context, name string) error
}
type NamedRef ¶
type NamedRef struct {
Name string `json:"name" tfsdk:"name"`
Kind string `json:"kind" tfsdk:"kind"`
}
NamedRef is the client-side DTO for a meshObject reference that identifies its target by name. It is the counterpart to the meshRefByName schema builder in internal/provider (schema_utils.go): every {name, kind} reference block on the wire deserializes into this struct. Refs that carry extra fields embed it.
type OpenShiftMeteringConfig ¶
type OpenShiftMeteringConfig struct {
ClientConfig KubernetesClientConfig `json:"clientConfig" tfsdk:"client_config"`
Processing MeshPlatformMeteringProcessingConfig `json:"processing" tfsdk:"processing"`
}
type OpenShiftPlatformConfig ¶
type OpenShiftPlatformConfig struct {
BaseUrl string `json:"baseUrl" tfsdk:"base_url"`
DisableSslValidation bool `json:"disableSslValidation" tfsdk:"disable_ssl_validation"`
Replication *OpenShiftReplicationConfig `json:"replication" tfsdk:"replication"`
Metering *OpenShiftMeteringConfig `json:"metering,omitzero" tfsdk:"metering"`
}
type OpenShiftPlatformProperties ¶
type OpenShiftPlatformProperties struct {
}
type OpenShiftReplicationConfig ¶
type OpenShiftReplicationConfig struct {
ClientConfig KubernetesClientConfig `json:"clientConfig" tfsdk:"client_config"`
WebConsoleUrl *string `json:"webConsoleUrl,omitzero" tfsdk:"web_console_url"`
ProjectNamePattern string `json:"projectNamePattern" tfsdk:"project_name_pattern"`
OpenshiftRoleMappings types.Set[OpenShiftPlatformRoleMapping] `json:"openshiftRoleMappings" tfsdk:"openshift_role_mappings"`
IdentityProviderName string `json:"identityProviderName" tfsdk:"identity_provider_name"`
TenantTags *MeshTenantTags `json:"tenantTags,omitzero" tfsdk:"tenant_tags"`
}
type PlatformAvailability ¶
type PlatformConfig ¶
type PlatformConfig struct {
Type string `json:"type" tfsdk:"type"`
Custom *CustomPlatformConfig `json:"custom,omitzero" tfsdk:"custom"`
Aws *AwsPlatformConfig `json:"aws,omitzero" tfsdk:"aws"`
Aks *AksPlatformConfig `json:"aks,omitzero" tfsdk:"aks"`
Azure *AzurePlatformConfig `json:"azure,omitzero" tfsdk:"azure"`
AzureRg *AzureRgPlatformConfig `json:"azurerg,omitzero" tfsdk:"azurerg"`
Gcp *GcpPlatformConfig `json:"gcp,omitzero" tfsdk:"gcp"`
Kubernetes *KubernetesPlatformConfig `json:"kubernetes,omitzero" tfsdk:"kubernetes"`
OpenShift *OpenShiftPlatformConfig `json:"openshift,omitzero" tfsdk:"openshift"`
}
type QuotaDefinition ¶
type QuotaDefinition struct {
QuotaKey string `json:"quotaKey" tfsdk:"quota_key"`
MinValue int64 `json:"minValue" tfsdk:"min_value"`
MaxValue int64 `json:"maxValue" tfsdk:"max_value"`
Unit string `json:"unit" tfsdk:"unit"`
AutoApprovalThreshold int64 `json:"autoApprovalThreshold" tfsdk:"auto_approval_threshold"`
Description string `json:"description" tfsdk:"description"`
Label string `json:"label" tfsdk:"label"`
}
type RequestQuotaValue ¶
type RequestQuotaValue struct {
Value int64 `json:"value" tfsdk:"value"`
}
RequestQuotaValue is a tenant quota value as requested at create time. The scalar is wrapped in an object (rather than a bare number) so the v4 API can grow per-quota fields — e.g. a unit — without a breaking change to the requested_quotas map shape.
Its shape is identical to AppliedQuotaValue, deliberately so: the resource must echo the configured request in spec while reading effective values from status, and separate types turn mixing the two into a compile error rather than the requested-vs-applied conflation this map form fixes.
type TagValueEmail ¶
type TagValueInteger ¶
type TagValueInteger struct {
DefaultValue *int64 `json:"defaultValue,omitzero" tfsdk:"default_value"`
}
type TagValueMultiSelect ¶
type TagValueNumber ¶
type TagValueNumber struct {
DefaultValue *float64 `json:"defaultValue,omitzero" tfsdk:"default_value"`
}
type TagValueSingleSelect ¶
type TagValueString ¶
type TenantLifecycleState ¶
type TenantLifecycleState string
type UuidRef ¶
type UuidRef struct {
Uuid string `json:"uuid" tfsdk:"uuid"`
Kind string `json:"kind" tfsdk:"kind"`
}
UuidRef is the client-side DTO for a meshObject reference that identifies its target by uuid. It is the counterpart to the meshRefByUuid schema builder in internal/provider (schema_utils.go): every {uuid, kind} reference block on the wire deserializes into this struct. Refs that carry extra fields embed it.
Source Files
¶
- api_key.go
- api_key_permissions.go
- building_block_definition.go
- building_block_definition_version.go
- building_block_definition_version_implementation.go
- building_block_run.go
- building_block_runner.go
- building_block_v2.go
- buildingblock.go
- client.go
- client_kind.go
- integration.go
- integration_config.go
- landingzone.go
- list.go
- location.go
- mesh_info.go
- payment_method.go
- platform.go
- platform_config_aks.go
- platform_config_aws.go
- platform_config_azure.go
- platform_config_azurerg.go
- platform_config_custom.go
- platform_config_gcp.go
- platform_config_kubernetes.go
- platform_config_openshift.go
- platform_properties_aks.go
- platform_properties_aws.go
- platform_properties_azure.go
- platform_properties_azurerg.go
- platform_properties_custom.go
- platform_properties_gcp.go
- platform_properties_kubernetes.go
- platform_properties_openshift.go
- platform_type.go
- project.go
- project_binding.go
- project_group_binding.go
- project_user_binding.go
- refs.go
- service_instance.go
- tag_definition.go
- tenant_v4.go
- workspace.go
- workspace_binding.go
- workspace_group_binding.go
- workspace_user_binding.go