consul.getCatalogService
Explore with Pulumi AI
consul.Service provides details about a specific Consul service in a
given datacenter. The results include a list of nodes advertising the specified
service, the node’s IP address, port number, node ID, etc. By specifying a
different datacenter in the query_options it is possible to retrieve a list of
services from a different WAN-attached Consul datacenter.
This data source is different from the consul.getServices (plural) data
source, which provides a summary of the current Consul services.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as consul from "@pulumi/consul";
import * as example from "@pulumi/example";
import * as std from "@pulumi/std";
const read-consul-dc1 = consul.getService({
    name: "consul",
    datacenter: "dc1",
});
// Set the description to a whitespace delimited list of the node names
const app = new example.index.Resource("app", {description: std.join({
    separator: " ",
    input: nodes,
}).result});
import pulumi
import pulumi_consul as consul
import pulumi_example as example
import pulumi_std as std
read_consul_dc1 = consul.get_service(name="consul",
    datacenter="dc1")
# Set the description to a whitespace delimited list of the node names
app = example.index.Resource("app", description=std.join(separator= ,
    input=nodes).result)
package main
import (
	"github.com/pulumi/pulumi-consul/sdk/v3/go/consul"
	"github.com/pulumi/pulumi-example/sdk/go/example"
	"github.com/pulumi/pulumi-std/sdk/go/std"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := consul.LookupService(ctx, &consul.LookupServiceArgs{
			Name:       "consul",
			Datacenter: pulumi.StringRef("dc1"),
		}, nil)
		if err != nil {
			return err
		}
		// Set the description to a whitespace delimited list of the node names
		_, err = example.NewResource(ctx, "app", &example.ResourceArgs{
			Description: std.Join(ctx, &std.JoinArgs{
				Separator: " ",
				Input:     nodes,
			}, nil).Result,
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Consul = Pulumi.Consul;
using Example = Pulumi.Example;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() => 
{
    var read_consul_dc1 = Consul.GetService.Invoke(new()
    {
        Name = "consul",
        Datacenter = "dc1",
    });
    // Set the description to a whitespace delimited list of the node names
    var app = new Example.Index.Resource("app", new()
    {
        Description = Std.Join.Invoke(new()
        {
            Separator = " ",
            Input = nodes,
        }).Result,
    });
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.consul.ConsulFunctions;
import com.pulumi.consul.inputs.GetServiceArgs;
import com.pulumi.example.resource;
import com.pulumi.example.ResourceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }
    public static void stack(Context ctx) {
        final var read-consul-dc1 = ConsulFunctions.getService(GetServiceArgs.builder()
            .name("consul")
            .datacenter("dc1")
            .build());
        // Set the description to a whitespace delimited list of the node names
        var app = new Resource("app", ResourceArgs.builder()
            .description(StdFunctions.join(JoinArgs.builder()
                .separator(" ")
                .input(nodes)
                .build()).result())
            .build());
    }
}
resources:
  # Set the description to a whitespace delimited list of the node names
  app:
    type: example:resource
    properties:
      description:
        fn::invoke:
          Function: std:join
          Arguments:
            separator: ' '
            input: ${nodes}
          Return: result
variables:
  read-consul-dc1:
    fn::invoke:
      Function: consul:getService
      Arguments:
        name: consul
        datacenter: dc1
Using getCatalogService
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getCatalogService(args: GetCatalogServiceArgs, opts?: InvokeOptions): Promise<GetCatalogServiceResult>
function getCatalogServiceOutput(args: GetCatalogServiceOutputArgs, opts?: InvokeOptions): Output<GetCatalogServiceResult>def get_catalog_service(datacenter: Optional[str] = None,
                        filter: Optional[str] = None,
                        name: Optional[str] = None,
                        query_options: Optional[Sequence[GetCatalogServiceQueryOption]] = None,
                        tag: Optional[str] = None,
                        opts: Optional[InvokeOptions] = None) -> GetCatalogServiceResult
def get_catalog_service_output(datacenter: Optional[pulumi.Input[str]] = None,
                        filter: Optional[pulumi.Input[str]] = None,
                        name: Optional[pulumi.Input[str]] = None,
                        query_options: Optional[pulumi.Input[Sequence[pulumi.Input[GetCatalogServiceQueryOptionArgs]]]] = None,
                        tag: Optional[pulumi.Input[str]] = None,
                        opts: Optional[InvokeOptions] = None) -> Output[GetCatalogServiceResult]func GetCatalogService(ctx *Context, args *GetCatalogServiceArgs, opts ...InvokeOption) (*GetCatalogServiceResult, error)
func GetCatalogServiceOutput(ctx *Context, args *GetCatalogServiceOutputArgs, opts ...InvokeOption) GetCatalogServiceResultOutput> Note: This function is named GetCatalogService in the Go SDK.
public static class GetCatalogService 
{
    public static Task<GetCatalogServiceResult> InvokeAsync(GetCatalogServiceArgs args, InvokeOptions? opts = null)
    public static Output<GetCatalogServiceResult> Invoke(GetCatalogServiceInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetCatalogServiceResult> getCatalogService(GetCatalogServiceArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
  function: consul:index/getCatalogService:getCatalogService
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Name string
 - The service name to select.
 - Datacenter string
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - Filter string
 - Query
Options List<GetCatalog Service Query Option>  - See below.
 - Tag string
 - A single tag that can be used to filter the list of nodes to return based on a single matching tag..
 
- Name string
 - The service name to select.
 - Datacenter string
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - Filter string
 - Query
Options []GetCatalog Service Query Option  - See below.
 - Tag string
 - A single tag that can be used to filter the list of nodes to return based on a single matching tag..
 
- name String
 - The service name to select.
 - datacenter String
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - filter String
 - query
Options List<GetCatalog Service Query Option>  - See below.
 - tag String
 - A single tag that can be used to filter the list of nodes to return based on a single matching tag..
 
- name string
 - The service name to select.
 - datacenter string
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - filter string
 - query
Options GetCatalog Service Query Option[]  - See below.
 - tag string
 - A single tag that can be used to filter the list of nodes to return based on a single matching tag..
 
- name str
 - The service name to select.
 - datacenter str
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - filter str
 - query_
options Sequence[GetCatalog Service Query Option]  - See below.
 - tag str
 - A single tag that can be used to filter the list of nodes to return based on a single matching tag..
 
- name String
 - The service name to select.
 - datacenter String
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - filter String
 - query
Options List<Property Map> - See below.
 - tag String
 - A single tag that can be used to filter the list of nodes to return based on a single matching tag..
 
getCatalogService Result
The following output properties are available:
- Id string
 - The provider-assigned unique ID for this managed resource.
 - Name string
 - The name of the service
 - Services
List<Get
Catalog Service Service>  - A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
 - Datacenter string
 - The datacenter the keys are being read from to.
 - Filter string
 - Query
Options List<GetCatalog Service Query Option>  - Tag string
 - The name of the tag used to filter the list of nodes in 
service. 
- Id string
 - The provider-assigned unique ID for this managed resource.
 - Name string
 - The name of the service
 - Services
[]Get
Catalog Service Service  - A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
 - Datacenter string
 - The datacenter the keys are being read from to.
 - Filter string
 - Query
Options []GetCatalog Service Query Option  - Tag string
 - The name of the tag used to filter the list of nodes in 
service. 
- id String
 - The provider-assigned unique ID for this managed resource.
 - name String
 - The name of the service
 - services
List<Get
Catalog Service Service>  - A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
 - datacenter String
 - The datacenter the keys are being read from to.
 - filter String
 - query
Options List<GetCatalog Service Query Option>  - tag String
 - The name of the tag used to filter the list of nodes in 
service. 
- id string
 - The provider-assigned unique ID for this managed resource.
 - name string
 - The name of the service
 - services
Get
Catalog Service Service[]  - A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
 - datacenter string
 - The datacenter the keys are being read from to.
 - filter string
 - query
Options GetCatalog Service Query Option[]  - tag string
 - The name of the tag used to filter the list of nodes in 
service. 
- id str
 - The provider-assigned unique ID for this managed resource.
 - name str
 - The name of the service
 - services
Sequence[Get
Catalog Service Service]  - A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
 - datacenter str
 - The datacenter the keys are being read from to.
 - filter str
 - query_
options Sequence[GetCatalog Service Query Option]  - tag str
 - The name of the tag used to filter the list of nodes in 
service. 
- id String
 - The provider-assigned unique ID for this managed resource.
 - name String
 - The name of the service
 - services List<Property Map>
 - A list of nodes and details about each endpoint advertising a service. Each element in the list is a map of attributes that correspond to each individual node. The list of per-node attributes is detailed below.
 - datacenter String
 - The datacenter the keys are being read from to.
 - filter String
 - query
Options List<Property Map> - tag String
 - The name of the tag used to filter the list of nodes in 
service. 
Supporting Types
GetCatalogServiceQueryOption    
- Allow
Stale bool - When 
true, the default, allow responses from Consul servers that are followers. - Datacenter string
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - Namespace string
 - The namespace to lookup the service.
 - Near string
 - Node
Meta Dictionary<string, string> - Partition string
 - Require
Consistent bool - When 
trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse. - Token string
 - Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the 
consulprovider but may be overridden if necessary. - Wait
Index int - Index number used to enable blocking queries.
 - Wait
Time string - Max time the client should wait for a blocking query to return.
 
- Allow
Stale bool - When 
true, the default, allow responses from Consul servers that are followers. - Datacenter string
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - Namespace string
 - The namespace to lookup the service.
 - Near string
 - Node
Meta map[string]string - Partition string
 - Require
Consistent bool - When 
trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse. - Token string
 - Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the 
consulprovider but may be overridden if necessary. - Wait
Index int - Index number used to enable blocking queries.
 - Wait
Time string - Max time the client should wait for a blocking query to return.
 
- allow
Stale Boolean - When 
true, the default, allow responses from Consul servers that are followers. - datacenter String
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - namespace String
 - The namespace to lookup the service.
 - near String
 - node
Meta Map<String,String> - partition String
 - require
Consistent Boolean - When 
trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse. - token String
 - Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the 
consulprovider but may be overridden if necessary. - wait
Index Integer - Index number used to enable blocking queries.
 - wait
Time String - Max time the client should wait for a blocking query to return.
 
- allow
Stale boolean - When 
true, the default, allow responses from Consul servers that are followers. - datacenter string
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - namespace string
 - The namespace to lookup the service.
 - near string
 - node
Meta {[key: string]: string} - partition string
 - require
Consistent boolean - When 
trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse. - token string
 - Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the 
consulprovider but may be overridden if necessary. - wait
Index number - Index number used to enable blocking queries.
 - wait
Time string - Max time the client should wait for a blocking query to return.
 
- allow_
stale bool - When 
true, the default, allow responses from Consul servers that are followers. - datacenter str
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - namespace str
 - The namespace to lookup the service.
 - near str
 - node_
meta Mapping[str, str] - partition str
 - require_
consistent bool - When 
trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse. - token str
 - Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the 
consulprovider but may be overridden if necessary. - wait_
index int - Index number used to enable blocking queries.
 - wait_
time str - Max time the client should wait for a blocking query to return.
 
- allow
Stale Boolean - When 
true, the default, allow responses from Consul servers that are followers. - datacenter String
 - The Consul datacenter to query. Defaults to the
same value found in 
query_optionsparameter specified below, or if that is empty, thedatacentervalue found in the Consul agent that this provider is configured to talk to. - namespace String
 - The namespace to lookup the service.
 - near String
 - node
Meta Map<String> - partition String
 - require
Consistent Boolean - When 
trueforce the client to perform a read on at least quorum servers and verify the result is the same. Defaults tofalse. - token String
 - Specify the Consul ACL token to use when performing the
request. This defaults to the same API token configured by the 
consulprovider but may be overridden if necessary. - wait
Index Number - Index number used to enable blocking queries.
 - wait
Time String - Max time the client should wait for a blocking query to return.
 
GetCatalogServiceService   
- Address string
 - Create
Index string - Enable
Tag stringOverride  - Id string
 - Meta Dictionary<string, string>
 - Modify
Index string - Name string
 - The service name to select.
 - Node
Address string - Node
Id string - The Node ID of the Consul agent advertising the service.
node_meta- Node meta data tag information, if any.node_name- The name of the Consul node.address- The IP address of the service. If theServiceAddressin the Consul catalog is empty, this value is automatically populated with thenode_address(theAddressin the Consul Catalog).enable_tag_override- Whether service tags can be overridden on this service.id- A unique service instance identifier.name- The name of the service.port- Port number of the service.tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.tags- List of tags for the service.meta- Service meta data tag information, if any.
 - Node
Meta Dictionary<string, string> - Node
Name string - Port string
 - Tagged
Addresses Dictionary<string, string> - List<string>
 
- Address string
 - Create
Index string - Enable
Tag stringOverride  - Id string
 - Meta map[string]string
 - Modify
Index string - Name string
 - The service name to select.
 - Node
Address string - Node
Id string - The Node ID of the Consul agent advertising the service.
node_meta- Node meta data tag information, if any.node_name- The name of the Consul node.address- The IP address of the service. If theServiceAddressin the Consul catalog is empty, this value is automatically populated with thenode_address(theAddressin the Consul Catalog).enable_tag_override- Whether service tags can be overridden on this service.id- A unique service instance identifier.name- The name of the service.port- Port number of the service.tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.tags- List of tags for the service.meta- Service meta data tag information, if any.
 - Node
Meta map[string]string - Node
Name string - Port string
 - Tagged
Addresses map[string]string - []string
 
- address String
 - create
Index String - enable
Tag StringOverride  - id String
 - meta Map<String,String>
 - modify
Index String - name String
 - The service name to select.
 - node
Address String - node
Id String - The Node ID of the Consul agent advertising the service.
node_meta- Node meta data tag information, if any.node_name- The name of the Consul node.address- The IP address of the service. If theServiceAddressin the Consul catalog is empty, this value is automatically populated with thenode_address(theAddressin the Consul Catalog).enable_tag_override- Whether service tags can be overridden on this service.id- A unique service instance identifier.name- The name of the service.port- Port number of the service.tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.tags- List of tags for the service.meta- Service meta data tag information, if any.
 - node
Meta Map<String,String> - node
Name String - port String
 - tagged
Addresses Map<String,String> - List<String>
 
- address string
 - create
Index string - enable
Tag stringOverride  - id string
 - meta {[key: string]: string}
 - modify
Index string - name string
 - The service name to select.
 - node
Address string - node
Id string - The Node ID of the Consul agent advertising the service.
node_meta- Node meta data tag information, if any.node_name- The name of the Consul node.address- The IP address of the service. If theServiceAddressin the Consul catalog is empty, this value is automatically populated with thenode_address(theAddressin the Consul Catalog).enable_tag_override- Whether service tags can be overridden on this service.id- A unique service instance identifier.name- The name of the service.port- Port number of the service.tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.tags- List of tags for the service.meta- Service meta data tag information, if any.
 - node
Meta {[key: string]: string} - node
Name string - port string
 - tagged
Addresses {[key: string]: string} - string[]
 
- address str
 - create_
index str - enable_
tag_ stroverride  - id str
 - meta Mapping[str, str]
 - modify_
index str - name str
 - The service name to select.
 - node_
address str - node_
id str - The Node ID of the Consul agent advertising the service.
node_meta- Node meta data tag information, if any.node_name- The name of the Consul node.address- The IP address of the service. If theServiceAddressin the Consul catalog is empty, this value is automatically populated with thenode_address(theAddressin the Consul Catalog).enable_tag_override- Whether service tags can be overridden on this service.id- A unique service instance identifier.name- The name of the service.port- Port number of the service.tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.tags- List of tags for the service.meta- Service meta data tag information, if any.
 - node_
meta Mapping[str, str] - node_
name str - port str
 - tagged_
addresses Mapping[str, str] - Sequence[str]
 
- address String
 - create
Index String - enable
Tag StringOverride  - id String
 - meta Map<String>
 - modify
Index String - name String
 - The service name to select.
 - node
Address String - node
Id String - The Node ID of the Consul agent advertising the service.
node_meta- Node meta data tag information, if any.node_name- The name of the Consul node.address- The IP address of the service. If theServiceAddressin the Consul catalog is empty, this value is automatically populated with thenode_address(theAddressin the Consul Catalog).enable_tag_override- Whether service tags can be overridden on this service.id- A unique service instance identifier.name- The name of the service.port- Port number of the service.tagged_addresses- List of explicit LAN and WAN IP addresses for the agent.tags- List of tags for the service.meta- Service meta data tag information, if any.
 - node
Meta Map<String> - node
Name String - port String
 - tagged
Addresses Map<String> - List<String>
 
Package Details
- Repository
 - HashiCorp Consul pulumi/pulumi-consul
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
consulTerraform Provider.