1. Packages
  2. Azure Classic
  3. API Docs
  4. appplatform
  5. SpringCloudConfigurationService

We recommend using Azure Native.

Azure Classic v5.67.1 published on Tuesday, Feb 27, 2024 by Pulumi

azure.appplatform.SpringCloudConfigurationService

Explore with Pulumi AI

azure logo

We recommend using Azure Native.

Azure Classic v5.67.1 published on Tuesday, Feb 27, 2024 by Pulumi

    Manages a Spring Cloud Configuration Service.

    NOTE: This resource is applicable only for Spring Cloud Service with enterprise tier.

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Azure = Pulumi.Azure;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Azure.Core.ResourceGroup("example", new()
        {
            Name = "example",
            Location = "West Europe",
        });
    
        var exampleSpringCloudService = new Azure.AppPlatform.SpringCloudService("example", new()
        {
            Name = "example",
            Location = example.Location,
            ResourceGroupName = example.Name,
            SkuName = "E0",
        });
    
        var exampleSpringCloudConfigurationService = new Azure.AppPlatform.SpringCloudConfigurationService("example", new()
        {
            Name = "default",
            SpringCloudServiceId = exampleSpringCloudService.Id,
            Repositories = new[]
            {
                new Azure.AppPlatform.Inputs.SpringCloudConfigurationServiceRepositoryArgs
                {
                    Name = "fake",
                    Label = "master",
                    Patterns = new[]
                    {
                        "app/dev",
                    },
                    Uri = "https://github.com/Azure-Samples/piggymetrics",
                    SearchPaths = new[]
                    {
                        "dir1",
                        "dir2",
                    },
                    StrictHostKeyChecking = false,
                    Username = "adminuser",
                    Password = "H@Sh1CoR3!",
                },
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appplatform"
    	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
    			Name:     pulumi.String("example"),
    			Location: pulumi.String("West Europe"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleSpringCloudService, err := appplatform.NewSpringCloudService(ctx, "example", &appplatform.SpringCloudServiceArgs{
    			Name:              pulumi.String("example"),
    			Location:          example.Location,
    			ResourceGroupName: example.Name,
    			SkuName:           pulumi.String("E0"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = appplatform.NewSpringCloudConfigurationService(ctx, "example", &appplatform.SpringCloudConfigurationServiceArgs{
    			Name:                 pulumi.String("default"),
    			SpringCloudServiceId: exampleSpringCloudService.ID(),
    			Repositories: appplatform.SpringCloudConfigurationServiceRepositoryArray{
    				&appplatform.SpringCloudConfigurationServiceRepositoryArgs{
    					Name:  pulumi.String("fake"),
    					Label: pulumi.String("master"),
    					Patterns: pulumi.StringArray{
    						pulumi.String("app/dev"),
    					},
    					Uri: pulumi.String("https://github.com/Azure-Samples/piggymetrics"),
    					SearchPaths: pulumi.StringArray{
    						pulumi.String("dir1"),
    						pulumi.String("dir2"),
    					},
    					StrictHostKeyChecking: pulumi.Bool(false),
    					Username:              pulumi.String("adminuser"),
    					Password:              pulumi.String("H@Sh1CoR3!"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.azure.core.ResourceGroup;
    import com.pulumi.azure.core.ResourceGroupArgs;
    import com.pulumi.azure.appplatform.SpringCloudService;
    import com.pulumi.azure.appplatform.SpringCloudServiceArgs;
    import com.pulumi.azure.appplatform.SpringCloudConfigurationService;
    import com.pulumi.azure.appplatform.SpringCloudConfigurationServiceArgs;
    import com.pulumi.azure.appplatform.inputs.SpringCloudConfigurationServiceRepositoryArgs;
    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 ResourceGroup("example", ResourceGroupArgs.builder()        
                .name("example")
                .location("West Europe")
                .build());
    
            var exampleSpringCloudService = new SpringCloudService("exampleSpringCloudService", SpringCloudServiceArgs.builder()        
                .name("example")
                .location(example.location())
                .resourceGroupName(example.name())
                .skuName("E0")
                .build());
    
            var exampleSpringCloudConfigurationService = new SpringCloudConfigurationService("exampleSpringCloudConfigurationService", SpringCloudConfigurationServiceArgs.builder()        
                .name("default")
                .springCloudServiceId(exampleSpringCloudService.id())
                .repositories(SpringCloudConfigurationServiceRepositoryArgs.builder()
                    .name("fake")
                    .label("master")
                    .patterns("app/dev")
                    .uri("https://github.com/Azure-Samples/piggymetrics")
                    .searchPaths(                
                        "dir1",
                        "dir2")
                    .strictHostKeyChecking(false)
                    .username("adminuser")
                    .password("H@Sh1CoR3!")
                    .build())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_azure as azure
    
    example = azure.core.ResourceGroup("example",
        name="example",
        location="West Europe")
    example_spring_cloud_service = azure.appplatform.SpringCloudService("example",
        name="example",
        location=example.location,
        resource_group_name=example.name,
        sku_name="E0")
    example_spring_cloud_configuration_service = azure.appplatform.SpringCloudConfigurationService("example",
        name="default",
        spring_cloud_service_id=example_spring_cloud_service.id,
        repositories=[azure.appplatform.SpringCloudConfigurationServiceRepositoryArgs(
            name="fake",
            label="master",
            patterns=["app/dev"],
            uri="https://github.com/Azure-Samples/piggymetrics",
            search_paths=[
                "dir1",
                "dir2",
            ],
            strict_host_key_checking=False,
            username="adminuser",
            password="H@Sh1CoR3!",
        )])
    
    import * as pulumi from "@pulumi/pulumi";
    import * as azure from "@pulumi/azure";
    
    const example = new azure.core.ResourceGroup("example", {
        name: "example",
        location: "West Europe",
    });
    const exampleSpringCloudService = new azure.appplatform.SpringCloudService("example", {
        name: "example",
        location: example.location,
        resourceGroupName: example.name,
        skuName: "E0",
    });
    const exampleSpringCloudConfigurationService = new azure.appplatform.SpringCloudConfigurationService("example", {
        name: "default",
        springCloudServiceId: exampleSpringCloudService.id,
        repositories: [{
            name: "fake",
            label: "master",
            patterns: ["app/dev"],
            uri: "https://github.com/Azure-Samples/piggymetrics",
            searchPaths: [
                "dir1",
                "dir2",
            ],
            strictHostKeyChecking: false,
            username: "adminuser",
            password: "H@Sh1CoR3!",
        }],
    });
    
    resources:
      example:
        type: azure:core:ResourceGroup
        properties:
          name: example
          location: West Europe
      exampleSpringCloudService:
        type: azure:appplatform:SpringCloudService
        name: example
        properties:
          name: example
          location: ${example.location}
          resourceGroupName: ${example.name}
          skuName: E0
      exampleSpringCloudConfigurationService:
        type: azure:appplatform:SpringCloudConfigurationService
        name: example
        properties:
          name: default
          springCloudServiceId: ${exampleSpringCloudService.id}
          repositories:
            - name: fake
              label: master
              patterns:
                - app/dev
              uri: https://github.com/Azure-Samples/piggymetrics
              searchPaths:
                - dir1
                - dir2
              strictHostKeyChecking: false
              username: adminuser
              password: H@Sh1CoR3!
    

    Create SpringCloudConfigurationService Resource

    new SpringCloudConfigurationService(name: string, args: SpringCloudConfigurationServiceArgs, opts?: CustomResourceOptions);
    @overload
    def SpringCloudConfigurationService(resource_name: str,
                                        opts: Optional[ResourceOptions] = None,
                                        generation: Optional[str] = None,
                                        name: Optional[str] = None,
                                        repositories: Optional[Sequence[SpringCloudConfigurationServiceRepositoryArgs]] = None,
                                        spring_cloud_service_id: Optional[str] = None)
    @overload
    def SpringCloudConfigurationService(resource_name: str,
                                        args: SpringCloudConfigurationServiceArgs,
                                        opts: Optional[ResourceOptions] = None)
    func NewSpringCloudConfigurationService(ctx *Context, name string, args SpringCloudConfigurationServiceArgs, opts ...ResourceOption) (*SpringCloudConfigurationService, error)
    public SpringCloudConfigurationService(string name, SpringCloudConfigurationServiceArgs args, CustomResourceOptions? opts = null)
    public SpringCloudConfigurationService(String name, SpringCloudConfigurationServiceArgs args)
    public SpringCloudConfigurationService(String name, SpringCloudConfigurationServiceArgs args, CustomResourceOptions options)
    
    type: azure:appplatform:SpringCloudConfigurationService
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args SpringCloudConfigurationServiceArgs
    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 SpringCloudConfigurationServiceArgs
    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 SpringCloudConfigurationServiceArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args SpringCloudConfigurationServiceArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args SpringCloudConfigurationServiceArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

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

    SpringCloudServiceId string
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    Generation string
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    Name string
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    Repositories List<SpringCloudConfigurationServiceRepository>
    One or more repository blocks as defined below.
    SpringCloudServiceId string
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    Generation string
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    Name string
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    Repositories []SpringCloudConfigurationServiceRepositoryArgs
    One or more repository blocks as defined below.
    springCloudServiceId String
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation String
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name String
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories List<SpringCloudConfigurationServiceRepository>
    One or more repository blocks as defined below.
    springCloudServiceId string
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation string
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name string
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories SpringCloudConfigurationServiceRepository[]
    One or more repository blocks as defined below.
    spring_cloud_service_id str
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation str
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name str
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories Sequence[SpringCloudConfigurationServiceRepositoryArgs]
    One or more repository blocks as defined below.
    springCloudServiceId String
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation String
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name String
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories List<Property Map>
    One or more repository blocks as defined below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the SpringCloudConfigurationService 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 SpringCloudConfigurationService Resource

    Get an existing SpringCloudConfigurationService 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?: SpringCloudConfigurationServiceState, opts?: CustomResourceOptions): SpringCloudConfigurationService
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            generation: Optional[str] = None,
            name: Optional[str] = None,
            repositories: Optional[Sequence[SpringCloudConfigurationServiceRepositoryArgs]] = None,
            spring_cloud_service_id: Optional[str] = None) -> SpringCloudConfigurationService
    func GetSpringCloudConfigurationService(ctx *Context, name string, id IDInput, state *SpringCloudConfigurationServiceState, opts ...ResourceOption) (*SpringCloudConfigurationService, error)
    public static SpringCloudConfigurationService Get(string name, Input<string> id, SpringCloudConfigurationServiceState? state, CustomResourceOptions? opts = null)
    public static SpringCloudConfigurationService get(String name, Output<String> id, SpringCloudConfigurationServiceState 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:
    Generation string
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    Name string
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    Repositories List<SpringCloudConfigurationServiceRepository>
    One or more repository blocks as defined below.
    SpringCloudServiceId string
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    Generation string
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    Name string
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    Repositories []SpringCloudConfigurationServiceRepositoryArgs
    One or more repository blocks as defined below.
    SpringCloudServiceId string
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation String
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name String
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories List<SpringCloudConfigurationServiceRepository>
    One or more repository blocks as defined below.
    springCloudServiceId String
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation string
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name string
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories SpringCloudConfigurationServiceRepository[]
    One or more repository blocks as defined below.
    springCloudServiceId string
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation str
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name str
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories Sequence[SpringCloudConfigurationServiceRepositoryArgs]
    One or more repository blocks as defined below.
    spring_cloud_service_id str
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.
    generation String
    The generation of the Spring Cloud Configuration Service. Possible values are Gen1 and Gen2.
    name String
    The name which should be used for this Spring Cloud Configuration Service. The only possible value is default. Changing this forces a new Spring Cloud Configuration Service to be created.
    repositories List<Property Map>
    One or more repository blocks as defined below.
    springCloudServiceId String
    The ID of the Spring Cloud Service. Changing this forces a new Spring Cloud Configuration Service to be created.

    Supporting Types

    SpringCloudConfigurationServiceRepository, SpringCloudConfigurationServiceRepositoryArgs

    Label string
    Specifies the label of the repository.
    Name string
    Specifies the name which should be used for this repository.
    Patterns List<string>
    Specifies the collection of patterns of the repository.
    Uri string
    Specifies the URI of the repository.
    CaCertificateId string
    Specifies the ID of the Certificate Authority used when retrieving the Git Repository via HTTPS.
    HostKey string
    Specifies the SSH public key of git repository.
    HostKeyAlgorithm string
    Specifies the SSH key algorithm of git repository.
    Password string
    Specifies the password of git repository basic auth.
    PrivateKey string
    Specifies the SSH private key of git repository.
    SearchPaths List<string>
    Specifies a list of searching path of the repository
    StrictHostKeyChecking bool
    Specifies whether enable the strict host key checking.
    Username string
    Specifies the username of git repository basic auth.
    Label string
    Specifies the label of the repository.
    Name string
    Specifies the name which should be used for this repository.
    Patterns []string
    Specifies the collection of patterns of the repository.
    Uri string
    Specifies the URI of the repository.
    CaCertificateId string
    Specifies the ID of the Certificate Authority used when retrieving the Git Repository via HTTPS.
    HostKey string
    Specifies the SSH public key of git repository.
    HostKeyAlgorithm string
    Specifies the SSH key algorithm of git repository.
    Password string
    Specifies the password of git repository basic auth.
    PrivateKey string
    Specifies the SSH private key of git repository.
    SearchPaths []string
    Specifies a list of searching path of the repository
    StrictHostKeyChecking bool
    Specifies whether enable the strict host key checking.
    Username string
    Specifies the username of git repository basic auth.
    label String
    Specifies the label of the repository.
    name String
    Specifies the name which should be used for this repository.
    patterns List<String>
    Specifies the collection of patterns of the repository.
    uri String
    Specifies the URI of the repository.
    caCertificateId String
    Specifies the ID of the Certificate Authority used when retrieving the Git Repository via HTTPS.
    hostKey String
    Specifies the SSH public key of git repository.
    hostKeyAlgorithm String
    Specifies the SSH key algorithm of git repository.
    password String
    Specifies the password of git repository basic auth.
    privateKey String
    Specifies the SSH private key of git repository.
    searchPaths List<String>
    Specifies a list of searching path of the repository
    strictHostKeyChecking Boolean
    Specifies whether enable the strict host key checking.
    username String
    Specifies the username of git repository basic auth.
    label string
    Specifies the label of the repository.
    name string
    Specifies the name which should be used for this repository.
    patterns string[]
    Specifies the collection of patterns of the repository.
    uri string
    Specifies the URI of the repository.
    caCertificateId string
    Specifies the ID of the Certificate Authority used when retrieving the Git Repository via HTTPS.
    hostKey string
    Specifies the SSH public key of git repository.
    hostKeyAlgorithm string
    Specifies the SSH key algorithm of git repository.
    password string
    Specifies the password of git repository basic auth.
    privateKey string
    Specifies the SSH private key of git repository.
    searchPaths string[]
    Specifies a list of searching path of the repository
    strictHostKeyChecking boolean
    Specifies whether enable the strict host key checking.
    username string
    Specifies the username of git repository basic auth.
    label str
    Specifies the label of the repository.
    name str
    Specifies the name which should be used for this repository.
    patterns Sequence[str]
    Specifies the collection of patterns of the repository.
    uri str
    Specifies the URI of the repository.
    ca_certificate_id str
    Specifies the ID of the Certificate Authority used when retrieving the Git Repository via HTTPS.
    host_key str
    Specifies the SSH public key of git repository.
    host_key_algorithm str
    Specifies the SSH key algorithm of git repository.
    password str
    Specifies the password of git repository basic auth.
    private_key str
    Specifies the SSH private key of git repository.
    search_paths Sequence[str]
    Specifies a list of searching path of the repository
    strict_host_key_checking bool
    Specifies whether enable the strict host key checking.
    username str
    Specifies the username of git repository basic auth.
    label String
    Specifies the label of the repository.
    name String
    Specifies the name which should be used for this repository.
    patterns List<String>
    Specifies the collection of patterns of the repository.
    uri String
    Specifies the URI of the repository.
    caCertificateId String
    Specifies the ID of the Certificate Authority used when retrieving the Git Repository via HTTPS.
    hostKey String
    Specifies the SSH public key of git repository.
    hostKeyAlgorithm String
    Specifies the SSH key algorithm of git repository.
    password String
    Specifies the password of git repository basic auth.
    privateKey String
    Specifies the SSH private key of git repository.
    searchPaths List<String>
    Specifies a list of searching path of the repository
    strictHostKeyChecking Boolean
    Specifies whether enable the strict host key checking.
    username String
    Specifies the username of git repository basic auth.

    Import

    Spring Cloud Configuration Services can be imported using the resource id, e.g.

    $ pulumi import azure:appplatform/springCloudConfigurationService:SpringCloudConfigurationService example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resourceGroup1/providers/Microsoft.AppPlatform/spring/service1/configurationServices/configurationService1
    

    Package Details

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

    We recommend using Azure Native.

    Azure Classic v5.67.1 published on Tuesday, Feb 27, 2024 by Pulumi