1. Packages
  2. Packages
  3. Rootly
  4. API Docs
  5. CommunicationsGroup
Viewing docs for Rootly v3.3.0
published on Thursday, May 7, 2026 by rootlyhq
rootly logo
Viewing docs for Rootly v3.3.0
published on Thursday, May 7, 2026 by rootlyhq

    Example Usage

    resource "rootly_communications_group" "executive_stakeholders" {
      name = "Executive Stakeholders"
    }
    

    Create CommunicationsGroup Resource

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

    Constructor syntax

    new CommunicationsGroup(name: string, args: CommunicationsGroupArgs, opts?: CustomResourceOptions);
    @overload
    def CommunicationsGroup(resource_name: str,
                            args: CommunicationsGroupArgs,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def CommunicationsGroup(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            communication_type_id: Optional[str] = None,
                            communication_external_group_members: Optional[Sequence[CommunicationsGroupCommunicationExternalGroupMemberArgs]] = None,
                            communication_group_conditions: Optional[Sequence[CommunicationsGroupCommunicationGroupConditionArgs]] = None,
                            communication_group_members: Optional[Sequence[CommunicationsGroupCommunicationGroupMemberArgs]] = None,
                            condition_type: Optional[str] = None,
                            description: Optional[str] = None,
                            email_channel: Optional[bool] = None,
                            is_private: Optional[bool] = None,
                            name: Optional[str] = None,
                            slug: Optional[str] = None,
                            sms_channel: Optional[bool] = None)
    func NewCommunicationsGroup(ctx *Context, name string, args CommunicationsGroupArgs, opts ...ResourceOption) (*CommunicationsGroup, error)
    public CommunicationsGroup(string name, CommunicationsGroupArgs args, CustomResourceOptions? opts = null)
    public CommunicationsGroup(String name, CommunicationsGroupArgs args)
    public CommunicationsGroup(String name, CommunicationsGroupArgs args, CustomResourceOptions options)
    
    type: rootly:CommunicationsGroup
    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 CommunicationsGroupArgs
    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 CommunicationsGroupArgs
    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 CommunicationsGroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args CommunicationsGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args CommunicationsGroupArgs
    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 communicationsGroupResource = new Rootly.CommunicationsGroup("communicationsGroupResource", new()
    {
        CommunicationTypeId = "string",
        CommunicationExternalGroupMembers = new[]
        {
            new Rootly.Inputs.CommunicationsGroupCommunicationExternalGroupMemberArgs
            {
                Email = "string",
                Id = "string",
                Name = "string",
                PhoneNumber = "string",
            },
        },
        CommunicationGroupConditions = new[]
        {
            new Rootly.Inputs.CommunicationsGroupCommunicationGroupConditionArgs
            {
                Condition = "string",
                Id = "string",
                Properties = new[]
                {
                    new Rootly.Inputs.CommunicationsGroupCommunicationGroupConditionPropertyArgs
                    {
                        Id = "string",
                    },
                },
                PropertyType = "string",
            },
        },
        CommunicationGroupMembers = new[]
        {
            new Rootly.Inputs.CommunicationsGroupCommunicationGroupMemberArgs
            {
                Id = "string",
                UserId = 0,
            },
        },
        ConditionType = "string",
        Description = "string",
        EmailChannel = false,
        IsPrivate = false,
        Name = "string",
        Slug = "string",
        SmsChannel = false,
    });
    
    example, err := rootly.NewCommunicationsGroup(ctx, "communicationsGroupResource", &rootly.CommunicationsGroupArgs{
    	CommunicationTypeId: pulumi.String("string"),
    	CommunicationExternalGroupMembers: rootly.CommunicationsGroupCommunicationExternalGroupMemberArray{
    		&rootly.CommunicationsGroupCommunicationExternalGroupMemberArgs{
    			Email:       pulumi.String("string"),
    			Id:          pulumi.String("string"),
    			Name:        pulumi.String("string"),
    			PhoneNumber: pulumi.String("string"),
    		},
    	},
    	CommunicationGroupConditions: rootly.CommunicationsGroupCommunicationGroupConditionArray{
    		&rootly.CommunicationsGroupCommunicationGroupConditionArgs{
    			Condition: pulumi.String("string"),
    			Id:        pulumi.String("string"),
    			Properties: rootly.CommunicationsGroupCommunicationGroupConditionPropertyArray{
    				&rootly.CommunicationsGroupCommunicationGroupConditionPropertyArgs{
    					Id: pulumi.String("string"),
    				},
    			},
    			PropertyType: pulumi.String("string"),
    		},
    	},
    	CommunicationGroupMembers: rootly.CommunicationsGroupCommunicationGroupMemberArray{
    		&rootly.CommunicationsGroupCommunicationGroupMemberArgs{
    			Id:     pulumi.String("string"),
    			UserId: pulumi.Int(0),
    		},
    	},
    	ConditionType: pulumi.String("string"),
    	Description:   pulumi.String("string"),
    	EmailChannel:  pulumi.Bool(false),
    	IsPrivate:     pulumi.Bool(false),
    	Name:          pulumi.String("string"),
    	Slug:          pulumi.String("string"),
    	SmsChannel:    pulumi.Bool(false),
    })
    
    var communicationsGroupResource = new CommunicationsGroup("communicationsGroupResource", CommunicationsGroupArgs.builder()
        .communicationTypeId("string")
        .communicationExternalGroupMembers(CommunicationsGroupCommunicationExternalGroupMemberArgs.builder()
            .email("string")
            .id("string")
            .name("string")
            .phoneNumber("string")
            .build())
        .communicationGroupConditions(CommunicationsGroupCommunicationGroupConditionArgs.builder()
            .condition("string")
            .id("string")
            .properties(CommunicationsGroupCommunicationGroupConditionPropertyArgs.builder()
                .id("string")
                .build())
            .propertyType("string")
            .build())
        .communicationGroupMembers(CommunicationsGroupCommunicationGroupMemberArgs.builder()
            .id("string")
            .userId(0)
            .build())
        .conditionType("string")
        .description("string")
        .emailChannel(false)
        .isPrivate(false)
        .name("string")
        .slug("string")
        .smsChannel(false)
        .build());
    
    communications_group_resource = rootly.CommunicationsGroup("communicationsGroupResource",
        communication_type_id="string",
        communication_external_group_members=[{
            "email": "string",
            "id": "string",
            "name": "string",
            "phone_number": "string",
        }],
        communication_group_conditions=[{
            "condition": "string",
            "id": "string",
            "properties": [{
                "id": "string",
            }],
            "property_type": "string",
        }],
        communication_group_members=[{
            "id": "string",
            "user_id": 0,
        }],
        condition_type="string",
        description="string",
        email_channel=False,
        is_private=False,
        name="string",
        slug="string",
        sms_channel=False)
    
    const communicationsGroupResource = new rootly.CommunicationsGroup("communicationsGroupResource", {
        communicationTypeId: "string",
        communicationExternalGroupMembers: [{
            email: "string",
            id: "string",
            name: "string",
            phoneNumber: "string",
        }],
        communicationGroupConditions: [{
            condition: "string",
            id: "string",
            properties: [{
                id: "string",
            }],
            propertyType: "string",
        }],
        communicationGroupMembers: [{
            id: "string",
            userId: 0,
        }],
        conditionType: "string",
        description: "string",
        emailChannel: false,
        isPrivate: false,
        name: "string",
        slug: "string",
        smsChannel: false,
    });
    
    type: rootly:CommunicationsGroup
    properties:
        communicationExternalGroupMembers:
            - email: string
              id: string
              name: string
              phoneNumber: string
        communicationGroupConditions:
            - condition: string
              id: string
              properties:
                - id: string
              propertyType: string
        communicationGroupMembers:
            - id: string
              userId: 0
        communicationTypeId: string
        conditionType: string
        description: string
        emailChannel: false
        isPrivate: false
        name: string
        slug: string
        smsChannel: false
    

    CommunicationsGroup 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 CommunicationsGroup resource accepts the following input properties:

    CommunicationTypeId string
    The communication type ID
    CommunicationExternalGroupMembers List<CommunicationsGroupCommunicationExternalGroupMember>
    External group members
    CommunicationGroupConditions List<CommunicationsGroupCommunicationGroupCondition>
    Group conditions
    CommunicationGroupMembers List<CommunicationsGroupCommunicationGroupMember>
    Group members
    ConditionType string
    Condition type. Value must be one of any, all.
    Description string
    The description of the communications group
    EmailChannel bool
    Email channel enabled. Value must be one of true or false
    IsPrivate bool
    Whether the group is private. Value must be one of true or false
    Name string
    The name of the communications group
    Slug string
    The slug of the communications group
    SmsChannel bool
    SMS channel enabled. Value must be one of true or false
    CommunicationTypeId string
    The communication type ID
    CommunicationExternalGroupMembers []CommunicationsGroupCommunicationExternalGroupMemberArgs
    External group members
    CommunicationGroupConditions []CommunicationsGroupCommunicationGroupConditionArgs
    Group conditions
    CommunicationGroupMembers []CommunicationsGroupCommunicationGroupMemberArgs
    Group members
    ConditionType string
    Condition type. Value must be one of any, all.
    Description string
    The description of the communications group
    EmailChannel bool
    Email channel enabled. Value must be one of true or false
    IsPrivate bool
    Whether the group is private. Value must be one of true or false
    Name string
    The name of the communications group
    Slug string
    The slug of the communications group
    SmsChannel bool
    SMS channel enabled. Value must be one of true or false
    communicationTypeId String
    The communication type ID
    communicationExternalGroupMembers List<CommunicationsGroupCommunicationExternalGroupMember>
    External group members
    communicationGroupConditions List<CommunicationsGroupCommunicationGroupCondition>
    Group conditions
    communicationGroupMembers List<CommunicationsGroupCommunicationGroupMember>
    Group members
    conditionType String
    Condition type. Value must be one of any, all.
    description String
    The description of the communications group
    emailChannel Boolean
    Email channel enabled. Value must be one of true or false
    isPrivate Boolean
    Whether the group is private. Value must be one of true or false
    name String
    The name of the communications group
    slug String
    The slug of the communications group
    smsChannel Boolean
    SMS channel enabled. Value must be one of true or false
    communicationTypeId string
    The communication type ID
    communicationExternalGroupMembers CommunicationsGroupCommunicationExternalGroupMember[]
    External group members
    communicationGroupConditions CommunicationsGroupCommunicationGroupCondition[]
    Group conditions
    communicationGroupMembers CommunicationsGroupCommunicationGroupMember[]
    Group members
    conditionType string
    Condition type. Value must be one of any, all.
    description string
    The description of the communications group
    emailChannel boolean
    Email channel enabled. Value must be one of true or false
    isPrivate boolean
    Whether the group is private. Value must be one of true or false
    name string
    The name of the communications group
    slug string
    The slug of the communications group
    smsChannel boolean
    SMS channel enabled. Value must be one of true or false
    communication_type_id str
    The communication type ID
    communication_external_group_members Sequence[CommunicationsGroupCommunicationExternalGroupMemberArgs]
    External group members
    communication_group_conditions Sequence[CommunicationsGroupCommunicationGroupConditionArgs]
    Group conditions
    communication_group_members Sequence[CommunicationsGroupCommunicationGroupMemberArgs]
    Group members
    condition_type str
    Condition type. Value must be one of any, all.
    description str
    The description of the communications group
    email_channel bool
    Email channel enabled. Value must be one of true or false
    is_private bool
    Whether the group is private. Value must be one of true or false
    name str
    The name of the communications group
    slug str
    The slug of the communications group
    sms_channel bool
    SMS channel enabled. Value must be one of true or false
    communicationTypeId String
    The communication type ID
    communicationExternalGroupMembers List<Property Map>
    External group members
    communicationGroupConditions List<Property Map>
    Group conditions
    communicationGroupMembers List<Property Map>
    Group members
    conditionType String
    Condition type. Value must be one of any, all.
    description String
    The description of the communications group
    emailChannel Boolean
    Email channel enabled. Value must be one of true or false
    isPrivate Boolean
    Whether the group is private. Value must be one of true or false
    name String
    The name of the communications group
    slug String
    The slug of the communications group
    smsChannel Boolean
    SMS channel enabled. Value must be one of true or false

    Outputs

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

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

    Look up Existing CommunicationsGroup Resource

    Get an existing CommunicationsGroup 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?: CommunicationsGroupState, opts?: CustomResourceOptions): CommunicationsGroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            communication_external_group_members: Optional[Sequence[CommunicationsGroupCommunicationExternalGroupMemberArgs]] = None,
            communication_group_conditions: Optional[Sequence[CommunicationsGroupCommunicationGroupConditionArgs]] = None,
            communication_group_members: Optional[Sequence[CommunicationsGroupCommunicationGroupMemberArgs]] = None,
            communication_type_id: Optional[str] = None,
            condition_type: Optional[str] = None,
            description: Optional[str] = None,
            email_channel: Optional[bool] = None,
            is_private: Optional[bool] = None,
            name: Optional[str] = None,
            slug: Optional[str] = None,
            sms_channel: Optional[bool] = None) -> CommunicationsGroup
    func GetCommunicationsGroup(ctx *Context, name string, id IDInput, state *CommunicationsGroupState, opts ...ResourceOption) (*CommunicationsGroup, error)
    public static CommunicationsGroup Get(string name, Input<string> id, CommunicationsGroupState? state, CustomResourceOptions? opts = null)
    public static CommunicationsGroup get(String name, Output<String> id, CommunicationsGroupState state, CustomResourceOptions options)
    resources:  _:    type: rootly:CommunicationsGroup    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:
    CommunicationExternalGroupMembers List<CommunicationsGroupCommunicationExternalGroupMember>
    External group members
    CommunicationGroupConditions List<CommunicationsGroupCommunicationGroupCondition>
    Group conditions
    CommunicationGroupMembers List<CommunicationsGroupCommunicationGroupMember>
    Group members
    CommunicationTypeId string
    The communication type ID
    ConditionType string
    Condition type. Value must be one of any, all.
    Description string
    The description of the communications group
    EmailChannel bool
    Email channel enabled. Value must be one of true or false
    IsPrivate bool
    Whether the group is private. Value must be one of true or false
    Name string
    The name of the communications group
    Slug string
    The slug of the communications group
    SmsChannel bool
    SMS channel enabled. Value must be one of true or false
    CommunicationExternalGroupMembers []CommunicationsGroupCommunicationExternalGroupMemberArgs
    External group members
    CommunicationGroupConditions []CommunicationsGroupCommunicationGroupConditionArgs
    Group conditions
    CommunicationGroupMembers []CommunicationsGroupCommunicationGroupMemberArgs
    Group members
    CommunicationTypeId string
    The communication type ID
    ConditionType string
    Condition type. Value must be one of any, all.
    Description string
    The description of the communications group
    EmailChannel bool
    Email channel enabled. Value must be one of true or false
    IsPrivate bool
    Whether the group is private. Value must be one of true or false
    Name string
    The name of the communications group
    Slug string
    The slug of the communications group
    SmsChannel bool
    SMS channel enabled. Value must be one of true or false
    communicationExternalGroupMembers List<CommunicationsGroupCommunicationExternalGroupMember>
    External group members
    communicationGroupConditions List<CommunicationsGroupCommunicationGroupCondition>
    Group conditions
    communicationGroupMembers List<CommunicationsGroupCommunicationGroupMember>
    Group members
    communicationTypeId String
    The communication type ID
    conditionType String
    Condition type. Value must be one of any, all.
    description String
    The description of the communications group
    emailChannel Boolean
    Email channel enabled. Value must be one of true or false
    isPrivate Boolean
    Whether the group is private. Value must be one of true or false
    name String
    The name of the communications group
    slug String
    The slug of the communications group
    smsChannel Boolean
    SMS channel enabled. Value must be one of true or false
    communicationExternalGroupMembers CommunicationsGroupCommunicationExternalGroupMember[]
    External group members
    communicationGroupConditions CommunicationsGroupCommunicationGroupCondition[]
    Group conditions
    communicationGroupMembers CommunicationsGroupCommunicationGroupMember[]
    Group members
    communicationTypeId string
    The communication type ID
    conditionType string
    Condition type. Value must be one of any, all.
    description string
    The description of the communications group
    emailChannel boolean
    Email channel enabled. Value must be one of true or false
    isPrivate boolean
    Whether the group is private. Value must be one of true or false
    name string
    The name of the communications group
    slug string
    The slug of the communications group
    smsChannel boolean
    SMS channel enabled. Value must be one of true or false
    communication_external_group_members Sequence[CommunicationsGroupCommunicationExternalGroupMemberArgs]
    External group members
    communication_group_conditions Sequence[CommunicationsGroupCommunicationGroupConditionArgs]
    Group conditions
    communication_group_members Sequence[CommunicationsGroupCommunicationGroupMemberArgs]
    Group members
    communication_type_id str
    The communication type ID
    condition_type str
    Condition type. Value must be one of any, all.
    description str
    The description of the communications group
    email_channel bool
    Email channel enabled. Value must be one of true or false
    is_private bool
    Whether the group is private. Value must be one of true or false
    name str
    The name of the communications group
    slug str
    The slug of the communications group
    sms_channel bool
    SMS channel enabled. Value must be one of true or false
    communicationExternalGroupMembers List<Property Map>
    External group members
    communicationGroupConditions List<Property Map>
    Group conditions
    communicationGroupMembers List<Property Map>
    Group members
    communicationTypeId String
    The communication type ID
    conditionType String
    Condition type. Value must be one of any, all.
    description String
    The description of the communications group
    emailChannel Boolean
    Email channel enabled. Value must be one of true or false
    isPrivate Boolean
    Whether the group is private. Value must be one of true or false
    name String
    The name of the communications group
    slug String
    The slug of the communications group
    smsChannel Boolean
    SMS channel enabled. Value must be one of true or false

    Supporting Types

    CommunicationsGroupCommunicationExternalGroupMember, CommunicationsGroupCommunicationExternalGroupMemberArgs

    Email string
    Email of the external member
    Id string
    ID of the external group member
    Name string
    Name of the external member
    PhoneNumber string
    Phone number of the external member
    Email string
    Email of the external member
    Id string
    ID of the external group member
    Name string
    Name of the external member
    PhoneNumber string
    Phone number of the external member
    email String
    Email of the external member
    id String
    ID of the external group member
    name String
    Name of the external member
    phoneNumber String
    Phone number of the external member
    email string
    Email of the external member
    id string
    ID of the external group member
    name string
    Name of the external member
    phoneNumber string
    Phone number of the external member
    email str
    Email of the external member
    id str
    ID of the external group member
    name str
    Name of the external member
    phone_number str
    Phone number of the external member
    email String
    Email of the external member
    id String
    ID of the external group member
    name String
    Name of the external member
    phoneNumber String
    Phone number of the external member

    CommunicationsGroupCommunicationGroupCondition, CommunicationsGroupCommunicationGroupConditionArgs

    Condition string
    Condition
    Id string
    ID of the condition
    Properties List<CommunicationsGroupCommunicationGroupConditionProperty>
    Properties
    PropertyType string
    Property type. Value must be one of service, severity, functionality, group, incidentType.
    Condition string
    Condition
    Id string
    ID of the condition
    Properties []CommunicationsGroupCommunicationGroupConditionProperty
    Properties
    PropertyType string
    Property type. Value must be one of service, severity, functionality, group, incidentType.
    condition String
    Condition
    id String
    ID of the condition
    properties List<CommunicationsGroupCommunicationGroupConditionProperty>
    Properties
    propertyType String
    Property type. Value must be one of service, severity, functionality, group, incidentType.
    condition string
    Condition
    id string
    ID of the condition
    properties CommunicationsGroupCommunicationGroupConditionProperty[]
    Properties
    propertyType string
    Property type. Value must be one of service, severity, functionality, group, incidentType.
    condition str
    Condition
    id str
    ID of the condition
    properties Sequence[CommunicationsGroupCommunicationGroupConditionProperty]
    Properties
    property_type str
    Property type. Value must be one of service, severity, functionality, group, incidentType.
    condition String
    Condition
    id String
    ID of the condition
    properties List<Property Map>
    Properties
    propertyType String
    Property type. Value must be one of service, severity, functionality, group, incidentType.

    CommunicationsGroupCommunicationGroupConditionProperty, CommunicationsGroupCommunicationGroupConditionPropertyArgs

    Id string
    Name string

    Deprecated: This field is deprecated and will be removed in a future version

    Id string
    Name string

    Deprecated: This field is deprecated and will be removed in a future version

    id String
    name String

    Deprecated: This field is deprecated and will be removed in a future version

    id string
    name string

    Deprecated: This field is deprecated and will be removed in a future version

    id str
    name str

    Deprecated: This field is deprecated and will be removed in a future version

    id String
    name String

    Deprecated: This field is deprecated and will be removed in a future version

    CommunicationsGroupCommunicationGroupMember, CommunicationsGroupCommunicationGroupMemberArgs

    Id string
    ID of the group member
    UserId int
    User ID
    Id string
    ID of the group member
    UserId int
    User ID
    id String
    ID of the group member
    userId Integer
    User ID
    id string
    ID of the group member
    userId number
    User ID
    id str
    ID of the group member
    user_id int
    User ID
    id String
    ID of the group member
    userId Number
    User ID

    Import

    rootly.CommunicationsGroup can be imported using the import command.

    $ pulumi import rootly:index/communicationsGroup:CommunicationsGroup primary a816421c-6ceb-481a-87c4-585e47451f24
    

    Or using an import block.

    Locate the resource id in the web app, or retrieve it by listing resources through the API if it’s not visible in the web app.

    HCL can be generated from the import block using the -generate-config-out flag.

    pulumi preview -generate-config-out=generated.tf
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    rootly rootlyhq/pulumi-rootly
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the rootly Terraform Provider.
    rootly logo
    Viewing docs for Rootly v3.3.0
    published on Thursday, May 7, 2026 by rootlyhq
      Try Pulumi Cloud free. Your team will thank you.