1. Packages
  2. AWS Classic
  3. API Docs
  4. guardduty
  5. MalwareProtectionPlan

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.42.0 published on Wednesday, Jun 26, 2024 by Pulumi

aws.guardduty.MalwareProtectionPlan

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.42.0 published on Wednesday, Jun 26, 2024 by Pulumi

    Provides a resource to manage a GuardDuty malware protection plan.

    Example Usage

    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    Coming soon!
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.guardduty.MalwareProtectionPlan;
    import com.pulumi.aws.guardduty.MalwareProtectionPlanArgs;
    import com.pulumi.aws.guardduty.inputs.MalwareProtectionPlanProtectedResourceArgs;
    import com.pulumi.aws.guardduty.inputs.MalwareProtectionPlanProtectedResourceS3BucketArgs;
    import com.pulumi.aws.guardduty.inputs.MalwareProtectionPlanActionArgs;
    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) {
            var example = new MalwareProtectionPlan("example", MalwareProtectionPlanArgs.builder()
                .role(exampleAwsIamRole.arn())
                .protectedResource(MalwareProtectionPlanProtectedResourceArgs.builder()
                    .s3Bucket(MalwareProtectionPlanProtectedResourceS3BucketArgs.builder()
                        .bucketName(exampleAwsS3Bucket.id())
                        .objectPrefixes(                    
                            "example1",
                            "example2")
                        .build())
                    .build())
                .actions(MalwareProtectionPlanActionArgs.builder()
                    .tagging(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
                    .build())
                .tags(Map.of("Name", "example"))
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:guardduty:MalwareProtectionPlan
        properties:
          role: ${exampleAwsIamRole.arn}
          protectedResource:
            s3Bucket:
              bucketName: ${exampleAwsS3Bucket.id}
              objectPrefixes:
                - example1
                - example2
          actions:
            - tagging:
                - status: ENABLED
          tags:
            Name: example
    

    Create MalwareProtectionPlan Resource

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

    Constructor syntax

    new MalwareProtectionPlan(name: string, args: MalwareProtectionPlanArgs, opts?: CustomResourceOptions);
    @overload
    def MalwareProtectionPlan(resource_name: str,
                              args: MalwareProtectionPlanArgs,
                              opts: Optional[ResourceOptions] = None)
    
    @overload
    def MalwareProtectionPlan(resource_name: str,
                              opts: Optional[ResourceOptions] = None,
                              role: Optional[str] = None,
                              actions: Optional[Sequence[MalwareProtectionPlanActionArgs]] = None,
                              protected_resource: Optional[MalwareProtectionPlanProtectedResourceArgs] = None,
                              tags: Optional[Mapping[str, str]] = None)
    func NewMalwareProtectionPlan(ctx *Context, name string, args MalwareProtectionPlanArgs, opts ...ResourceOption) (*MalwareProtectionPlan, error)
    public MalwareProtectionPlan(string name, MalwareProtectionPlanArgs args, CustomResourceOptions? opts = null)
    public MalwareProtectionPlan(String name, MalwareProtectionPlanArgs args)
    public MalwareProtectionPlan(String name, MalwareProtectionPlanArgs args, CustomResourceOptions options)
    
    type: aws:guardduty:MalwareProtectionPlan
    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 MalwareProtectionPlanArgs
    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 MalwareProtectionPlanArgs
    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 MalwareProtectionPlanArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args MalwareProtectionPlanArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args MalwareProtectionPlanArgs
    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 malwareProtectionPlanResource = new Aws.GuardDuty.MalwareProtectionPlan("malwareProtectionPlanResource", new()
    {
        Role = "string",
        Actions = new[]
        {
            new Aws.GuardDuty.Inputs.MalwareProtectionPlanActionArgs
            {
                Taggings = new[]
                {
                    "any",
                },
            },
        },
        ProtectedResource = new Aws.GuardDuty.Inputs.MalwareProtectionPlanProtectedResourceArgs
        {
            S3Bucket = new Aws.GuardDuty.Inputs.MalwareProtectionPlanProtectedResourceS3BucketArgs
            {
                BucketName = "string",
                ObjectPrefixes = new[]
                {
                    "string",
                },
            },
        },
        Tags = 
        {
            { "string", "string" },
        },
    });
    
    example, err := guardduty.NewMalwareProtectionPlan(ctx, "malwareProtectionPlanResource", &guardduty.MalwareProtectionPlanArgs{
    	Role: pulumi.String("string"),
    	Actions: guardduty.MalwareProtectionPlanActionArray{
    		&guardduty.MalwareProtectionPlanActionArgs{
    			Taggings: pulumi.Array{
    				pulumi.Any("any"),
    			},
    		},
    	},
    	ProtectedResource: &guardduty.MalwareProtectionPlanProtectedResourceArgs{
    		S3Bucket: &guardduty.MalwareProtectionPlanProtectedResourceS3BucketArgs{
    			BucketName: pulumi.String("string"),
    			ObjectPrefixes: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    })
    
    var malwareProtectionPlanResource = new MalwareProtectionPlan("malwareProtectionPlanResource", MalwareProtectionPlanArgs.builder()
        .role("string")
        .actions(MalwareProtectionPlanActionArgs.builder()
            .taggings("any")
            .build())
        .protectedResource(MalwareProtectionPlanProtectedResourceArgs.builder()
            .s3Bucket(MalwareProtectionPlanProtectedResourceS3BucketArgs.builder()
                .bucketName("string")
                .objectPrefixes("string")
                .build())
            .build())
        .tags(Map.of("string", "string"))
        .build());
    
    malware_protection_plan_resource = aws.guardduty.MalwareProtectionPlan("malwareProtectionPlanResource",
        role="string",
        actions=[{
            "taggings": ["any"],
        }],
        protected_resource={
            "s3Bucket": {
                "bucketName": "string",
                "objectPrefixes": ["string"],
            },
        },
        tags={
            "string": "string",
        })
    
    const malwareProtectionPlanResource = new aws.guardduty.MalwareProtectionPlan("malwareProtectionPlanResource", {
        role: "string",
        actions: [{
            taggings: ["any"],
        }],
        protectedResource: {
            s3Bucket: {
                bucketName: "string",
                objectPrefixes: ["string"],
            },
        },
        tags: {
            string: "string",
        },
    });
    
    type: aws:guardduty:MalwareProtectionPlan
    properties:
        actions:
            - taggings:
                - any
        protectedResource:
            s3Bucket:
                bucketName: string
                objectPrefixes:
                    - string
        role: string
        tags:
            string: string
    

    MalwareProtectionPlan Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The MalwareProtectionPlan resource accepts the following input properties:

    Role string
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    Actions List<MalwareProtectionPlanAction>
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    ProtectedResource MalwareProtectionPlanProtectedResource
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    Tags Dictionary<string, string>
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    Role string
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    Actions []MalwareProtectionPlanActionArgs
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    ProtectedResource MalwareProtectionPlanProtectedResourceArgs
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    Tags map[string]string
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    role String
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    actions List<MalwareProtectionPlanAction>
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    protectedResource MalwareProtectionPlanProtectedResource
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    tags Map<String,String>
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    role string
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    actions MalwareProtectionPlanAction[]
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    protectedResource MalwareProtectionPlanProtectedResource
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    tags {[key: string]: string}
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    role str
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    actions Sequence[MalwareProtectionPlanActionArgs]
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    protected_resource MalwareProtectionPlanProtectedResourceArgs
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    tags Mapping[str, str]
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    role String
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    actions List<Property Map>
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    protectedResource Property Map
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    tags Map<String>
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    Outputs

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

    Arn string
    The ARN of the GuardDuty malware protection plan
    CreatedAt string
    The timestamp when the Malware Protection plan resource was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    TagsAll Dictionary<string, string>

    Deprecated: Please use tags instead.

    Arn string
    The ARN of the GuardDuty malware protection plan
    CreatedAt string
    The timestamp when the Malware Protection plan resource was created.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    TagsAll map[string]string

    Deprecated: Please use tags instead.

    arn String
    The ARN of the GuardDuty malware protection plan
    createdAt String
    The timestamp when the Malware Protection plan resource was created.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tagsAll Map<String,String>

    Deprecated: Please use tags instead.

    arn string
    The ARN of the GuardDuty malware protection plan
    createdAt string
    The timestamp when the Malware Protection plan resource was created.
    id string
    The provider-assigned unique ID for this managed resource.
    status string
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tagsAll {[key: string]: string}

    Deprecated: Please use tags instead.

    arn str
    The ARN of the GuardDuty malware protection plan
    created_at str
    The timestamp when the Malware Protection plan resource was created.
    id str
    The provider-assigned unique ID for this managed resource.
    status str
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tags_all Mapping[str, str]

    Deprecated: Please use tags instead.

    arn String
    The ARN of the GuardDuty malware protection plan
    createdAt String
    The timestamp when the Malware Protection plan resource was created.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tagsAll Map<String>

    Deprecated: Please use tags instead.

    Look up Existing MalwareProtectionPlan Resource

    Get an existing MalwareProtectionPlan 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?: MalwareProtectionPlanState, opts?: CustomResourceOptions): MalwareProtectionPlan
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            actions: Optional[Sequence[MalwareProtectionPlanActionArgs]] = None,
            arn: Optional[str] = None,
            created_at: Optional[str] = None,
            protected_resource: Optional[MalwareProtectionPlanProtectedResourceArgs] = None,
            role: Optional[str] = None,
            status: Optional[str] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None) -> MalwareProtectionPlan
    func GetMalwareProtectionPlan(ctx *Context, name string, id IDInput, state *MalwareProtectionPlanState, opts ...ResourceOption) (*MalwareProtectionPlan, error)
    public static MalwareProtectionPlan Get(string name, Input<string> id, MalwareProtectionPlanState? state, CustomResourceOptions? opts = null)
    public static MalwareProtectionPlan get(String name, Output<String> id, MalwareProtectionPlanState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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:
    Actions List<MalwareProtectionPlanAction>
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    Arn string
    The ARN of the GuardDuty malware protection plan
    CreatedAt string
    The timestamp when the Malware Protection plan resource was created.
    ProtectedResource MalwareProtectionPlanProtectedResource
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    Role string
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    Status string
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    Tags Dictionary<string, string>
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll Dictionary<string, string>

    Deprecated: Please use tags instead.

    Actions []MalwareProtectionPlanActionArgs
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    Arn string
    The ARN of the GuardDuty malware protection plan
    CreatedAt string
    The timestamp when the Malware Protection plan resource was created.
    ProtectedResource MalwareProtectionPlanProtectedResourceArgs
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    Role string
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    Status string
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    Tags map[string]string
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll map[string]string

    Deprecated: Please use tags instead.

    actions List<MalwareProtectionPlanAction>
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    arn String
    The ARN of the GuardDuty malware protection plan
    createdAt String
    The timestamp when the Malware Protection plan resource was created.
    protectedResource MalwareProtectionPlanProtectedResource
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    role String
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    status String
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tags Map<String,String>
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String,String>

    Deprecated: Please use tags instead.

    actions MalwareProtectionPlanAction[]
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    arn string
    The ARN of the GuardDuty malware protection plan
    createdAt string
    The timestamp when the Malware Protection plan resource was created.
    protectedResource MalwareProtectionPlanProtectedResource
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    role string
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    status string
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tags {[key: string]: string}
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll {[key: string]: string}

    Deprecated: Please use tags instead.

    actions Sequence[MalwareProtectionPlanActionArgs]
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    arn str
    The ARN of the GuardDuty malware protection plan
    created_at str
    The timestamp when the Malware Protection plan resource was created.
    protected_resource MalwareProtectionPlanProtectedResourceArgs
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    role str
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    status str
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tags Mapping[str, str]
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tags_all Mapping[str, str]

    Deprecated: Please use tags instead.

    actions List<Property Map>
    Information about whether the tags will be added to the S3 object after scanning. See actions below.
    arn String
    The ARN of the GuardDuty malware protection plan
    createdAt String
    The timestamp when the Malware Protection plan resource was created.
    protectedResource Property Map
    Information about the protected resource that is associated with the created Malware Protection plan. Presently, S3Bucket is the only supported protected resource. See protected_resource below.
    role String
    The IAM role that includes the permissions required to scan and add tags to the associated protected resource.
    status String
    The GuardDuty malware protection plan status. Valid values are ACTIVE, WARNING, and ERROR.
    tags Map<String>
    Key-value mapping of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String>

    Deprecated: Please use tags instead.

    Supporting Types

    MalwareProtectionPlanAction, MalwareProtectionPlanActionArgs

    Taggings List<object>
    Indicates whether the scanned S3 object will have tags about the scan result. See tagging below.
    Taggings []interface{}
    Indicates whether the scanned S3 object will have tags about the scan result. See tagging below.
    taggings List<Object>
    Indicates whether the scanned S3 object will have tags about the scan result. See tagging below.
    taggings any[]
    Indicates whether the scanned S3 object will have tags about the scan result. See tagging below.
    taggings Sequence[Any]
    Indicates whether the scanned S3 object will have tags about the scan result. See tagging below.
    taggings List<Any>
    Indicates whether the scanned S3 object will have tags about the scan result. See tagging below.

    MalwareProtectionPlanProtectedResource, MalwareProtectionPlanProtectedResourceArgs

    S3Bucket MalwareProtectionPlanProtectedResourceS3Bucket
    Information about the protected S3 bucket resource. See s3_bucket below.
    S3Bucket MalwareProtectionPlanProtectedResourceS3Bucket
    Information about the protected S3 bucket resource. See s3_bucket below.
    s3Bucket MalwareProtectionPlanProtectedResourceS3Bucket
    Information about the protected S3 bucket resource. See s3_bucket below.
    s3Bucket MalwareProtectionPlanProtectedResourceS3Bucket
    Information about the protected S3 bucket resource. See s3_bucket below.
    s3_bucket MalwareProtectionPlanProtectedResourceS3Bucket
    Information about the protected S3 bucket resource. See s3_bucket below.
    s3Bucket Property Map
    Information about the protected S3 bucket resource. See s3_bucket below.

    MalwareProtectionPlanProtectedResourceS3Bucket, MalwareProtectionPlanProtectedResourceS3BucketArgs

    BucketName string
    Name of the S3 bucket.
    ObjectPrefixes List<string>
    The list of object prefixes that specify the S3 objects that will be scanned.
    BucketName string
    Name of the S3 bucket.
    ObjectPrefixes []string
    The list of object prefixes that specify the S3 objects that will be scanned.
    bucketName String
    Name of the S3 bucket.
    objectPrefixes List<String>
    The list of object prefixes that specify the S3 objects that will be scanned.
    bucketName string
    Name of the S3 bucket.
    objectPrefixes string[]
    The list of object prefixes that specify the S3 objects that will be scanned.
    bucket_name str
    Name of the S3 bucket.
    object_prefixes Sequence[str]
    The list of object prefixes that specify the S3 objects that will be scanned.
    bucketName String
    Name of the S3 bucket.
    objectPrefixes List<String>
    The list of object prefixes that specify the S3 objects that will be scanned.

    Import

    Using pulumi import, import GuardDuty malware protection plans using their IDs. For example:

    $ pulumi import aws:guardduty/malwareProtectionPlan:MalwareProtectionPlan example 1234567890abcdef0123
    

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

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.42.0 published on Wednesday, Jun 26, 2024 by Pulumi