1. Packages
  2. Strata Cloud Manager Provider
  3. API Docs
  4. ServiceConnectionGroup
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 resource

    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: true,
    });
    // ------------------------------------------------------------------
    // II. SERVICE CONNECTION GROUP RESOURCE
    // ------------------------------------------------------------------
    //# 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: true,
        pbfOnly: false,
    });
    
    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=True)
    # ------------------------------------------------------------------
    # II. SERVICE CONNECTION GROUP RESOURCE
    # ------------------------------------------------------------------
    ## 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=True,
        pbf_only=False)
    
    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(true),
    		})
    		if err != nil {
    			return err
    		}
    		// # 6. Service Connection Group (Groups the Service Connection created above)
    		_, 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(true),
    			PbfOnly:     pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		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 = true,
        });
    
        // ------------------------------------------------------------------
        // II. SERVICE CONNECTION GROUP RESOURCE
        // ------------------------------------------------------------------
        //# 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 = true,
            PbfOnly = false,
        });
    
    });
    
    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.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(true)
                .build());
    
            // ------------------------------------------------------------------
            // II. SERVICE CONNECTION GROUP RESOURCE
            // ------------------------------------------------------------------
            //# 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(true)
                .pbfOnly(false)
                .build());
    
        }
    }
    
    configuration:
      folderScope: # ------------------------------------------------------------------
      # I. VPN COMPONENT RESOURCES (Creation/Management)
      # ------------------------------------------------------------------
        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: # ------------------------------------------------------------------
      # II. SERVICE CONNECTION GROUP RESOURCE
      # ------------------------------------------------------------------
        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: true
      ## 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: true
          pbfOnly: false
    

    Create ServiceConnectionGroup Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ServiceConnectionGroup(name: string, args: ServiceConnectionGroupArgs, opts?: CustomResourceOptions);
    @overload
    def ServiceConnectionGroup(resource_name: str,
                               args: ServiceConnectionGroupArgs,
                               opts: Optional[ResourceOptions] = None)
    
    @overload
    def ServiceConnectionGroup(resource_name: str,
                               opts: Optional[ResourceOptions] = None,
                               targets: Optional[Sequence[str]] = None,
                               disable_snat: Optional[bool] = None,
                               name: Optional[str] = None,
                               pbf_only: Optional[bool] = None)
    func NewServiceConnectionGroup(ctx *Context, name string, args ServiceConnectionGroupArgs, opts ...ResourceOption) (*ServiceConnectionGroup, error)
    public ServiceConnectionGroup(string name, ServiceConnectionGroupArgs args, CustomResourceOptions? opts = null)
    public ServiceConnectionGroup(String name, ServiceConnectionGroupArgs args)
    public ServiceConnectionGroup(String name, ServiceConnectionGroupArgs args, CustomResourceOptions options)
    
    type: scm:ServiceConnectionGroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ServiceConnectionGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ServiceConnectionGroupArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ServiceConnectionGroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ServiceConnectionGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ServiceConnectionGroupArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var serviceConnectionGroupResource = new Scm.ServiceConnectionGroup("serviceConnectionGroupResource", new()
    {
        Targets = new[]
        {
            "string",
        },
        DisableSnat = false,
        Name = "string",
        PbfOnly = false,
    });
    
    example, err := scm.NewServiceConnectionGroup(ctx, "serviceConnectionGroupResource", &scm.ServiceConnectionGroupArgs{
    	Targets: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	DisableSnat: pulumi.Bool(false),
    	Name:        pulumi.String("string"),
    	PbfOnly:     pulumi.Bool(false),
    })
    
    var serviceConnectionGroupResource = new ServiceConnectionGroup("serviceConnectionGroupResource", ServiceConnectionGroupArgs.builder()
        .targets("string")
        .disableSnat(false)
        .name("string")
        .pbfOnly(false)
        .build());
    
    service_connection_group_resource = scm.ServiceConnectionGroup("serviceConnectionGroupResource",
        targets=["string"],
        disable_snat=False,
        name="string",
        pbf_only=False)
    
    const serviceConnectionGroupResource = new scm.ServiceConnectionGroup("serviceConnectionGroupResource", {
        targets: ["string"],
        disableSnat: false,
        name: "string",
        pbfOnly: false,
    });
    
    type: scm:ServiceConnectionGroup
    properties:
        disableSnat: false
        name: string
        pbfOnly: false
        targets:
            - string
    

    ServiceConnectionGroup Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The ServiceConnectionGroup resource accepts the following input properties:

    Targets List<string>
    Target
    DisableSnat bool
    Disable snat
    Name string
    Name
    PbfOnly bool
    Pbf only
    Targets []string
    Target
    DisableSnat bool
    Disable snat
    Name string
    Name
    PbfOnly bool
    Pbf only
    targets List<String>
    Target
    disableSnat Boolean
    Disable snat
    name String
    Name
    pbfOnly Boolean
    Pbf only
    targets string[]
    Target
    disableSnat boolean
    Disable snat
    name string
    Name
    pbfOnly boolean
    Pbf only
    targets Sequence[str]
    Target
    disable_snat bool
    Disable snat
    name str
    Name
    pbf_only bool
    Pbf only
    targets List<String>
    Target
    disableSnat Boolean
    Disable snat
    name String
    Name
    pbfOnly Boolean
    Pbf only

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ServiceConnectionGroup resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    Tfid string
    Id string
    The provider-assigned unique ID for this managed resource.
    Tfid string
    id String
    The provider-assigned unique ID for this managed resource.
    tfid String
    id string
    The provider-assigned unique ID for this managed resource.
    tfid string
    id str
    The provider-assigned unique ID for this managed resource.
    tfid str
    id String
    The provider-assigned unique ID for this managed resource.
    tfid String

    Look up Existing ServiceConnectionGroup Resource

    Get an existing ServiceConnectionGroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ServiceConnectionGroupState, opts?: CustomResourceOptions): ServiceConnectionGroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            disable_snat: Optional[bool] = None,
            name: Optional[str] = None,
            pbf_only: Optional[bool] = None,
            targets: Optional[Sequence[str]] = None,
            tfid: Optional[str] = None) -> ServiceConnectionGroup
    func GetServiceConnectionGroup(ctx *Context, name string, id IDInput, state *ServiceConnectionGroupState, opts ...ResourceOption) (*ServiceConnectionGroup, error)
    public static ServiceConnectionGroup Get(string name, Input<string> id, ServiceConnectionGroupState? state, CustomResourceOptions? opts = null)
    public static ServiceConnectionGroup get(String name, Output<String> id, ServiceConnectionGroupState state, CustomResourceOptions options)
    resources:  _:    type: scm:ServiceConnectionGroup    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    DisableSnat bool
    Disable snat
    Name string
    Name
    PbfOnly bool
    Pbf only
    Targets List<string>
    Target
    Tfid string
    DisableSnat bool
    Disable snat
    Name string
    Name
    PbfOnly bool
    Pbf only
    Targets []string
    Target
    Tfid string
    disableSnat Boolean
    Disable snat
    name String
    Name
    pbfOnly Boolean
    Pbf only
    targets List<String>
    Target
    tfid String
    disableSnat boolean
    Disable snat
    name string
    Name
    pbfOnly boolean
    Pbf only
    targets string[]
    Target
    tfid string
    disable_snat bool
    Disable snat
    name str
    Name
    pbf_only bool
    Pbf only
    targets Sequence[str]
    Target
    tfid str
    disableSnat Boolean
    Disable snat
    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