1. Packages
  2. Oracle Cloud Infrastructure
  3. API Docs
  4. Email
  5. getDkims
Oracle Cloud Infrastructure v2.28.0 published on Thursday, Mar 27, 2025 by Pulumi

oci.Email.getDkims

Explore with Pulumi AI

Oracle Cloud Infrastructure v2.28.0 published on Thursday, Mar 27, 2025 by Pulumi

This data source provides the list of Dkims in Oracle Cloud Infrastructure Email service.

Lists DKIMs for an email domain.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as oci from "@pulumi/oci";

const testDkims = oci.Email.getDkims({
    emailDomainId: testEmailDomain.id,
    id: dkimId,
    name: dkimName,
    state: dkimState,
});
Copy
import pulumi
import pulumi_oci as oci

test_dkims = oci.Email.get_dkims(email_domain_id=test_email_domain["id"],
    id=dkim_id,
    name=dkim_name,
    state=dkim_state)
Copy
package main

import (
	"github.com/pulumi/pulumi-oci/sdk/v2/go/oci/email"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := email.GetDkims(ctx, &email.GetDkimsArgs{
			EmailDomainId: testEmailDomain.Id,
			Id:            pulumi.StringRef(dkimId),
			Name:          pulumi.StringRef(dkimName),
			State:         pulumi.StringRef(dkimState),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Oci = Pulumi.Oci;

return await Deployment.RunAsync(() => 
{
    var testDkims = Oci.Email.GetDkims.Invoke(new()
    {
        EmailDomainId = testEmailDomain.Id,
        Id = dkimId,
        Name = dkimName,
        State = dkimState,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.oci.Email.EmailFunctions;
import com.pulumi.oci.Email.inputs.GetDkimsArgs;
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 testDkims = EmailFunctions.getDkims(GetDkimsArgs.builder()
            .emailDomainId(testEmailDomain.id())
            .id(dkimId)
            .name(dkimName)
            .state(dkimState)
            .build());

    }
}
Copy
variables:
  testDkims:
    fn::invoke:
      function: oci:Email:getDkims
      arguments:
        emailDomainId: ${testEmailDomain.id}
        id: ${dkimId}
        name: ${dkimName}
        state: ${dkimState}
Copy

Using getDkims

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 getDkims(args: GetDkimsArgs, opts?: InvokeOptions): Promise<GetDkimsResult>
function getDkimsOutput(args: GetDkimsOutputArgs, opts?: InvokeOptions): Output<GetDkimsResult>
Copy
def get_dkims(email_domain_id: Optional[str] = None,
              filters: Optional[Sequence[_email.GetDkimsFilter]] = None,
              id: Optional[str] = None,
              name: Optional[str] = None,
              state: Optional[str] = None,
              opts: Optional[InvokeOptions] = None) -> GetDkimsResult
def get_dkims_output(email_domain_id: Optional[pulumi.Input[str]] = None,
              filters: Optional[pulumi.Input[Sequence[pulumi.Input[_email.GetDkimsFilterArgs]]]] = None,
              id: Optional[pulumi.Input[str]] = None,
              name: Optional[pulumi.Input[str]] = None,
              state: Optional[pulumi.Input[str]] = None,
              opts: Optional[InvokeOptions] = None) -> Output[GetDkimsResult]
Copy
func GetDkims(ctx *Context, args *GetDkimsArgs, opts ...InvokeOption) (*GetDkimsResult, error)
func GetDkimsOutput(ctx *Context, args *GetDkimsOutputArgs, opts ...InvokeOption) GetDkimsResultOutput
Copy

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

public static class GetDkims 
{
    public static Task<GetDkimsResult> InvokeAsync(GetDkimsArgs args, InvokeOptions? opts = null)
    public static Output<GetDkimsResult> Invoke(GetDkimsInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetDkimsResult> getDkims(GetDkimsArgs args, InvokeOptions options)
public static Output<GetDkimsResult> getDkims(GetDkimsArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: oci:Email/getDkims:getDkims
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

EmailDomainId This property is required. string
The OCID of the email domain to which this DKIM belongs.
Filters Changes to this property will trigger replacement. List<GetDkimsFilter>
Id string
A filter to only return resources that match the given id exactly.
Name string
A filter to only return resources that match the given name exactly.
State string
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
EmailDomainId This property is required. string
The OCID of the email domain to which this DKIM belongs.
Filters Changes to this property will trigger replacement. []GetDkimsFilter
Id string
A filter to only return resources that match the given id exactly.
Name string
A filter to only return resources that match the given name exactly.
State string
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
emailDomainId This property is required. String
The OCID of the email domain to which this DKIM belongs.
filters Changes to this property will trigger replacement. List<GetDkimsFilter>
id String
A filter to only return resources that match the given id exactly.
name String
A filter to only return resources that match the given name exactly.
state String
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
emailDomainId This property is required. string
The OCID of the email domain to which this DKIM belongs.
filters Changes to this property will trigger replacement. GetDkimsFilter[]
id string
A filter to only return resources that match the given id exactly.
name string
A filter to only return resources that match the given name exactly.
state string
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
email_domain_id This property is required. str
The OCID of the email domain to which this DKIM belongs.
filters Changes to this property will trigger replacement. Sequence[email.GetDkimsFilter]
id str
A filter to only return resources that match the given id exactly.
name str
A filter to only return resources that match the given name exactly.
state str
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
emailDomainId This property is required. String
The OCID of the email domain to which this DKIM belongs.
filters Changes to this property will trigger replacement. List<Property Map>
id String
A filter to only return resources that match the given id exactly.
name String
A filter to only return resources that match the given name exactly.
state String
Filter returned list by specified lifecycle state. This parameter is case-insensitive.

getDkims Result

The following output properties are available:

DkimCollections List<GetDkimsDkimCollection>
The list of dkim_collection.
EmailDomainId string
The OCID of the email domain that this DKIM belongs to.
Filters List<GetDkimsFilter>
Id string
The OCID of the DKIM.
Name string
The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
State string
The current state of the DKIM.
DkimCollections []GetDkimsDkimCollection
The list of dkim_collection.
EmailDomainId string
The OCID of the email domain that this DKIM belongs to.
Filters []GetDkimsFilter
Id string
The OCID of the DKIM.
Name string
The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
State string
The current state of the DKIM.
dkimCollections List<GetDkimsDkimCollection>
The list of dkim_collection.
emailDomainId String
The OCID of the email domain that this DKIM belongs to.
filters List<GetDkimsFilter>
id String
The OCID of the DKIM.
name String
The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
state String
The current state of the DKIM.
dkimCollections GetDkimsDkimCollection[]
The list of dkim_collection.
emailDomainId string
The OCID of the email domain that this DKIM belongs to.
filters GetDkimsFilter[]
id string
The OCID of the DKIM.
name string
The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
state string
The current state of the DKIM.
dkim_collections Sequence[email.GetDkimsDkimCollection]
The list of dkim_collection.
email_domain_id str
The OCID of the email domain that this DKIM belongs to.
filters Sequence[email.GetDkimsFilter]
id str
The OCID of the DKIM.
name str
The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
state str
The current state of the DKIM.
dkimCollections List<Property Map>
The list of dkim_collection.
emailDomainId String
The OCID of the email domain that this DKIM belongs to.
filters List<Property Map>
id String
The OCID of the DKIM.
name String
The DKIM selector. If the same domain is managed in more than one region, each region must use different selectors.
state String
The current state of the DKIM.

Supporting Types

GetDkimsDkimCollection

Items This property is required. List<GetDkimsDkimCollectionItem>
Items This property is required. []GetDkimsDkimCollectionItem
items This property is required. List<GetDkimsDkimCollectionItem>
items This property is required. GetDkimsDkimCollectionItem[]
items This property is required. List<Property Map>

GetDkimsDkimCollectionItem

CnameRecordValue This property is required. string
The DNS CNAME record value to provision to the DKIM DNS subdomain, when using the CNAME method for DKIM setup (preferred).
CompartmentId This property is required. string
The OCID of the compartment that contains this DKIM.
DefinedTags This property is required. Dictionary<string, string>
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations.CostCenter": "42"}
Description This property is required. string
The description of the DKIM. Avoid entering confidential information.
DnsSubdomainName This property is required. string
The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
EmailDomainId This property is required. string
The OCID of the email domain to which this DKIM belongs.
FreeformTags This property is required. Dictionary<string, string>
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}
Id This property is required. string
A filter to only return resources that match the given id exactly.
IsImported This property is required. bool
Indicates whether the DKIM was imported.
KeyLength This property is required. int
Length of the RSA key used in the DKIM.
LifecycleDetails This property is required. string
A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
Name This property is required. string
A filter to only return resources that match the given name exactly.
PrivateKey This property is required. string
State This property is required. string
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
SystemTags This property is required. Dictionary<string, string>
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: {"orcl-cloud.free-tier-retained": "true"}
TimeCreated This property is required. string
The time the DKIM was created. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ". Example: 2021-02-12T22:47:12.613Z
TimeUpdated This property is required. string
The time of the last change to the DKIM configuration, due to a state change or an update operation. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ".
TxtRecordValue This property is required. string
The DNS TXT record value to provision to the DKIM DNS subdomain in place of using a CNAME record. This is used in cases where a CNAME cannot be used, such as when the cnameRecordValue would exceed the maximum length for a DNS entry. You can also use this if you have an existing procedure to directly provision TXT records for DKIM. Many DNS APIs require you to break this string into segments of fewer than 255 characters.
CnameRecordValue This property is required. string
The DNS CNAME record value to provision to the DKIM DNS subdomain, when using the CNAME method for DKIM setup (preferred).
CompartmentId This property is required. string
The OCID of the compartment that contains this DKIM.
DefinedTags This property is required. map[string]string
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations.CostCenter": "42"}
Description This property is required. string
The description of the DKIM. Avoid entering confidential information.
DnsSubdomainName This property is required. string
The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
EmailDomainId This property is required. string
The OCID of the email domain to which this DKIM belongs.
FreeformTags This property is required. map[string]string
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}
Id This property is required. string
A filter to only return resources that match the given id exactly.
IsImported This property is required. bool
Indicates whether the DKIM was imported.
KeyLength This property is required. int
Length of the RSA key used in the DKIM.
LifecycleDetails This property is required. string
A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
Name This property is required. string
A filter to only return resources that match the given name exactly.
PrivateKey This property is required. string
State This property is required. string
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
SystemTags This property is required. map[string]string
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: {"orcl-cloud.free-tier-retained": "true"}
TimeCreated This property is required. string
The time the DKIM was created. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ". Example: 2021-02-12T22:47:12.613Z
TimeUpdated This property is required. string
The time of the last change to the DKIM configuration, due to a state change or an update operation. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ".
TxtRecordValue This property is required. string
The DNS TXT record value to provision to the DKIM DNS subdomain in place of using a CNAME record. This is used in cases where a CNAME cannot be used, such as when the cnameRecordValue would exceed the maximum length for a DNS entry. You can also use this if you have an existing procedure to directly provision TXT records for DKIM. Many DNS APIs require you to break this string into segments of fewer than 255 characters.
cnameRecordValue This property is required. String
The DNS CNAME record value to provision to the DKIM DNS subdomain, when using the CNAME method for DKIM setup (preferred).
compartmentId This property is required. String
The OCID of the compartment that contains this DKIM.
definedTags This property is required. Map<String,String>
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations.CostCenter": "42"}
description This property is required. String
The description of the DKIM. Avoid entering confidential information.
dnsSubdomainName This property is required. String
The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
emailDomainId This property is required. String
The OCID of the email domain to which this DKIM belongs.
freeformTags This property is required. Map<String,String>
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}
id This property is required. String
A filter to only return resources that match the given id exactly.
isImported This property is required. Boolean
Indicates whether the DKIM was imported.
keyLength This property is required. Integer
Length of the RSA key used in the DKIM.
lifecycleDetails This property is required. String
A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
name This property is required. String
A filter to only return resources that match the given name exactly.
privateKey This property is required. String
state This property is required. String
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
systemTags This property is required. Map<String,String>
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: {"orcl-cloud.free-tier-retained": "true"}
timeCreated This property is required. String
The time the DKIM was created. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ". Example: 2021-02-12T22:47:12.613Z
timeUpdated This property is required. String
The time of the last change to the DKIM configuration, due to a state change or an update operation. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ".
txtRecordValue This property is required. String
The DNS TXT record value to provision to the DKIM DNS subdomain in place of using a CNAME record. This is used in cases where a CNAME cannot be used, such as when the cnameRecordValue would exceed the maximum length for a DNS entry. You can also use this if you have an existing procedure to directly provision TXT records for DKIM. Many DNS APIs require you to break this string into segments of fewer than 255 characters.
cnameRecordValue This property is required. string
The DNS CNAME record value to provision to the DKIM DNS subdomain, when using the CNAME method for DKIM setup (preferred).
compartmentId This property is required. string
The OCID of the compartment that contains this DKIM.
definedTags This property is required. {[key: string]: string}
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations.CostCenter": "42"}
description This property is required. string
The description of the DKIM. Avoid entering confidential information.
dnsSubdomainName This property is required. string
The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
emailDomainId This property is required. string
The OCID of the email domain to which this DKIM belongs.
freeformTags This property is required. {[key: string]: string}
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}
id This property is required. string
A filter to only return resources that match the given id exactly.
isImported This property is required. boolean
Indicates whether the DKIM was imported.
keyLength This property is required. number
Length of the RSA key used in the DKIM.
lifecycleDetails This property is required. string
A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
name This property is required. string
A filter to only return resources that match the given name exactly.
privateKey This property is required. string
state This property is required. string
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
systemTags This property is required. {[key: string]: string}
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: {"orcl-cloud.free-tier-retained": "true"}
timeCreated This property is required. string
The time the DKIM was created. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ". Example: 2021-02-12T22:47:12.613Z
timeUpdated This property is required. string
The time of the last change to the DKIM configuration, due to a state change or an update operation. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ".
txtRecordValue This property is required. string
The DNS TXT record value to provision to the DKIM DNS subdomain in place of using a CNAME record. This is used in cases where a CNAME cannot be used, such as when the cnameRecordValue would exceed the maximum length for a DNS entry. You can also use this if you have an existing procedure to directly provision TXT records for DKIM. Many DNS APIs require you to break this string into segments of fewer than 255 characters.
cname_record_value This property is required. str
The DNS CNAME record value to provision to the DKIM DNS subdomain, when using the CNAME method for DKIM setup (preferred).
compartment_id This property is required. str
The OCID of the compartment that contains this DKIM.
defined_tags This property is required. Mapping[str, str]
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations.CostCenter": "42"}
description This property is required. str
The description of the DKIM. Avoid entering confidential information.
dns_subdomain_name This property is required. str
The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
email_domain_id This property is required. str
The OCID of the email domain to which this DKIM belongs.
freeform_tags This property is required. Mapping[str, str]
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}
id This property is required. str
A filter to only return resources that match the given id exactly.
is_imported This property is required. bool
Indicates whether the DKIM was imported.
key_length This property is required. int
Length of the RSA key used in the DKIM.
lifecycle_details This property is required. str
A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
name This property is required. str
A filter to only return resources that match the given name exactly.
private_key This property is required. str
state This property is required. str
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
system_tags This property is required. Mapping[str, str]
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: {"orcl-cloud.free-tier-retained": "true"}
time_created This property is required. str
The time the DKIM was created. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ". Example: 2021-02-12T22:47:12.613Z
time_updated This property is required. str
The time of the last change to the DKIM configuration, due to a state change or an update operation. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ".
txt_record_value This property is required. str
The DNS TXT record value to provision to the DKIM DNS subdomain in place of using a CNAME record. This is used in cases where a CNAME cannot be used, such as when the cnameRecordValue would exceed the maximum length for a DNS entry. You can also use this if you have an existing procedure to directly provision TXT records for DKIM. Many DNS APIs require you to break this string into segments of fewer than 255 characters.
cnameRecordValue This property is required. String
The DNS CNAME record value to provision to the DKIM DNS subdomain, when using the CNAME method for DKIM setup (preferred).
compartmentId This property is required. String
The OCID of the compartment that contains this DKIM.
definedTags This property is required. Map<String>
Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see Resource Tags. Example: {"Operations.CostCenter": "42"}
description This property is required. String
The description of the DKIM. Avoid entering confidential information.
dnsSubdomainName This property is required. String
The name of the DNS subdomain that must be provisioned to enable email recipients to verify DKIM signatures. It is usually created with a CNAME record set to the cnameRecordValue.
emailDomainId This property is required. String
The OCID of the email domain to which this DKIM belongs.
freeformTags This property is required. Map<String>
Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see Resource Tags. Example: {"Department": "Finance"}
id This property is required. String
A filter to only return resources that match the given id exactly.
isImported This property is required. Boolean
Indicates whether the DKIM was imported.
keyLength This property is required. Number
Length of the RSA key used in the DKIM.
lifecycleDetails This property is required. String
A message describing the current state in more detail. For example, can be used to provide actionable information for a resource.
name This property is required. String
A filter to only return resources that match the given name exactly.
privateKey This property is required. String
state This property is required. String
Filter returned list by specified lifecycle state. This parameter is case-insensitive.
systemTags This property is required. Map<String>
Usage of system tag keys. These predefined keys are scoped to namespaces. Example: {"orcl-cloud.free-tier-retained": "true"}
timeCreated This property is required. String
The time the DKIM was created. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ". Example: 2021-02-12T22:47:12.613Z
timeUpdated This property is required. String
The time of the last change to the DKIM configuration, due to a state change or an update operation. Times are expressed in RFC 3339 timestamp format, "YYYY-MM-ddThh:mmZ".
txtRecordValue This property is required. String
The DNS TXT record value to provision to the DKIM DNS subdomain in place of using a CNAME record. This is used in cases where a CNAME cannot be used, such as when the cnameRecordValue would exceed the maximum length for a DNS entry. You can also use this if you have an existing procedure to directly provision TXT records for DKIM. Many DNS APIs require you to break this string into segments of fewer than 255 characters.

GetDkimsFilter

Name This property is required. string
A filter to only return resources that match the given name exactly.
Values This property is required. List<string>
Regex bool
Name This property is required. string
A filter to only return resources that match the given name exactly.
Values This property is required. []string
Regex bool
name This property is required. String
A filter to only return resources that match the given name exactly.
values This property is required. List<String>
regex Boolean
name This property is required. string
A filter to only return resources that match the given name exactly.
values This property is required. string[]
regex boolean
name This property is required. str
A filter to only return resources that match the given name exactly.
values This property is required. Sequence[str]
regex bool
name This property is required. String
A filter to only return resources that match the given name exactly.
values This property is required. List<String>
regex Boolean

Package Details

Repository
oci pulumi/pulumi-oci
License
Apache-2.0
Notes
This Pulumi package is based on the oci Terraform Provider.
Oracle Cloud Infrastructure v2.28.0 published on Thursday, Mar 27, 2025 by Pulumi