ec/ecdatasource/privatelinkdatasource/azure_datasource.go (44 lines of code) (raw):

// Licensed to Elasticsearch B.V. under one or more contributor // license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright // ownership. Elasticsearch B.V. licenses this file to you under // the Apache License, Version 2.0 (the "License"); you may // not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package privatelinkdatasource import ( "context" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" ) func AzureDataSource() datasource.DataSource { return &azureDataSource{ privateLinkDataSource: privateLinkDataSource[v0AzureModel]{ csp: "azure", privateLinkName: "privatelink", }, } } type azureDataSource struct { privateLinkDataSource[v0AzureModel] } func (d *azureDataSource) Schema(ctx context.Context, req datasource.SchemaRequest, resp *datasource.SchemaResponse) { resp.Schema = schema.Schema{ Description: "Use this data source to retrieve information about the Azure Private Link configuration for a given region. Further documentation on how to establish a PrivateLink connection can be found in the ESS [documentation](https://www.elastic.co/guide/en/cloud/current/ec-traffic-filtering-vnet.html).", Attributes: map[string]schema.Attribute{ "region": schema.StringAttribute{ Description: "Region to retrieve the Private Link configuration for.", Required: true, }, // Computed "service_alias": schema.StringAttribute{ Description: "The service alias to establish a connection to.", Computed: true, }, "domain_name": schema.StringAttribute{ Description: "The domain name to used in when configuring a private hosted zone in the VNet connection.", Computed: true, }, }, } } type v0AzureModel struct { RegionField string `tfsdk:"region"` ServiceAlias *string `tfsdk:"service_alias"` DomainName *string `tfsdk:"domain_name"` } func (m v0AzureModel) Region() string { return m.RegionField }