ibm.getSecurityGroup
Explore with Pulumi AI
Retrieve information of an existing security group as a read-only data source. For more information, about IBM Cloud security group, see managing security groups.
Example Usage
The following example shows how you can use this data source to reference the security group IDs in the ibm.ComputeVmInstance
resource because the numeric IDs are often unknown.
import * as pulumi from "@pulumi/pulumi";
import * as ibm from "@pulumi/ibm";
const allowSsh = ibm.getSecurityGroup({
name: "allow_ssh",
});
const vm1 = new ibm.ComputeVmInstance("vm1", {privateSecurityGroupIds: [allowSsh.then(allowSsh => allowSsh.id)]});
import pulumi
import pulumi_ibm as ibm
allow_ssh = ibm.get_security_group(name="allow_ssh")
vm1 = ibm.ComputeVmInstance("vm1", private_security_group_ids=[allow_ssh.id])
package main
import (
"github.com/pulumi/pulumi-terraform-provider/sdks/go/ibm/ibm"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
allowSsh, err := ibm.LookupSecurityGroup(ctx, &ibm.LookupSecurityGroupArgs{
Name: "allow_ssh",
}, nil)
if err != nil {
return err
}
_, err = ibm.NewComputeVmInstance(ctx, "vm1", &ibm.ComputeVmInstanceArgs{
PrivateSecurityGroupIds: pulumi.Float64Array{
pulumi.String(allowSsh.Id),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Ibm = Pulumi.Ibm;
return await Deployment.RunAsync(() =>
{
var allowSsh = Ibm.GetSecurityGroup.Invoke(new()
{
Name = "allow_ssh",
});
var vm1 = new Ibm.ComputeVmInstance("vm1", new()
{
PrivateSecurityGroupIds = new[]
{
allowSsh.Apply(getSecurityGroupResult => getSecurityGroupResult.Id),
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.ibm.IbmFunctions;
import com.pulumi.ibm.inputs.GetSecurityGroupArgs;
import com.pulumi.ibm.ComputeVmInstance;
import com.pulumi.ibm.ComputeVmInstanceArgs;
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 allowSsh = IbmFunctions.getSecurityGroup(GetSecurityGroupArgs.builder()
.name("allow_ssh")
.build());
var vm1 = new ComputeVmInstance("vm1", ComputeVmInstanceArgs.builder()
.privateSecurityGroupIds(allowSsh.applyValue(getSecurityGroupResult -> getSecurityGroupResult.id()))
.build());
}
}
resources:
vm1:
type: ibm:ComputeVmInstance
properties:
# TF-UPGRADE-TODO: In Terraform v0.10 and earlier, it was sometimes necessary to
# # force an interpolation expression to be interpreted as a list by wrapping it
# # in an extra set of list brackets. That form was supported for compatibility in
# # v0.11, but is no longer supported in Terraform v0.12.
# #
# # If the expression in the following list itself returns a list, remove the
# # brackets to avoid interpretation as a list of lists. If the expression
# # returns a single list item then leave it as-is and remove this TODO comment.
privateSecurityGroupIds:
- ${allowSsh.id}
variables:
allowSsh:
fn::invoke:
function: ibm:getSecurityGroup
arguments:
name: allow_ssh
Using getSecurityGroup
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 getSecurityGroup(args: GetSecurityGroupArgs, opts?: InvokeOptions): Promise<GetSecurityGroupResult>
function getSecurityGroupOutput(args: GetSecurityGroupOutputArgs, opts?: InvokeOptions): Output<GetSecurityGroupResult>
def get_security_group(description: Optional[str] = None,
id: Optional[str] = None,
most_recent: Optional[bool] = None,
name: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetSecurityGroupResult
def get_security_group_output(description: Optional[pulumi.Input[str]] = None,
id: Optional[pulumi.Input[str]] = None,
most_recent: Optional[pulumi.Input[bool]] = None,
name: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetSecurityGroupResult]
func LookupSecurityGroup(ctx *Context, args *LookupSecurityGroupArgs, opts ...InvokeOption) (*LookupSecurityGroupResult, error)
func LookupSecurityGroupOutput(ctx *Context, args *LookupSecurityGroupOutputArgs, opts ...InvokeOption) LookupSecurityGroupResultOutput
> Note: This function is named LookupSecurityGroup
in the Go SDK.
public static class GetSecurityGroup
{
public static Task<GetSecurityGroupResult> InvokeAsync(GetSecurityGroupArgs args, InvokeOptions? opts = null)
public static Output<GetSecurityGroupResult> Invoke(GetSecurityGroupInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetSecurityGroupResult> getSecurityGroup(GetSecurityGroupArgs args, InvokeOptions options)
public static Output<GetSecurityGroupResult> getSecurityGroup(GetSecurityGroupArgs args, InvokeOptions options)
fn::invoke:
function: ibm:index/getSecurityGroup:getSecurityGroup
arguments:
# arguments dictionary
The following arguments are supported:
- Name string
- The name of the security group, as defined in IBM Cloud Classic Infrastructure.
- Description string
- The description of the security group, as defined in IBM Cloud Classic Infrastructure.
- Id string
- (String) The unique identifier of the security group.
- Most
Recent bool
- Name string
- The name of the security group, as defined in IBM Cloud Classic Infrastructure.
- Description string
- The description of the security group, as defined in IBM Cloud Classic Infrastructure.
- Id string
- (String) The unique identifier of the security group.
- Most
Recent bool
- name String
- The name of the security group, as defined in IBM Cloud Classic Infrastructure.
- description String
- The description of the security group, as defined in IBM Cloud Classic Infrastructure.
- id String
- (String) The unique identifier of the security group.
- most
Recent Boolean
- name string
- The name of the security group, as defined in IBM Cloud Classic Infrastructure.
- description string
- The description of the security group, as defined in IBM Cloud Classic Infrastructure.
- id string
- (String) The unique identifier of the security group.
- most
Recent boolean
- name str
- The name of the security group, as defined in IBM Cloud Classic Infrastructure.
- description str
- The description of the security group, as defined in IBM Cloud Classic Infrastructure.
- id str
- (String) The unique identifier of the security group.
- most_
recent bool
- name String
- The name of the security group, as defined in IBM Cloud Classic Infrastructure.
- description String
- The description of the security group, as defined in IBM Cloud Classic Infrastructure.
- id String
- (String) The unique identifier of the security group.
- most
Recent Boolean
getSecurityGroup Result
The following output properties are available:
- Description string
- (String) The description of the security group.
- Id string
- (String) The unique identifier of the security group.
- Name string
- Most
Recent bool
- Description string
- (String) The description of the security group.
- Id string
- (String) The unique identifier of the security group.
- Name string
- Most
Recent bool
- description String
- (String) The description of the security group.
- id String
- (String) The unique identifier of the security group.
- name String
- most
Recent Boolean
- description string
- (String) The description of the security group.
- id string
- (String) The unique identifier of the security group.
- name string
- most
Recent boolean
- description str
- (String) The description of the security group.
- id str
- (String) The unique identifier of the security group.
- name str
- most_
recent bool
- description String
- (String) The description of the security group.
- id String
- (String) The unique identifier of the security group.
- name String
- most
Recent Boolean
Package Details
- Repository
- ibm ibm-cloud/terraform-provider-ibm
- License
- Notes
- This Pulumi package is based on the
ibm
Terraform Provider.