resource/resolver/azapi_resource_id_resolver.go (33 lines of code) (raw):

package resolver import ( "strings" "github.com/azure/armstrong/dependency" "github.com/azure/armstrong/resource/types" "github.com/azure/armstrong/utils" ) var _ ReferenceResolver = &AzapiResourceIdResolver{} type AzapiResourceIdResolver struct { } func (r AzapiResourceIdResolver) Resolve(pattern dependency.Pattern) (*ResolvedResult, error) { if !strings.Contains(pattern.AzureResourceType, "/") { return nil, nil } return &ResolvedResult{ AzapiDefinitionToAdd: &types.AzapiDefinition{ Id: pattern.Placeholder, Kind: "data", ResourceName: "azapi_resource_id", BodyFormat: types.BodyFormatHcl, Label: pluralizeClient.Singular(utils.LastSegment(pattern.AzureResourceType)), AzureResourceType: pattern.AzureResourceType, ApiVersion: "2023-12-12", AdditionalFields: map[string]types.Value{ "parent_id": types.NewStringLiteralValue(utils.ParentIdOfResourceId(pattern.Placeholder)), "name": types.NewStringLiteralValue(utils.LastSegment(pattern.Placeholder)), }, }, }, nil } func NewAzapiResourceIdResolver() AzapiResourceIdResolver { return AzapiResourceIdResolver{} }