1. Packages
  2. Strata Cloud Manager Provider
  3. API Docs
  4. getServiceConnectionGroup
Strata Cloud Manager v0.4.3 published on Saturday, Nov 8, 2025 by Pulumi
scm logo
Strata Cloud Manager v0.4.3 published on Saturday, Nov 8, 2025 by Pulumi

    ServiceConnectionGroup data source

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as scm from "@pulumi/scm";
    
    const config = new pulumi.Config();
    // The folder scope for the SCM resource (e.g., 'Shared', 'Predefined', or a specific folder name).
    const folderScope = config.get("folderScope") || "Service Connections";
    //# 1. IKE Crypto Profile (IKE Phase 1)
    const example = new scm.IkeCryptoProfile("example", {
        name: "example-ike-crypto_sc_grp",
        folder: folderScope,
        hashes: ["sha256"],
        dhGroups: ["group14"],
        encryptions: ["aes-256-cbc"],
    });
    //# 2. IPsec Crypto Profile (IKE Phase 2)
    const exampleIpsecCryptoProfile = new scm.IpsecCryptoProfile("example", {
        name: "panw-IPSec-Crypto_sc_grp",
        folder: folderScope,
        esp: {
            encryptions: ["aes-256-gcm"],
            authentications: ["sha256"],
        },
        dhGroup: "group14",
        lifetime: {
            hours: 8,
        },
    });
    //# 3. IKE Gateway
    const exampleIkeGateway = new scm.IkeGateway("example", {
        name: "example-gateway_sc_grp",
        folder: folderScope,
        peerAddress: {
            ip: "1.1.1.1",
        },
        authentication: {
            preSharedKey: {
                key: "secret",
            },
        },
        protocol: {
            ikev1: {
                ikeCryptoProfile: example.name,
            },
        },
    });
    //# 4. IPsec Tunnel
    const exampleIpsecTunnel = new scm.IpsecTunnel("example", {
        name: "example-tunnel_sc_grp",
        folder: folderScope,
        tunnelInterface: "tunnel",
        antiReplay: true,
        copyTos: false,
        enableGreEncapsulation: false,
        autoKey: {
            ikeGateways: [{
                name: exampleIkeGateway.name,
            }],
            ipsecCryptoProfile: exampleIpsecCryptoProfile.name,
        },
    }, {
        dependsOn: [exampleIkeGateway],
    });
    //# 5. Service Connection (The target for the group)
    const siteAVpnSc = new scm.ServiceConnection("site_a_vpn_sc", {
        name: "creating_a_service_connection_sc_grp",
        region: "us-west-1a",
        ipsecTunnel: exampleIpsecTunnel.name,
        subnets: [
            "10.1.0.0/16",
            "172.16.0.0/24",
        ],
        sourceNat: false,
    });
    //# 5. Service Connection (The target for the group)
    const siteAVpnSc2 = new scm.ServiceConnection("site_a_vpn_sc_2", {
        name: "creating_a_service_connection_sc_grp_2",
        region: "us-west-1a",
        ipsecTunnel: exampleIpsecTunnel.name,
        subnets: [
            "10.1.0.0/16",
            "172.16.0.0/24",
        ],
        sourceNat: false,
    });
    //# 6. Service Connection Group (Groups the Service Connection created above)
    const exampleGroup = new scm.ServiceConnectionGroup("example_group", {
        name: "service-connection-group-app_sc_grp",
        targets: [
            siteAVpnSc.name,
            siteAVpnSc2.name,
        ],
        disableSnat: false,
        pbfOnly: true,
    });
    // ------------------------------------------------------------------
    // Data Source: SCM Service Connection Group (Single Lookup)
    // ------------------------------------------------------------------
    const groupLookup = scm.getServiceConnectionGroupOutput({
        id: exampleGroup.id,
    });
    export const lookedUpServiceConnectionGroupDetails = groupLookup;
    
    import pulumi
    import pulumi_scm as scm
    
    config = pulumi.Config()
    # The folder scope for the SCM resource (e.g., 'Shared', 'Predefined', or a specific folder name).
    folder_scope = config.get("folderScope")
    if folder_scope is None:
        folder_scope = "Service Connections"
    ## 1. IKE Crypto Profile (IKE Phase 1)
    example = scm.IkeCryptoProfile("example",
        name="example-ike-crypto_sc_grp",
        folder=folder_scope,
        hashes=["sha256"],
        dh_groups=["group14"],
        encryptions=["aes-256-cbc"])
    ## 2. IPsec Crypto Profile (IKE Phase 2)
    example_ipsec_crypto_profile = scm.IpsecCryptoProfile("example",
        name="panw-IPSec-Crypto_sc_grp",
        folder=folder_scope,
        esp={
            "encryptions": ["aes-256-gcm"],
            "authentications": ["sha256"],
        },
        dh_group="group14",
        lifetime={
            "hours": 8,
        })
    ## 3. IKE Gateway
    example_ike_gateway = scm.IkeGateway("example",
        name="example-gateway_sc_grp",
        folder=folder_scope,
        peer_address={
            "ip": "1.1.1.1",
        },
        authentication={
            "pre_shared_key": {
                "key": "secret",
            },
        },
        protocol={
            "ikev1": {
                "ike_crypto_profile": example.name,
            },
        })
    ## 4. IPsec Tunnel
    example_ipsec_tunnel = scm.IpsecTunnel("example",
        name="example-tunnel_sc_grp",
        folder=folder_scope,
        tunnel_interface="tunnel",
        anti_replay=True,
        copy_tos=False,
        enable_gre_encapsulation=False,
        auto_key={
            "ike_gateways": [{
                "name": example_ike_gateway.name,
            }],
            "ipsec_crypto_profile": example_ipsec_crypto_profile.name,
        },
        opts = pulumi.ResourceOptions(depends_on=[example_ike_gateway]))
    ## 5. Service Connection (The target for the group)
    site_a_vpn_sc = scm.ServiceConnection("site_a_vpn_sc",
        name="creating_a_service_connection_sc_grp",
        region="us-west-1a",
        ipsec_tunnel=example_ipsec_tunnel.name,
        subnets=[
            "10.1.0.0/16",
            "172.16.0.0/24",
        ],
        source_nat=False)
    ## 5. Service Connection (The target for the group)
    site_a_vpn_sc2 = scm.ServiceConnection("site_a_vpn_sc_2",
        name="creating_a_service_connection_sc_grp_2",
        region="us-west-1a",
        ipsec_tunnel=example_ipsec_tunnel.name,
        subnets=[
            "10.1.0.0/16",
            "172.16.0.0/24",
        ],
        source_nat=False)
    ## 6. Service Connection Group (Groups the Service Connection created above)
    example_group = scm.ServiceConnectionGroup("example_group",
        name="service-connection-group-app_sc_grp",
        targets=[
            site_a_vpn_sc.name,
            site_a_vpn_sc2.name,
        ],
        disable_snat=False,
        pbf_only=True)
    # ------------------------------------------------------------------
    # Data Source: SCM Service Connection Group (Single Lookup)
    # ------------------------------------------------------------------
    group_lookup = scm.get_service_connection_group_output(id=example_group.id)
    pulumi.export("lookedUpServiceConnectionGroupDetails", group_lookup)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-scm/sdk/go/scm"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		// The folder scope for the SCM resource (e.g., 'Shared', 'Predefined', or a specific folder name).
    		folderScope := "Service Connections"
    		if param := cfg.Get("folderScope"); param != "" {
    			folderScope = param
    		}
    		// # 1. IKE Crypto Profile (IKE Phase 1)
    		example, err := scm.NewIkeCryptoProfile(ctx, "example", &scm.IkeCryptoProfileArgs{
    			Name:   pulumi.String("example-ike-crypto_sc_grp"),
    			Folder: pulumi.String(folderScope),
    			Hashes: pulumi.StringArray{
    				pulumi.String("sha256"),
    			},
    			DhGroups: pulumi.StringArray{
    				pulumi.String("group14"),
    			},
    			Encryptions: pulumi.StringArray{
    				pulumi.String("aes-256-cbc"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # 2. IPsec Crypto Profile (IKE Phase 2)
    		exampleIpsecCryptoProfile, err := scm.NewIpsecCryptoProfile(ctx, "example", &scm.IpsecCryptoProfileArgs{
    			Name:   pulumi.String("panw-IPSec-Crypto_sc_grp"),
    			Folder: pulumi.String(folderScope),
    			Esp: &scm.IpsecCryptoProfileEspArgs{
    				Encryptions: pulumi.StringArray{
    					pulumi.String("aes-256-gcm"),
    				},
    				Authentications: pulumi.StringArray{
    					pulumi.String("sha256"),
    				},
    			},
    			DhGroup: pulumi.String("group14"),
    			Lifetime: &scm.IpsecCryptoProfileLifetimeArgs{
    				Hours: pulumi.Int(8),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # 3. IKE Gateway
    		exampleIkeGateway, err := scm.NewIkeGateway(ctx, "example", &scm.IkeGatewayArgs{
    			Name:   pulumi.String("example-gateway_sc_grp"),
    			Folder: pulumi.String(folderScope),
    			PeerAddress: &scm.IkeGatewayPeerAddressArgs{
    				Ip: pulumi.String("1.1.1.1"),
    			},
    			Authentication: &scm.IkeGatewayAuthenticationArgs{
    				PreSharedKey: &scm.IkeGatewayAuthenticationPreSharedKeyArgs{
    					Key: pulumi.String("secret"),
    				},
    			},
    			Protocol: &scm.IkeGatewayProtocolArgs{
    				Ikev1: &scm.IkeGatewayProtocolIkev1Args{
    					IkeCryptoProfile: example.Name,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// # 4. IPsec Tunnel
    		exampleIpsecTunnel, err := scm.NewIpsecTunnel(ctx, "example", &scm.IpsecTunnelArgs{
    			Name:                   pulumi.String("example-tunnel_sc_grp"),
    			Folder:                 pulumi.String(folderScope),
    			TunnelInterface:        pulumi.String("tunnel"),
    			AntiReplay:             pulumi.Bool(true),
    			CopyTos:                pulumi.Bool(false),
    			EnableGreEncapsulation: pulumi.Bool(false),
    			AutoKey: &scm.IpsecTunnelAutoKeyArgs{
    				IkeGateways: scm.IpsecTunnelAutoKeyIkeGatewayArray{
    					&scm.IpsecTunnelAutoKeyIkeGatewayArgs{
    						Name: exampleIkeGateway.Name,
    					},
    				},
    				IpsecCryptoProfile: exampleIpsecCryptoProfile.Name,
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			exampleIkeGateway,
    		}))
    		if err != nil {
    			return err
    		}
    		// # 5. Service Connection (The target for the group)
    		siteAVpnSc, err := scm.NewServiceConnection(ctx, "site_a_vpn_sc", &scm.ServiceConnectionArgs{
    			Name:        pulumi.String("creating_a_service_connection_sc_grp"),
    			Region:      pulumi.String("us-west-1a"),
    			IpsecTunnel: exampleIpsecTunnel.Name,
    			Subnets: pulumi.StringArray{
    				pulumi.String("10.1.0.0/16"),
    				pulumi.String("172.16.0.0/24"),
    			},
    			SourceNat: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		// # 5. Service Connection (The target for the group)
    		siteAVpnSc2, err := scm.NewServiceConnection(ctx, "site_a_vpn_sc_2", &scm.ServiceConnectionArgs{
    			Name:        pulumi.String("creating_a_service_connection_sc_grp_2"),
    			Region:      pulumi.String("us-west-1a"),
    			IpsecTunnel: exampleIpsecTunnel.Name,
    			Subnets: pulumi.StringArray{
    				pulumi.String("10.1.0.0/16"),
    				pulumi.String("172.16.0.0/24"),
    			},
    			SourceNat: pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		// # 6. Service Connection Group (Groups the Service Connection created above)
    		exampleGroup, err := scm.NewServiceConnectionGroup(ctx, "example_group", &scm.ServiceConnectionGroupArgs{
    			Name: pulumi.String("service-connection-group-app_sc_grp"),
    			Targets: pulumi.StringArray{
    				siteAVpnSc.Name,
    				siteAVpnSc2.Name,
    			},
    			DisableSnat: pulumi.Bool(false),
    			PbfOnly:     pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		// ------------------------------------------------------------------
    		// Data Source: SCM Service Connection Group (Single Lookup)
    		// ------------------------------------------------------------------
    		groupLookup := scm.LookupServiceConnectionGroupOutput(ctx, scm.GetServiceConnectionGroupOutputArgs{
    			Id: exampleGroup.ID(),
    		}, nil)
    		ctx.Export("lookedUpServiceConnectionGroupDetails", groupLookup)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scm = Pulumi.Scm;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        // The folder scope for the SCM resource (e.g., 'Shared', 'Predefined', or a specific folder name).
        var folderScope = config.Get("folderScope") ?? "Service Connections";
        //# 1. IKE Crypto Profile (IKE Phase 1)
        var example = new Scm.IkeCryptoProfile("example", new()
        {
            Name = "example-ike-crypto_sc_grp",
            Folder = folderScope,
            Hashes = new[]
            {
                "sha256",
            },
            DhGroups = new[]
            {
                "group14",
            },
            Encryptions = new[]
            {
                "aes-256-cbc",
            },
        });
    
        //# 2. IPsec Crypto Profile (IKE Phase 2)
        var exampleIpsecCryptoProfile = new Scm.IpsecCryptoProfile("example", new()
        {
            Name = "panw-IPSec-Crypto_sc_grp",
            Folder = folderScope,
            Esp = new Scm.Inputs.IpsecCryptoProfileEspArgs
            {
                Encryptions = new[]
                {
                    "aes-256-gcm",
                },
                Authentications = new[]
                {
                    "sha256",
                },
            },
            DhGroup = "group14",
            Lifetime = new Scm.Inputs.IpsecCryptoProfileLifetimeArgs
            {
                Hours = 8,
            },
        });
    
        //# 3. IKE Gateway
        var exampleIkeGateway = new Scm.IkeGateway("example", new()
        {
            Name = "example-gateway_sc_grp",
            Folder = folderScope,
            PeerAddress = new Scm.Inputs.IkeGatewayPeerAddressArgs
            {
                Ip = "1.1.1.1",
            },
            Authentication = new Scm.Inputs.IkeGatewayAuthenticationArgs
            {
                PreSharedKey = new Scm.Inputs.IkeGatewayAuthenticationPreSharedKeyArgs
                {
                    Key = "secret",
                },
            },
            Protocol = new Scm.Inputs.IkeGatewayProtocolArgs
            {
                Ikev1 = new Scm.Inputs.IkeGatewayProtocolIkev1Args
                {
                    IkeCryptoProfile = example.Name,
                },
            },
        });
    
        //# 4. IPsec Tunnel
        var exampleIpsecTunnel = new Scm.IpsecTunnel("example", new()
        {
            Name = "example-tunnel_sc_grp",
            Folder = folderScope,
            TunnelInterface = "tunnel",
            AntiReplay = true,
            CopyTos = false,
            EnableGreEncapsulation = false,
            AutoKey = new Scm.Inputs.IpsecTunnelAutoKeyArgs
            {
                IkeGateways = new[]
                {
                    new Scm.Inputs.IpsecTunnelAutoKeyIkeGatewayArgs
                    {
                        Name = exampleIkeGateway.Name,
                    },
                },
                IpsecCryptoProfile = exampleIpsecCryptoProfile.Name,
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                exampleIkeGateway,
            },
        });
    
        //# 5. Service Connection (The target for the group)
        var siteAVpnSc = new Scm.ServiceConnection("site_a_vpn_sc", new()
        {
            Name = "creating_a_service_connection_sc_grp",
            Region = "us-west-1a",
            IpsecTunnel = exampleIpsecTunnel.Name,
            Subnets = new[]
            {
                "10.1.0.0/16",
                "172.16.0.0/24",
            },
            SourceNat = false,
        });
    
        //# 5. Service Connection (The target for the group)
        var siteAVpnSc2 = new Scm.ServiceConnection("site_a_vpn_sc_2", new()
        {
            Name = "creating_a_service_connection_sc_grp_2",
            Region = "us-west-1a",
            IpsecTunnel = exampleIpsecTunnel.Name,
            Subnets = new[]
            {
                "10.1.0.0/16",
                "172.16.0.0/24",
            },
            SourceNat = false,
        });
    
        //# 6. Service Connection Group (Groups the Service Connection created above)
        var exampleGroup = new Scm.ServiceConnectionGroup("example_group", new()
        {
            Name = "service-connection-group-app_sc_grp",
            Targets = new[]
            {
                siteAVpnSc.Name,
                siteAVpnSc2.Name,
            },
            DisableSnat = false,
            PbfOnly = true,
        });
    
        // ------------------------------------------------------------------
        // Data Source: SCM Service Connection Group (Single Lookup)
        // ------------------------------------------------------------------
        var groupLookup = Scm.GetServiceConnectionGroup.Invoke(new()
        {
            Id = exampleGroup.Id,
        });
    
        return new Dictionary<string, object?>
        {
            ["lookedUpServiceConnectionGroupDetails"] = groupLookup,
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scm.IkeCryptoProfile;
    import com.pulumi.scm.IkeCryptoProfileArgs;
    import com.pulumi.scm.IpsecCryptoProfile;
    import com.pulumi.scm.IpsecCryptoProfileArgs;
    import com.pulumi.scm.inputs.IpsecCryptoProfileEspArgs;
    import com.pulumi.scm.inputs.IpsecCryptoProfileLifetimeArgs;
    import com.pulumi.scm.IkeGateway;
    import com.pulumi.scm.IkeGatewayArgs;
    import com.pulumi.scm.inputs.IkeGatewayPeerAddressArgs;
    import com.pulumi.scm.inputs.IkeGatewayAuthenticationArgs;
    import com.pulumi.scm.inputs.IkeGatewayAuthenticationPreSharedKeyArgs;
    import com.pulumi.scm.inputs.IkeGatewayProtocolArgs;
    import com.pulumi.scm.inputs.IkeGatewayProtocolIkev1Args;
    import com.pulumi.scm.IpsecTunnel;
    import com.pulumi.scm.IpsecTunnelArgs;
    import com.pulumi.scm.inputs.IpsecTunnelAutoKeyArgs;
    import com.pulumi.scm.ServiceConnection;
    import com.pulumi.scm.ServiceConnectionArgs;
    import com.pulumi.scm.ServiceConnectionGroup;
    import com.pulumi.scm.ServiceConnectionGroupArgs;
    import com.pulumi.scm.ScmFunctions;
    import com.pulumi.scm.inputs.GetServiceConnectionGroupArgs;
    import com.pulumi.resources.CustomResourceOptions;
    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 config = ctx.config();
            final var folderScope = config.get("folderScope").orElse("Service Connections");
            //# 1. IKE Crypto Profile (IKE Phase 1)
            var example = new IkeCryptoProfile("example", IkeCryptoProfileArgs.builder()
                .name("example-ike-crypto_sc_grp")
                .folder(folderScope)
                .hashes("sha256")
                .dhGroups("group14")
                .encryptions("aes-256-cbc")
                .build());
    
            //# 2. IPsec Crypto Profile (IKE Phase 2)
            var exampleIpsecCryptoProfile = new IpsecCryptoProfile("exampleIpsecCryptoProfile", IpsecCryptoProfileArgs.builder()
                .name("panw-IPSec-Crypto_sc_grp")
                .folder(folderScope)
                .esp(IpsecCryptoProfileEspArgs.builder()
                    .encryptions("aes-256-gcm")
                    .authentications("sha256")
                    .build())
                .dhGroup("group14")
                .lifetime(IpsecCryptoProfileLifetimeArgs.builder()
                    .hours(8)
                    .build())
                .build());
    
            //# 3. IKE Gateway
            var exampleIkeGateway = new IkeGateway("exampleIkeGateway", IkeGatewayArgs.builder()
                .name("example-gateway_sc_grp")
                .folder(folderScope)
                .peerAddress(IkeGatewayPeerAddressArgs.builder()
                    .ip("1.1.1.1")
                    .build())
                .authentication(IkeGatewayAuthenticationArgs.builder()
                    .preSharedKey(IkeGatewayAuthenticationPreSharedKeyArgs.builder()
                        .key("secret")
                        .build())
                    .build())
                .protocol(IkeGatewayProtocolArgs.builder()
                    .ikev1(IkeGatewayProtocolIkev1Args.builder()
                        .ikeCryptoProfile(example.name())
                        .build())
                    .build())
                .build());
    
            //# 4. IPsec Tunnel
            var exampleIpsecTunnel = new IpsecTunnel("exampleIpsecTunnel", IpsecTunnelArgs.builder()
                .name("example-tunnel_sc_grp")
                .folder(folderScope)
                .tunnelInterface("tunnel")
                .antiReplay(true)
                .copyTos(false)
                .enableGreEncapsulation(false)
                .autoKey(IpsecTunnelAutoKeyArgs.builder()
                    .ikeGateways(IpsecTunnelAutoKeyIkeGatewayArgs.builder()
                        .name(exampleIkeGateway.name())
                        .build())
                    .ipsecCryptoProfile(exampleIpsecCryptoProfile.name())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(exampleIkeGateway)
                    .build());
    
            //# 5. Service Connection (The target for the group)
            var siteAVpnSc = new ServiceConnection("siteAVpnSc", ServiceConnectionArgs.builder()
                .name("creating_a_service_connection_sc_grp")
                .region("us-west-1a")
                .ipsecTunnel(exampleIpsecTunnel.name())
                .subnets(            
                    "10.1.0.0/16",
                    "172.16.0.0/24")
                .sourceNat(false)
                .build());
    
            //# 5. Service Connection (The target for the group)
            var siteAVpnSc2 = new ServiceConnection("siteAVpnSc2", ServiceConnectionArgs.builder()
                .name("creating_a_service_connection_sc_grp_2")
                .region("us-west-1a")
                .ipsecTunnel(exampleIpsecTunnel.name())
                .subnets(            
                    "10.1.0.0/16",
                    "172.16.0.0/24")
                .sourceNat(false)
                .build());
    
            //# 6. Service Connection Group (Groups the Service Connection created above)
            var exampleGroup = new ServiceConnectionGroup("exampleGroup", ServiceConnectionGroupArgs.builder()
                .name("service-connection-group-app_sc_grp")
                .targets(            
                    siteAVpnSc.name(),
                    siteAVpnSc2.name())
                .disableSnat(false)
                .pbfOnly(true)
                .build());
    
            // ------------------------------------------------------------------
            // Data Source: SCM Service Connection Group (Single Lookup)
            // ------------------------------------------------------------------
            final var groupLookup = ScmFunctions.getServiceConnectionGroup(GetServiceConnectionGroupArgs.builder()
                .id(exampleGroup.id())
                .build());
    
            ctx.export("lookedUpServiceConnectionGroupDetails", groupLookup);
        }
    }
    
    configuration:
      folderScope:
        type: string
        default: Service Connections
    resources:
      ## 1. IKE Crypto Profile (IKE Phase 1)
      example:
        type: scm:IkeCryptoProfile
        properties:
          name: example-ike-crypto_sc_grp
          folder: ${folderScope}
          hashes:
            - sha256
          dhGroups:
            - group14
          encryptions:
            - aes-256-cbc
      ## 2. IPsec Crypto Profile (IKE Phase 2)
      exampleIpsecCryptoProfile:
        type: scm:IpsecCryptoProfile
        name: example
        properties:
          name: panw-IPSec-Crypto_sc_grp
          folder: ${folderScope}
          esp:
            encryptions:
              - aes-256-gcm
            authentications:
              - sha256
          dhGroup: group14
          lifetime:
            hours: 8
      ## 3. IKE Gateway
      exampleIkeGateway:
        type: scm:IkeGateway
        name: example
        properties:
          name: example-gateway_sc_grp
          folder: ${folderScope}
          peerAddress:
            ip: 1.1.1.1
          authentication:
            preSharedKey:
              key: secret
          protocol:
            ikev1:
              ikeCryptoProfile: ${example.name}
      ## 4. IPsec Tunnel
      exampleIpsecTunnel:
        type: scm:IpsecTunnel
        name: example
        properties:
          name: example-tunnel_sc_grp
          folder: ${folderScope}
          tunnelInterface: tunnel
          antiReplay: true
          copyTos: false
          enableGreEncapsulation: false
          autoKey:
            ikeGateways:
              - name: ${exampleIkeGateway.name}
            ipsecCryptoProfile: ${exampleIpsecCryptoProfile.name}
        options:
          dependsOn:
            - ${exampleIkeGateway}
      ## 5. Service Connection (The target for the group)
      siteAVpnSc:
        type: scm:ServiceConnection
        name: site_a_vpn_sc
        properties:
          name: creating_a_service_connection_sc_grp
          region: us-west-1a
          ipsecTunnel: ${exampleIpsecTunnel.name}
          subnets:
            - 10.1.0.0/16
            - 172.16.0.0/24
          sourceNat: false
      ## 5. Service Connection (The target for the group)
      siteAVpnSc2:
        type: scm:ServiceConnection
        name: site_a_vpn_sc_2
        properties:
          name: creating_a_service_connection_sc_grp_2
          region: us-west-1a
          ipsecTunnel: ${exampleIpsecTunnel.name}
          subnets:
            - 10.1.0.0/16
            - 172.16.0.0/24
          sourceNat: false
      ## 6. Service Connection Group (Groups the Service Connection created above)
      exampleGroup:
        type: scm:ServiceConnectionGroup
        name: example_group
        properties:
          name: service-connection-group-app_sc_grp
          targets:
            - ${siteAVpnSc.name}
            - ${siteAVpnSc2.name}
          disableSnat: false
          pbfOnly: true
    variables:
      # ------------------------------------------------------------------
      # Data Source: SCM Service Connection Group (Single Lookup)
      # ------------------------------------------------------------------
      groupLookup:
        fn::invoke:
          function: scm:getServiceConnectionGroup
          arguments:
            id: ${exampleGroup.id}
    outputs:
      lookedUpServiceConnectionGroupDetails: ${groupLookup}
    

    Using getServiceConnectionGroup

    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 getServiceConnectionGroup(args: GetServiceConnectionGroupArgs, opts?: InvokeOptions): Promise<GetServiceConnectionGroupResult>
    function getServiceConnectionGroupOutput(args: GetServiceConnectionGroupOutputArgs, opts?: InvokeOptions): Output<GetServiceConnectionGroupResult>
    def get_service_connection_group(id: Optional[str] = None,
                                     name: Optional[str] = None,
                                     opts: Optional[InvokeOptions] = None) -> GetServiceConnectionGroupResult
    def get_service_connection_group_output(id: Optional[pulumi.Input[str]] = None,
                                     name: Optional[pulumi.Input[str]] = None,
                                     opts: Optional[InvokeOptions] = None) -> Output[GetServiceConnectionGroupResult]
    func LookupServiceConnectionGroup(ctx *Context, args *LookupServiceConnectionGroupArgs, opts ...InvokeOption) (*LookupServiceConnectionGroupResult, error)
    func LookupServiceConnectionGroupOutput(ctx *Context, args *LookupServiceConnectionGroupOutputArgs, opts ...InvokeOption) LookupServiceConnectionGroupResultOutput

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

    public static class GetServiceConnectionGroup 
    {
        public static Task<GetServiceConnectionGroupResult> InvokeAsync(GetServiceConnectionGroupArgs args, InvokeOptions? opts = null)
        public static Output<GetServiceConnectionGroupResult> Invoke(GetServiceConnectionGroupInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetServiceConnectionGroupResult> getServiceConnectionGroup(GetServiceConnectionGroupArgs args, InvokeOptions options)
    public static Output<GetServiceConnectionGroupResult> getServiceConnectionGroup(GetServiceConnectionGroupArgs args, InvokeOptions options)
    
    fn::invoke:
      function: scm:index/getServiceConnectionGroup:getServiceConnectionGroup
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Id string
    The UUID of the service connection group
    Name string
    Name
    Id string
    The UUID of the service connection group
    Name string
    Name
    id String
    The UUID of the service connection group
    name String
    Name
    id string
    The UUID of the service connection group
    name string
    Name
    id str
    The UUID of the service connection group
    name str
    Name
    id String
    The UUID of the service connection group
    name String
    Name

    getServiceConnectionGroup Result

    The following output properties are available:

    DisableSnat bool
    Disable snat
    Id string
    The UUID of the service connection group
    Name string
    Name
    PbfOnly bool
    Pbf only
    Targets List<string>
    Target
    Tfid string
    DisableSnat bool
    Disable snat
    Id string
    The UUID of the service connection group
    Name string
    Name
    PbfOnly bool
    Pbf only
    Targets []string
    Target
    Tfid string
    disableSnat Boolean
    Disable snat
    id String
    The UUID of the service connection group
    name String
    Name
    pbfOnly Boolean
    Pbf only
    targets List<String>
    Target
    tfid String
    disableSnat boolean
    Disable snat
    id string
    The UUID of the service connection group
    name string
    Name
    pbfOnly boolean
    Pbf only
    targets string[]
    Target
    tfid string
    disable_snat bool
    Disable snat
    id str
    The UUID of the service connection group
    name str
    Name
    pbf_only bool
    Pbf only
    targets Sequence[str]
    Target
    tfid str
    disableSnat Boolean
    Disable snat
    id String
    The UUID of the service connection group
    name String
    Name
    pbfOnly Boolean
    Pbf only
    targets List<String>
    Target
    tfid String

    Package Details

    Repository
    scm pulumi/pulumi-scm
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the scm Terraform Provider.
    scm logo
    Strata Cloud Manager v0.4.3 published on Saturday, Nov 8, 2025 by Pulumi
      Meet Neo: Your AI Platform Teammate