ServiceGroup resource
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as scm from "@pulumi/scm";
// TCP Service with multiple destination ports custom timeout
const scmServiceTcpPorts = new scm.Service("scm_service_tcp_ports", {
folder: "Shared",
name: "scm_service_tcp_ports",
description: "Managed by Pulumi",
protocol: {
tcp: {
port: "80,443",
override: {
timeout: 3600,
},
},
},
});
// UDP Service with single destination port
const scmServiceUdpPort = new scm.Service("scm_service_udp_port", {
folder: "Shared",
name: "scm_service_udp_port",
description: "Managed by Pulumi",
protocol: {
udp: {
port: "53",
},
},
});
// Service Group containing multiple services
const scmServicegroup = new scm.ServiceGroup("scm_servicegroup", {
folder: "All",
name: "scm_servicegroup",
members: [
scmServiceTcpPorts.name,
scmServiceUdpPort.name,
],
});
// Service Group containing multiple services and another servicegroup
const scmServicegroupNested = new scm.ServiceGroup("scm_servicegroup_nested", {
folder: "All",
name: "scm_servicegroup_nested",
members: [
scmServiceTcpPorts.name,
scmServiceUdpPort.name,
scmServicegroup.name,
],
});
import pulumi
import pulumi_scm as scm
# TCP Service with multiple destination ports custom timeout
scm_service_tcp_ports = scm.Service("scm_service_tcp_ports",
folder="Shared",
name="scm_service_tcp_ports",
description="Managed by Pulumi",
protocol={
"tcp": {
"port": "80,443",
"override": {
"timeout": 3600,
},
},
})
# UDP Service with single destination port
scm_service_udp_port = scm.Service("scm_service_udp_port",
folder="Shared",
name="scm_service_udp_port",
description="Managed by Pulumi",
protocol={
"udp": {
"port": "53",
},
})
# Service Group containing multiple services
scm_servicegroup = scm.ServiceGroup("scm_servicegroup",
folder="All",
name="scm_servicegroup",
members=[
scm_service_tcp_ports.name,
scm_service_udp_port.name,
])
# Service Group containing multiple services and another servicegroup
scm_servicegroup_nested = scm.ServiceGroup("scm_servicegroup_nested",
folder="All",
name="scm_servicegroup_nested",
members=[
scm_service_tcp_ports.name,
scm_service_udp_port.name,
scm_servicegroup.name,
])
package main
import (
"github.com/pulumi/pulumi-scm/sdk/go/scm"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// TCP Service with multiple destination ports custom timeout
scmServiceTcpPorts, err := scm.NewService(ctx, "scm_service_tcp_ports", &scm.ServiceArgs{
Folder: pulumi.String("Shared"),
Name: pulumi.String("scm_service_tcp_ports"),
Description: pulumi.String("Managed by Pulumi"),
Protocol: &scm.ServiceProtocolArgs{
Tcp: &scm.ServiceProtocolTcpArgs{
Port: pulumi.String("80,443"),
Override: &scm.ServiceProtocolTcpOverrideArgs{
Timeout: pulumi.Int(3600),
},
},
},
})
if err != nil {
return err
}
// UDP Service with single destination port
scmServiceUdpPort, err := scm.NewService(ctx, "scm_service_udp_port", &scm.ServiceArgs{
Folder: pulumi.String("Shared"),
Name: pulumi.String("scm_service_udp_port"),
Description: pulumi.String("Managed by Pulumi"),
Protocol: &scm.ServiceProtocolArgs{
Udp: &scm.ServiceProtocolUdpArgs{
Port: pulumi.String("53"),
},
},
})
if err != nil {
return err
}
// Service Group containing multiple services
scmServicegroup, err := scm.NewServiceGroup(ctx, "scm_servicegroup", &scm.ServiceGroupArgs{
Folder: pulumi.String("All"),
Name: pulumi.String("scm_servicegroup"),
Members: pulumi.StringArray{
scmServiceTcpPorts.Name,
scmServiceUdpPort.Name,
},
})
if err != nil {
return err
}
// Service Group containing multiple services and another servicegroup
_, err = scm.NewServiceGroup(ctx, "scm_servicegroup_nested", &scm.ServiceGroupArgs{
Folder: pulumi.String("All"),
Name: pulumi.String("scm_servicegroup_nested"),
Members: pulumi.StringArray{
scmServiceTcpPorts.Name,
scmServiceUdpPort.Name,
scmServicegroup.Name,
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Scm = Pulumi.Scm;
return await Deployment.RunAsync(() =>
{
// TCP Service with multiple destination ports custom timeout
var scmServiceTcpPorts = new Scm.Service("scm_service_tcp_ports", new()
{
Folder = "Shared",
Name = "scm_service_tcp_ports",
Description = "Managed by Pulumi",
Protocol = new Scm.Inputs.ServiceProtocolArgs
{
Tcp = new Scm.Inputs.ServiceProtocolTcpArgs
{
Port = "80,443",
Override = new Scm.Inputs.ServiceProtocolTcpOverrideArgs
{
Timeout = 3600,
},
},
},
});
// UDP Service with single destination port
var scmServiceUdpPort = new Scm.Service("scm_service_udp_port", new()
{
Folder = "Shared",
Name = "scm_service_udp_port",
Description = "Managed by Pulumi",
Protocol = new Scm.Inputs.ServiceProtocolArgs
{
Udp = new Scm.Inputs.ServiceProtocolUdpArgs
{
Port = "53",
},
},
});
// Service Group containing multiple services
var scmServicegroup = new Scm.ServiceGroup("scm_servicegroup", new()
{
Folder = "All",
Name = "scm_servicegroup",
Members = new[]
{
scmServiceTcpPorts.Name,
scmServiceUdpPort.Name,
},
});
// Service Group containing multiple services and another servicegroup
var scmServicegroupNested = new Scm.ServiceGroup("scm_servicegroup_nested", new()
{
Folder = "All",
Name = "scm_servicegroup_nested",
Members = new[]
{
scmServiceTcpPorts.Name,
scmServiceUdpPort.Name,
scmServicegroup.Name,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.scm.Service;
import com.pulumi.scm.ServiceArgs;
import com.pulumi.scm.inputs.ServiceProtocolArgs;
import com.pulumi.scm.inputs.ServiceProtocolTcpArgs;
import com.pulumi.scm.inputs.ServiceProtocolTcpOverrideArgs;
import com.pulumi.scm.inputs.ServiceProtocolUdpArgs;
import com.pulumi.scm.ServiceGroup;
import com.pulumi.scm.ServiceGroupArgs;
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) {
// TCP Service with multiple destination ports custom timeout
var scmServiceTcpPorts = new Service("scmServiceTcpPorts", ServiceArgs.builder()
.folder("Shared")
.name("scm_service_tcp_ports")
.description("Managed by Pulumi")
.protocol(ServiceProtocolArgs.builder()
.tcp(ServiceProtocolTcpArgs.builder()
.port("80,443")
.override(ServiceProtocolTcpOverrideArgs.builder()
.timeout(3600)
.build())
.build())
.build())
.build());
// UDP Service with single destination port
var scmServiceUdpPort = new Service("scmServiceUdpPort", ServiceArgs.builder()
.folder("Shared")
.name("scm_service_udp_port")
.description("Managed by Pulumi")
.protocol(ServiceProtocolArgs.builder()
.udp(ServiceProtocolUdpArgs.builder()
.port("53")
.build())
.build())
.build());
// Service Group containing multiple services
var scmServicegroup = new ServiceGroup("scmServicegroup", ServiceGroupArgs.builder()
.folder("All")
.name("scm_servicegroup")
.members(
scmServiceTcpPorts.name(),
scmServiceUdpPort.name())
.build());
// Service Group containing multiple services and another servicegroup
var scmServicegroupNested = new ServiceGroup("scmServicegroupNested", ServiceGroupArgs.builder()
.folder("All")
.name("scm_servicegroup_nested")
.members(
scmServiceTcpPorts.name(),
scmServiceUdpPort.name(),
scmServicegroup.name())
.build());
}
}
resources:
# TCP Service with multiple destination ports custom timeout
scmServiceTcpPorts:
type: scm:Service
name: scm_service_tcp_ports
properties:
folder: Shared
name: scm_service_tcp_ports
description: Managed by Pulumi
protocol:
tcp:
port: 80,443
override:
timeout: 3600
# UDP Service with single destination port
scmServiceUdpPort:
type: scm:Service
name: scm_service_udp_port
properties:
folder: Shared
name: scm_service_udp_port
description: Managed by Pulumi
protocol:
udp:
port: '53'
# Service Group containing multiple services
scmServicegroup:
type: scm:ServiceGroup
name: scm_servicegroup
properties:
folder: All
name: scm_servicegroup
members:
- ${scmServiceTcpPorts.name}
- ${scmServiceUdpPort.name}
# Service Group containing multiple services and another servicegroup
scmServicegroupNested:
type: scm:ServiceGroup
name: scm_servicegroup_nested
properties:
folder: All
name: scm_servicegroup_nested
members:
- ${scmServiceTcpPorts.name}
- ${scmServiceUdpPort.name}
- ${scmServicegroup.name}
Create ServiceGroup Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ServiceGroup(name: string, args: ServiceGroupArgs, opts?: CustomResourceOptions);@overload
def ServiceGroup(resource_name: str,
args: ServiceGroupArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ServiceGroup(resource_name: str,
opts: Optional[ResourceOptions] = None,
members: Optional[Sequence[str]] = None,
device: Optional[str] = None,
folder: Optional[str] = None,
name: Optional[str] = None,
snippet: Optional[str] = None,
tags: Optional[Sequence[str]] = None)func NewServiceGroup(ctx *Context, name string, args ServiceGroupArgs, opts ...ResourceOption) (*ServiceGroup, error)public ServiceGroup(string name, ServiceGroupArgs args, CustomResourceOptions? opts = null)
public ServiceGroup(String name, ServiceGroupArgs args)
public ServiceGroup(String name, ServiceGroupArgs args, CustomResourceOptions options)
type: scm:ServiceGroup
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 ServiceGroupArgs
- 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 ServiceGroupArgs
- 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 ServiceGroupArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ServiceGroupArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ServiceGroupArgs
- 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 serviceGroupResource = new Scm.ServiceGroup("serviceGroupResource", new()
{
Members = new[]
{
"string",
},
Device = "string",
Folder = "string",
Name = "string",
Snippet = "string",
Tags = new[]
{
"string",
},
});
example, err := scm.NewServiceGroup(ctx, "serviceGroupResource", &scm.ServiceGroupArgs{
Members: pulumi.StringArray{
pulumi.String("string"),
},
Device: pulumi.String("string"),
Folder: pulumi.String("string"),
Name: pulumi.String("string"),
Snippet: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
})
var serviceGroupResource = new ServiceGroup("serviceGroupResource", ServiceGroupArgs.builder()
.members("string")
.device("string")
.folder("string")
.name("string")
.snippet("string")
.tags("string")
.build());
service_group_resource = scm.ServiceGroup("serviceGroupResource",
members=["string"],
device="string",
folder="string",
name="string",
snippet="string",
tags=["string"])
const serviceGroupResource = new scm.ServiceGroup("serviceGroupResource", {
members: ["string"],
device: "string",
folder: "string",
name: "string",
snippet: "string",
tags: ["string"],
});
type: scm:ServiceGroup
properties:
device: string
folder: string
members:
- string
name: string
snippet: string
tags:
- string
ServiceGroup 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 ServiceGroup resource accepts the following input properties:
Outputs
All input properties are implicitly available as output properties. Additionally, the ServiceGroup resource produces the following output properties:
Look up Existing ServiceGroup Resource
Get an existing ServiceGroup 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?: ServiceGroupState, opts?: CustomResourceOptions): ServiceGroup@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
device: Optional[str] = None,
folder: Optional[str] = None,
members: Optional[Sequence[str]] = None,
name: Optional[str] = None,
snippet: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
tfid: Optional[str] = None) -> ServiceGroupfunc GetServiceGroup(ctx *Context, name string, id IDInput, state *ServiceGroupState, opts ...ResourceOption) (*ServiceGroup, error)public static ServiceGroup Get(string name, Input<string> id, ServiceGroupState? state, CustomResourceOptions? opts = null)public static ServiceGroup get(String name, Output<String> id, ServiceGroupState state, CustomResourceOptions options)resources: _: type: scm:ServiceGroup 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.
Package Details
- Repository
- scm pulumi/pulumi-scm
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
scmTerraform Provider.
