1. Packages
  2. Oracle Cloud Infrastructure
  3. API Docs
  4. Dns
  5. getSteeringPolicyAttachments
Oracle Cloud Infrastructure v1.32.0 published on Thursday, Apr 18, 2024 by Pulumi

oci.Dns.getSteeringPolicyAttachments

Explore with Pulumi AI

oci logo
Oracle Cloud Infrastructure v1.32.0 published on Thursday, Apr 18, 2024 by Pulumi

    This data source provides the list of Steering Policy Attachments in Oracle Cloud Infrastructure DNS service.

    Lists the steering policy attachments in the specified compartment.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as oci from "@pulumi/oci";
    
    const testSteeringPolicyAttachments = oci.Dns.getSteeringPolicyAttachments({
        compartmentId: _var.compartment_id,
        displayName: _var.steering_policy_attachment_display_name,
        domain: _var.steering_policy_attachment_domain,
        domainContains: _var.steering_policy_attachment_domain_contains,
        id: _var.steering_policy_attachment_id,
        state: _var.steering_policy_attachment_state,
        steeringPolicyId: oci_dns_steering_policy.test_steering_policy.id,
        timeCreatedGreaterThanOrEqualTo: _var.steering_policy_attachment_time_created_greater_than_or_equal_to,
        timeCreatedLessThan: _var.steering_policy_attachment_time_created_less_than,
        zoneId: oci_dns_zone.test_zone.id,
    });
    
    import pulumi
    import pulumi_oci as oci
    
    test_steering_policy_attachments = oci.Dns.get_steering_policy_attachments(compartment_id=var["compartment_id"],
        display_name=var["steering_policy_attachment_display_name"],
        domain=var["steering_policy_attachment_domain"],
        domain_contains=var["steering_policy_attachment_domain_contains"],
        id=var["steering_policy_attachment_id"],
        state=var["steering_policy_attachment_state"],
        steering_policy_id=oci_dns_steering_policy["test_steering_policy"]["id"],
        time_created_greater_than_or_equal_to=var["steering_policy_attachment_time_created_greater_than_or_equal_to"],
        time_created_less_than=var["steering_policy_attachment_time_created_less_than"],
        zone_id=oci_dns_zone["test_zone"]["id"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-oci/sdk/go/oci/Dns"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := Dns.GetSteeringPolicyAttachments(ctx, &dns.GetSteeringPolicyAttachmentsArgs{
    			CompartmentId:                   _var.Compartment_id,
    			DisplayName:                     pulumi.StringRef(_var.Steering_policy_attachment_display_name),
    			Domain:                          pulumi.StringRef(_var.Steering_policy_attachment_domain),
    			DomainContains:                  pulumi.StringRef(_var.Steering_policy_attachment_domain_contains),
    			Id:                              pulumi.StringRef(_var.Steering_policy_attachment_id),
    			State:                           pulumi.StringRef(_var.Steering_policy_attachment_state),
    			SteeringPolicyId:                pulumi.StringRef(oci_dns_steering_policy.Test_steering_policy.Id),
    			TimeCreatedGreaterThanOrEqualTo: pulumi.StringRef(_var.Steering_policy_attachment_time_created_greater_than_or_equal_to),
    			TimeCreatedLessThan:             pulumi.StringRef(_var.Steering_policy_attachment_time_created_less_than),
    			ZoneId:                          pulumi.StringRef(oci_dns_zone.Test_zone.Id),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Oci = Pulumi.Oci;
    
    return await Deployment.RunAsync(() => 
    {
        var testSteeringPolicyAttachments = Oci.Dns.GetSteeringPolicyAttachments.Invoke(new()
        {
            CompartmentId = @var.Compartment_id,
            DisplayName = @var.Steering_policy_attachment_display_name,
            Domain = @var.Steering_policy_attachment_domain,
            DomainContains = @var.Steering_policy_attachment_domain_contains,
            Id = @var.Steering_policy_attachment_id,
            State = @var.Steering_policy_attachment_state,
            SteeringPolicyId = oci_dns_steering_policy.Test_steering_policy.Id,
            TimeCreatedGreaterThanOrEqualTo = @var.Steering_policy_attachment_time_created_greater_than_or_equal_to,
            TimeCreatedLessThan = @var.Steering_policy_attachment_time_created_less_than,
            ZoneId = oci_dns_zone.Test_zone.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.oci.Dns.DnsFunctions;
    import com.pulumi.oci.Dns.inputs.GetSteeringPolicyAttachmentsArgs;
    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 testSteeringPolicyAttachments = DnsFunctions.getSteeringPolicyAttachments(GetSteeringPolicyAttachmentsArgs.builder()
                .compartmentId(var_.compartment_id())
                .displayName(var_.steering_policy_attachment_display_name())
                .domain(var_.steering_policy_attachment_domain())
                .domainContains(var_.steering_policy_attachment_domain_contains())
                .id(var_.steering_policy_attachment_id())
                .state(var_.steering_policy_attachment_state())
                .steeringPolicyId(oci_dns_steering_policy.test_steering_policy().id())
                .timeCreatedGreaterThanOrEqualTo(var_.steering_policy_attachment_time_created_greater_than_or_equal_to())
                .timeCreatedLessThan(var_.steering_policy_attachment_time_created_less_than())
                .zoneId(oci_dns_zone.test_zone().id())
                .build());
    
        }
    }
    
    variables:
      testSteeringPolicyAttachments:
        fn::invoke:
          Function: oci:Dns:getSteeringPolicyAttachments
          Arguments:
            compartmentId: ${var.compartment_id}
            displayName: ${var.steering_policy_attachment_display_name}
            domain: ${var.steering_policy_attachment_domain}
            domainContains: ${var.steering_policy_attachment_domain_contains}
            id: ${var.steering_policy_attachment_id}
            state: ${var.steering_policy_attachment_state}
            steeringPolicyId: ${oci_dns_steering_policy.test_steering_policy.id}
            timeCreatedGreaterThanOrEqualTo: ${var.steering_policy_attachment_time_created_greater_than_or_equal_to}
            timeCreatedLessThan: ${var.steering_policy_attachment_time_created_less_than}
            zoneId: ${oci_dns_zone.test_zone.id}
    

    Using getSteeringPolicyAttachments

    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 getSteeringPolicyAttachments(args: GetSteeringPolicyAttachmentsArgs, opts?: InvokeOptions): Promise<GetSteeringPolicyAttachmentsResult>
    function getSteeringPolicyAttachmentsOutput(args: GetSteeringPolicyAttachmentsOutputArgs, opts?: InvokeOptions): Output<GetSteeringPolicyAttachmentsResult>
    def get_steering_policy_attachments(compartment_id: Optional[str] = None,
                                        display_name: Optional[str] = None,
                                        domain: Optional[str] = None,
                                        domain_contains: Optional[str] = None,
                                        filters: Optional[Sequence[_dns.GetSteeringPolicyAttachmentsFilter]] = None,
                                        id: Optional[str] = None,
                                        state: Optional[str] = None,
                                        steering_policy_id: Optional[str] = None,
                                        time_created_greater_than_or_equal_to: Optional[str] = None,
                                        time_created_less_than: Optional[str] = None,
                                        zone_id: Optional[str] = None,
                                        opts: Optional[InvokeOptions] = None) -> GetSteeringPolicyAttachmentsResult
    def get_steering_policy_attachments_output(compartment_id: Optional[pulumi.Input[str]] = None,
                                        display_name: Optional[pulumi.Input[str]] = None,
                                        domain: Optional[pulumi.Input[str]] = None,
                                        domain_contains: Optional[pulumi.Input[str]] = None,
                                        filters: Optional[pulumi.Input[Sequence[pulumi.Input[_dns.GetSteeringPolicyAttachmentsFilterArgs]]]] = None,
                                        id: Optional[pulumi.Input[str]] = None,
                                        state: Optional[pulumi.Input[str]] = None,
                                        steering_policy_id: Optional[pulumi.Input[str]] = None,
                                        time_created_greater_than_or_equal_to: Optional[pulumi.Input[str]] = None,
                                        time_created_less_than: Optional[pulumi.Input[str]] = None,
                                        zone_id: Optional[pulumi.Input[str]] = None,
                                        opts: Optional[InvokeOptions] = None) -> Output[GetSteeringPolicyAttachmentsResult]
    func GetSteeringPolicyAttachments(ctx *Context, args *GetSteeringPolicyAttachmentsArgs, opts ...InvokeOption) (*GetSteeringPolicyAttachmentsResult, error)
    func GetSteeringPolicyAttachmentsOutput(ctx *Context, args *GetSteeringPolicyAttachmentsOutputArgs, opts ...InvokeOption) GetSteeringPolicyAttachmentsResultOutput

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

    public static class GetSteeringPolicyAttachments 
    {
        public static Task<GetSteeringPolicyAttachmentsResult> InvokeAsync(GetSteeringPolicyAttachmentsArgs args, InvokeOptions? opts = null)
        public static Output<GetSteeringPolicyAttachmentsResult> Invoke(GetSteeringPolicyAttachmentsInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetSteeringPolicyAttachmentsResult> getSteeringPolicyAttachments(GetSteeringPolicyAttachmentsArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: oci:Dns/getSteeringPolicyAttachments:getSteeringPolicyAttachments
      arguments:
        # arguments dictionary

    The following arguments are supported:

    CompartmentId string
    The OCID of the compartment the resource belongs to.
    DisplayName string
    The displayName of a resource.
    Domain string
    Search by domain. Will match any record whose domain (case-insensitive) equals the provided value.
    DomainContains string
    Search by domain. Will match any record whose domain (case-insensitive) contains the provided value.
    Filters List<GetSteeringPolicyAttachmentsFilter>
    Id string
    The OCID of a resource.
    State string
    The state of a resource.
    SteeringPolicyId string
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    TimeCreatedGreaterThanOrEqualTo string
    An RFC 3339 timestamp that states all returned resources were created on or after the indicated time.
    TimeCreatedLessThan string
    An RFC 3339 timestamp that states all returned resources were created before the indicated time.
    ZoneId string
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    CompartmentId string
    The OCID of the compartment the resource belongs to.
    DisplayName string
    The displayName of a resource.
    Domain string
    Search by domain. Will match any record whose domain (case-insensitive) equals the provided value.
    DomainContains string
    Search by domain. Will match any record whose domain (case-insensitive) contains the provided value.
    Filters []GetSteeringPolicyAttachmentsFilter
    Id string
    The OCID of a resource.
    State string
    The state of a resource.
    SteeringPolicyId string
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    TimeCreatedGreaterThanOrEqualTo string
    An RFC 3339 timestamp that states all returned resources were created on or after the indicated time.
    TimeCreatedLessThan string
    An RFC 3339 timestamp that states all returned resources were created before the indicated time.
    ZoneId string
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartmentId String
    The OCID of the compartment the resource belongs to.
    displayName String
    The displayName of a resource.
    domain String
    Search by domain. Will match any record whose domain (case-insensitive) equals the provided value.
    domainContains String
    Search by domain. Will match any record whose domain (case-insensitive) contains the provided value.
    filters List<GetSteeringPolicyAttachmentsFilter>
    id String
    The OCID of a resource.
    state String
    The state of a resource.
    steeringPolicyId String
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    timeCreatedGreaterThanOrEqualTo String
    An RFC 3339 timestamp that states all returned resources were created on or after the indicated time.
    timeCreatedLessThan String
    An RFC 3339 timestamp that states all returned resources were created before the indicated time.
    zoneId String
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartmentId string
    The OCID of the compartment the resource belongs to.
    displayName string
    The displayName of a resource.
    domain string
    Search by domain. Will match any record whose domain (case-insensitive) equals the provided value.
    domainContains string
    Search by domain. Will match any record whose domain (case-insensitive) contains the provided value.
    filters GetSteeringPolicyAttachmentsFilter[]
    id string
    The OCID of a resource.
    state string
    The state of a resource.
    steeringPolicyId string
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    timeCreatedGreaterThanOrEqualTo string
    An RFC 3339 timestamp that states all returned resources were created on or after the indicated time.
    timeCreatedLessThan string
    An RFC 3339 timestamp that states all returned resources were created before the indicated time.
    zoneId string
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartment_id str
    The OCID of the compartment the resource belongs to.
    display_name str
    The displayName of a resource.
    domain str
    Search by domain. Will match any record whose domain (case-insensitive) equals the provided value.
    domain_contains str
    Search by domain. Will match any record whose domain (case-insensitive) contains the provided value.
    filters Sequence[dns.GetSteeringPolicyAttachmentsFilter]
    id str
    The OCID of a resource.
    state str
    The state of a resource.
    steering_policy_id str
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    time_created_greater_than_or_equal_to str
    An RFC 3339 timestamp that states all returned resources were created on or after the indicated time.
    time_created_less_than str
    An RFC 3339 timestamp that states all returned resources were created before the indicated time.
    zone_id str
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartmentId String
    The OCID of the compartment the resource belongs to.
    displayName String
    The displayName of a resource.
    domain String
    Search by domain. Will match any record whose domain (case-insensitive) equals the provided value.
    domainContains String
    Search by domain. Will match any record whose domain (case-insensitive) contains the provided value.
    filters List<Property Map>
    id String
    The OCID of a resource.
    state String
    The state of a resource.
    steeringPolicyId String
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    timeCreatedGreaterThanOrEqualTo String
    An RFC 3339 timestamp that states all returned resources were created on or after the indicated time.
    timeCreatedLessThan String
    An RFC 3339 timestamp that states all returned resources were created before the indicated time.
    zoneId String
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.

    getSteeringPolicyAttachments Result

    The following output properties are available:

    CompartmentId string
    The OCID of the compartment containing the steering policy attachment.
    SteeringPolicyAttachments List<GetSteeringPolicyAttachmentsSteeringPolicyAttachment>
    The list of steering_policy_attachments.
    DisplayName string
    A user-friendly name for the steering policy attachment. Does not have to be unique and can be changed. Avoid entering confidential information.
    Domain string
    DomainContains string
    Filters List<GetSteeringPolicyAttachmentsFilter>
    Id string
    The OCID of the resource.
    State string
    The current state of the resource.
    SteeringPolicyId string
    The OCID of the attached steering policy.
    TimeCreatedGreaterThanOrEqualTo string
    TimeCreatedLessThan string
    ZoneId string
    The OCID of the attached zone.
    CompartmentId string
    The OCID of the compartment containing the steering policy attachment.
    SteeringPolicyAttachments []GetSteeringPolicyAttachmentsSteeringPolicyAttachment
    The list of steering_policy_attachments.
    DisplayName string
    A user-friendly name for the steering policy attachment. Does not have to be unique and can be changed. Avoid entering confidential information.
    Domain string
    DomainContains string
    Filters []GetSteeringPolicyAttachmentsFilter
    Id string
    The OCID of the resource.
    State string
    The current state of the resource.
    SteeringPolicyId string
    The OCID of the attached steering policy.
    TimeCreatedGreaterThanOrEqualTo string
    TimeCreatedLessThan string
    ZoneId string
    The OCID of the attached zone.
    compartmentId String
    The OCID of the compartment containing the steering policy attachment.
    steeringPolicyAttachments List<GetSteeringPolicyAttachmentsSteeringPolicyAttachment>
    The list of steering_policy_attachments.
    displayName String
    A user-friendly name for the steering policy attachment. Does not have to be unique and can be changed. Avoid entering confidential information.
    domain String
    domainContains String
    filters List<GetSteeringPolicyAttachmentsFilter>
    id String
    The OCID of the resource.
    state String
    The current state of the resource.
    steeringPolicyId String
    The OCID of the attached steering policy.
    timeCreatedGreaterThanOrEqualTo String
    timeCreatedLessThan String
    zoneId String
    The OCID of the attached zone.
    compartmentId string
    The OCID of the compartment containing the steering policy attachment.
    steeringPolicyAttachments GetSteeringPolicyAttachmentsSteeringPolicyAttachment[]
    The list of steering_policy_attachments.
    displayName string
    A user-friendly name for the steering policy attachment. Does not have to be unique and can be changed. Avoid entering confidential information.
    domain string
    domainContains string
    filters GetSteeringPolicyAttachmentsFilter[]
    id string
    The OCID of the resource.
    state string
    The current state of the resource.
    steeringPolicyId string
    The OCID of the attached steering policy.
    timeCreatedGreaterThanOrEqualTo string
    timeCreatedLessThan string
    zoneId string
    The OCID of the attached zone.
    compartment_id str
    The OCID of the compartment containing the steering policy attachment.
    steering_policy_attachments Sequence[dns.GetSteeringPolicyAttachmentsSteeringPolicyAttachment]
    The list of steering_policy_attachments.
    display_name str
    A user-friendly name for the steering policy attachment. Does not have to be unique and can be changed. Avoid entering confidential information.
    domain str
    domain_contains str
    filters Sequence[dns.GetSteeringPolicyAttachmentsFilter]
    id str
    The OCID of the resource.
    state str
    The current state of the resource.
    steering_policy_id str
    The OCID of the attached steering policy.
    time_created_greater_than_or_equal_to str
    time_created_less_than str
    zone_id str
    The OCID of the attached zone.
    compartmentId String
    The OCID of the compartment containing the steering policy attachment.
    steeringPolicyAttachments List<Property Map>
    The list of steering_policy_attachments.
    displayName String
    A user-friendly name for the steering policy attachment. Does not have to be unique and can be changed. Avoid entering confidential information.
    domain String
    domainContains String
    filters List<Property Map>
    id String
    The OCID of the resource.
    state String
    The current state of the resource.
    steeringPolicyId String
    The OCID of the attached steering policy.
    timeCreatedGreaterThanOrEqualTo String
    timeCreatedLessThan String
    zoneId String
    The OCID of the attached zone.

    Supporting Types

    GetSteeringPolicyAttachmentsFilter

    Name string
    Values List<string>
    Regex bool
    Name string
    Values []string
    Regex bool
    name String
    values List<String>
    regex Boolean
    name string
    values string[]
    regex boolean
    name str
    values Sequence[str]
    regex bool
    name String
    values List<String>
    regex Boolean

    GetSteeringPolicyAttachmentsSteeringPolicyAttachment

    CompartmentId string
    The OCID of the compartment the resource belongs to.
    DisplayName string
    The displayName of a resource.
    DomainName string
    The attached domain within the attached zone.
    Id string
    The OCID of a resource.
    Rtypes List<string>
    The record types covered by the attachment at the domain. The set of record types is determined by aggregating the record types from the answers defined in the steering policy.
    Self string
    The canonical absolute URL of the resource.
    State string
    The state of a resource.
    SteeringPolicyId string
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    TimeCreated string
    The date and time the resource was created, expressed in RFC 3339 timestamp format.
    ZoneId string
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    CompartmentId string
    The OCID of the compartment the resource belongs to.
    DisplayName string
    The displayName of a resource.
    DomainName string
    The attached domain within the attached zone.
    Id string
    The OCID of a resource.
    Rtypes []string
    The record types covered by the attachment at the domain. The set of record types is determined by aggregating the record types from the answers defined in the steering policy.
    Self string
    The canonical absolute URL of the resource.
    State string
    The state of a resource.
    SteeringPolicyId string
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    TimeCreated string
    The date and time the resource was created, expressed in RFC 3339 timestamp format.
    ZoneId string
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartmentId String
    The OCID of the compartment the resource belongs to.
    displayName String
    The displayName of a resource.
    domainName String
    The attached domain within the attached zone.
    id String
    The OCID of a resource.
    rtypes List<String>
    The record types covered by the attachment at the domain. The set of record types is determined by aggregating the record types from the answers defined in the steering policy.
    self String
    The canonical absolute URL of the resource.
    state String
    The state of a resource.
    steeringPolicyId String
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    timeCreated String
    The date and time the resource was created, expressed in RFC 3339 timestamp format.
    zoneId String
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartmentId string
    The OCID of the compartment the resource belongs to.
    displayName string
    The displayName of a resource.
    domainName string
    The attached domain within the attached zone.
    id string
    The OCID of a resource.
    rtypes string[]
    The record types covered by the attachment at the domain. The set of record types is determined by aggregating the record types from the answers defined in the steering policy.
    self string
    The canonical absolute URL of the resource.
    state string
    The state of a resource.
    steeringPolicyId string
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    timeCreated string
    The date and time the resource was created, expressed in RFC 3339 timestamp format.
    zoneId string
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartment_id str
    The OCID of the compartment the resource belongs to.
    display_name str
    The displayName of a resource.
    domain_name str
    The attached domain within the attached zone.
    id str
    The OCID of a resource.
    rtypes Sequence[str]
    The record types covered by the attachment at the domain. The set of record types is determined by aggregating the record types from the answers defined in the steering policy.
    self str
    The canonical absolute URL of the resource.
    state str
    The state of a resource.
    steering_policy_id str
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    time_created str
    The date and time the resource was created, expressed in RFC 3339 timestamp format.
    zone_id str
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.
    compartmentId String
    The OCID of the compartment the resource belongs to.
    displayName String
    The displayName of a resource.
    domainName String
    The attached domain within the attached zone.
    id String
    The OCID of a resource.
    rtypes List<String>
    The record types covered by the attachment at the domain. The set of record types is determined by aggregating the record types from the answers defined in the steering policy.
    self String
    The canonical absolute URL of the resource.
    state String
    The state of a resource.
    steeringPolicyId String
    Search by steering policy OCID. Will match any resource whose steering policy ID matches the provided value.
    timeCreated String
    The date and time the resource was created, expressed in RFC 3339 timestamp format.
    zoneId String
    Search by zone OCID. Will match any resource whose zone ID matches the provided value.

    Package Details

    Repository
    oci pulumi/pulumi-oci
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the oci Terraform Provider.
    oci logo
    Oracle Cloud Infrastructure v1.32.0 published on Thursday, Apr 18, 2024 by Pulumi