1. Packages
  2. AWS
  3. API Docs
  4. getServicePrincipal
AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

aws.getServicePrincipal

Explore with Pulumi AI

AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi

Use this data source to create a Service Principal Name for a service in a given region. Service Principal Names should always end in the standard global format: {servicename}.amazonaws.com. However, in some AWS partitions, AWS may expect a different format.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const current = aws.getServicePrincipal({
    serviceName: "s3",
});
const test = aws.getServicePrincipal({
    serviceName: "s3",
    region: "us-iso-east-1",
});
Copy
import pulumi
import pulumi_aws as aws

current = aws.get_service_principal(service_name="s3")
test = aws.get_service_principal(service_name="s3",
    region="us-iso-east-1")
Copy
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := aws.GetServicePrincipal(ctx, &aws.GetServicePrincipalArgs{
			ServiceName: "s3",
		}, nil)
		if err != nil {
			return err
		}
		_, err = aws.GetServicePrincipal(ctx, &aws.GetServicePrincipalArgs{
			ServiceName: "s3",
			Region:      pulumi.StringRef("us-iso-east-1"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() => 
{
    var current = Aws.GetServicePrincipal.Invoke(new()
    {
        ServiceName = "s3",
    });

    var test = Aws.GetServicePrincipal.Invoke(new()
    {
        ServiceName = "s3",
        Region = "us-iso-east-1",
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetServicePrincipalArgs;
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 current = AwsFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
            .serviceName("s3")
            .build());

        final var test = AwsFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
            .serviceName("s3")
            .region("us-iso-east-1")
            .build());

    }
}
Copy
variables:
  current:
    fn::invoke:
      function: aws:getServicePrincipal
      arguments:
        serviceName: s3
  test:
    fn::invoke:
      function: aws:getServicePrincipal
      arguments:
        serviceName: s3
        region: us-iso-east-1
Copy

Using getServicePrincipal

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 getServicePrincipal(args: GetServicePrincipalArgs, opts?: InvokeOptions): Promise<GetServicePrincipalResult>
function getServicePrincipalOutput(args: GetServicePrincipalOutputArgs, opts?: InvokeOptions): Output<GetServicePrincipalResult>
Copy
def get_service_principal(region: Optional[str] = None,
                          service_name: Optional[str] = None,
                          opts: Optional[InvokeOptions] = None) -> GetServicePrincipalResult
def get_service_principal_output(region: Optional[pulumi.Input[str]] = None,
                          service_name: Optional[pulumi.Input[str]] = None,
                          opts: Optional[InvokeOptions] = None) -> Output[GetServicePrincipalResult]
Copy
func GetServicePrincipal(ctx *Context, args *GetServicePrincipalArgs, opts ...InvokeOption) (*GetServicePrincipalResult, error)
func GetServicePrincipalOutput(ctx *Context, args *GetServicePrincipalOutputArgs, opts ...InvokeOption) GetServicePrincipalResultOutput
Copy

> Note: This function is named GetServicePrincipal in the Go SDK.

public static class GetServicePrincipal 
{
    public static Task<GetServicePrincipalResult> InvokeAsync(GetServicePrincipalArgs args, InvokeOptions? opts = null)
    public static Output<GetServicePrincipalResult> Invoke(GetServicePrincipalInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetServicePrincipalResult> getServicePrincipal(GetServicePrincipalArgs args, InvokeOptions options)
public static Output<GetServicePrincipalResult> getServicePrincipal(GetServicePrincipalArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: aws:index/getServicePrincipal:getServicePrincipal
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

ServiceName This property is required. string
Name of the service you want to generate a Service Principal Name for.
Region string
Region you'd like the SPN for. By default, uses the current region.
ServiceName This property is required. string
Name of the service you want to generate a Service Principal Name for.
Region string
Region you'd like the SPN for. By default, uses the current region.
serviceName This property is required. String
Name of the service you want to generate a Service Principal Name for.
region String
Region you'd like the SPN for. By default, uses the current region.
serviceName This property is required. string
Name of the service you want to generate a Service Principal Name for.
region string
Region you'd like the SPN for. By default, uses the current region.
service_name This property is required. str
Name of the service you want to generate a Service Principal Name for.
region str
Region you'd like the SPN for. By default, uses the current region.
serviceName This property is required. String
Name of the service you want to generate a Service Principal Name for.
region String
Region you'd like the SPN for. By default, uses the current region.

getServicePrincipal Result

The following output properties are available:

Id string
Identifier of the current Service Principal (compound of service, region and suffix). (e.g. logs.us-east-1.amazonaws.comin AWS Commercial, logs.cn-north-1.amazonaws.com.cn in AWS China).
Name string
Service Principal Name (e.g., logs.amazonaws.com in AWS Commercial, logs.amazonaws.com.cn in AWS China).
Region string
Region identifier of the generated SPN (e.g., us-east-1 in AWS Commercial, cn-north-1 in AWS China).
ServiceName string
Suffix string
Suffix of the SPN (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China).
Id string
Identifier of the current Service Principal (compound of service, region and suffix). (e.g. logs.us-east-1.amazonaws.comin AWS Commercial, logs.cn-north-1.amazonaws.com.cn in AWS China).
Name string
Service Principal Name (e.g., logs.amazonaws.com in AWS Commercial, logs.amazonaws.com.cn in AWS China).
Region string
Region identifier of the generated SPN (e.g., us-east-1 in AWS Commercial, cn-north-1 in AWS China).
ServiceName string
Suffix string
Suffix of the SPN (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China).
id String
Identifier of the current Service Principal (compound of service, region and suffix). (e.g. logs.us-east-1.amazonaws.comin AWS Commercial, logs.cn-north-1.amazonaws.com.cn in AWS China).
name String
Service Principal Name (e.g., logs.amazonaws.com in AWS Commercial, logs.amazonaws.com.cn in AWS China).
region String
Region identifier of the generated SPN (e.g., us-east-1 in AWS Commercial, cn-north-1 in AWS China).
serviceName String
suffix String
Suffix of the SPN (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China).
id string
Identifier of the current Service Principal (compound of service, region and suffix). (e.g. logs.us-east-1.amazonaws.comin AWS Commercial, logs.cn-north-1.amazonaws.com.cn in AWS China).
name string
Service Principal Name (e.g., logs.amazonaws.com in AWS Commercial, logs.amazonaws.com.cn in AWS China).
region string
Region identifier of the generated SPN (e.g., us-east-1 in AWS Commercial, cn-north-1 in AWS China).
serviceName string
suffix string
Suffix of the SPN (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China).
id str
Identifier of the current Service Principal (compound of service, region and suffix). (e.g. logs.us-east-1.amazonaws.comin AWS Commercial, logs.cn-north-1.amazonaws.com.cn in AWS China).
name str
Service Principal Name (e.g., logs.amazonaws.com in AWS Commercial, logs.amazonaws.com.cn in AWS China).
region str
Region identifier of the generated SPN (e.g., us-east-1 in AWS Commercial, cn-north-1 in AWS China).
service_name str
suffix str
Suffix of the SPN (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China).
id String
Identifier of the current Service Principal (compound of service, region and suffix). (e.g. logs.us-east-1.amazonaws.comin AWS Commercial, logs.cn-north-1.amazonaws.com.cn in AWS China).
name String
Service Principal Name (e.g., logs.amazonaws.com in AWS Commercial, logs.amazonaws.com.cn in AWS China).
region String
Region identifier of the generated SPN (e.g., us-east-1 in AWS Commercial, cn-north-1 in AWS China).
serviceName String
suffix String
Suffix of the SPN (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China).

Package Details

Repository
AWS Classic pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.
AWS v6.76.0 published on Tuesday, Apr 8, 2025 by Pulumi