1. Packages
  2. OpenStack
  3. API Docs
  4. keymanager
  5. ContainerV1
OpenStack v4.0.0 published on Tuesday, May 21, 2024 by Pulumi

openstack.keymanager.ContainerV1

Explore with Pulumi AI

openstack logo
OpenStack v4.0.0 published on Tuesday, May 21, 2024 by Pulumi

    Manages a V1 Barbican container resource within OpenStack.

    Example Usage

    Simple secret

    The container with the TLS certificates, which can be used by the loadbalancer HTTPS listener.

    import * as pulumi from "@pulumi/pulumi";
    import * as openstack from "@pulumi/openstack";
    import * as std from "@pulumi/std";
    
    const certificate1 = new openstack.keymanager.SecretV1("certificate_1", {
        name: "certificate",
        payload: std.file({
            input: "cert.pem",
        }).then(invoke => invoke.result),
        secretType: "certificate",
        payloadContentType: "text/plain",
    });
    const privateKey1 = new openstack.keymanager.SecretV1("private_key_1", {
        name: "private_key",
        payload: std.file({
            input: "cert-key.pem",
        }).then(invoke => invoke.result),
        secretType: "private",
        payloadContentType: "text/plain",
    });
    const intermediate1 = new openstack.keymanager.SecretV1("intermediate_1", {
        name: "intermediate",
        payload: std.file({
            input: "intermediate-ca.pem",
        }).then(invoke => invoke.result),
        secretType: "certificate",
        payloadContentType: "text/plain",
    });
    const tls1 = new openstack.keymanager.ContainerV1("tls_1", {
        name: "tls",
        type: "certificate",
        secretRefs: [
            {
                name: "certificate",
                secretRef: certificate1.secretRef,
            },
            {
                name: "private_key",
                secretRef: privateKey1.secretRef,
            },
            {
                name: "intermediates",
                secretRef: intermediate1.secretRef,
            },
        ],
    });
    const subnet1 = openstack.networking.getSubnet({
        name: "my-subnet",
    });
    const lb1 = new openstack.loadbalancer.LoadBalancer("lb_1", {
        name: "loadbalancer",
        vipSubnetId: subnet1.then(subnet1 => subnet1.id),
    });
    const listener1 = new openstack.loadbalancer.Listener("listener_1", {
        name: "https",
        protocol: "TERMINATED_HTTPS",
        protocolPort: 443,
        loadbalancerId: lb1.id,
        defaultTlsContainerRef: tls1.containerRef,
    });
    
    import pulumi
    import pulumi_openstack as openstack
    import pulumi_std as std
    
    certificate1 = openstack.keymanager.SecretV1("certificate_1",
        name="certificate",
        payload=std.file(input="cert.pem").result,
        secret_type="certificate",
        payload_content_type="text/plain")
    private_key1 = openstack.keymanager.SecretV1("private_key_1",
        name="private_key",
        payload=std.file(input="cert-key.pem").result,
        secret_type="private",
        payload_content_type="text/plain")
    intermediate1 = openstack.keymanager.SecretV1("intermediate_1",
        name="intermediate",
        payload=std.file(input="intermediate-ca.pem").result,
        secret_type="certificate",
        payload_content_type="text/plain")
    tls1 = openstack.keymanager.ContainerV1("tls_1",
        name="tls",
        type="certificate",
        secret_refs=[
            openstack.keymanager.ContainerV1SecretRefArgs(
                name="certificate",
                secret_ref=certificate1.secret_ref,
            ),
            openstack.keymanager.ContainerV1SecretRefArgs(
                name="private_key",
                secret_ref=private_key1.secret_ref,
            ),
            openstack.keymanager.ContainerV1SecretRefArgs(
                name="intermediates",
                secret_ref=intermediate1.secret_ref,
            ),
        ])
    subnet1 = openstack.networking.get_subnet(name="my-subnet")
    lb1 = openstack.loadbalancer.LoadBalancer("lb_1",
        name="loadbalancer",
        vip_subnet_id=subnet1.id)
    listener1 = openstack.loadbalancer.Listener("listener_1",
        name="https",
        protocol="TERMINATED_HTTPS",
        protocol_port=443,
        loadbalancer_id=lb1.id,
        default_tls_container_ref=tls1.container_ref)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager"
    	"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/loadbalancer"
    	"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/networking"
    	"github.com/pulumi/pulumi-std/sdk/go/std"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		invokeFile, err := std.File(ctx, &std.FileArgs{
    			Input: "cert.pem",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		certificate1, err := keymanager.NewSecretV1(ctx, "certificate_1", &keymanager.SecretV1Args{
    			Name:               pulumi.String("certificate"),
    			Payload:            invokeFile.Result,
    			SecretType:         pulumi.String("certificate"),
    			PayloadContentType: pulumi.String("text/plain"),
    		})
    		if err != nil {
    			return err
    		}
    		invokeFile1, err := std.File(ctx, &std.FileArgs{
    			Input: "cert-key.pem",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		privateKey1, err := keymanager.NewSecretV1(ctx, "private_key_1", &keymanager.SecretV1Args{
    			Name:               pulumi.String("private_key"),
    			Payload:            invokeFile1.Result,
    			SecretType:         pulumi.String("private"),
    			PayloadContentType: pulumi.String("text/plain"),
    		})
    		if err != nil {
    			return err
    		}
    		invokeFile2, err := std.File(ctx, &std.FileArgs{
    			Input: "intermediate-ca.pem",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		intermediate1, err := keymanager.NewSecretV1(ctx, "intermediate_1", &keymanager.SecretV1Args{
    			Name:               pulumi.String("intermediate"),
    			Payload:            invokeFile2.Result,
    			SecretType:         pulumi.String("certificate"),
    			PayloadContentType: pulumi.String("text/plain"),
    		})
    		if err != nil {
    			return err
    		}
    		tls1, err := keymanager.NewContainerV1(ctx, "tls_1", &keymanager.ContainerV1Args{
    			Name: pulumi.String("tls"),
    			Type: pulumi.String("certificate"),
    			SecretRefs: keymanager.ContainerV1SecretRefArray{
    				&keymanager.ContainerV1SecretRefArgs{
    					Name:      pulumi.String("certificate"),
    					SecretRef: certificate1.SecretRef,
    				},
    				&keymanager.ContainerV1SecretRefArgs{
    					Name:      pulumi.String("private_key"),
    					SecretRef: privateKey1.SecretRef,
    				},
    				&keymanager.ContainerV1SecretRefArgs{
    					Name:      pulumi.String("intermediates"),
    					SecretRef: intermediate1.SecretRef,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		subnet1, err := networking.LookupSubnet(ctx, &networking.LookupSubnetArgs{
    			Name: pulumi.StringRef("my-subnet"),
    		}, nil)
    		if err != nil {
    			return err
    		}
    		lb1, err := loadbalancer.NewLoadBalancer(ctx, "lb_1", &loadbalancer.LoadBalancerArgs{
    			Name:        pulumi.String("loadbalancer"),
    			VipSubnetId: pulumi.String(subnet1.Id),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = loadbalancer.NewListener(ctx, "listener_1", &loadbalancer.ListenerArgs{
    			Name:                   pulumi.String("https"),
    			Protocol:               pulumi.String("TERMINATED_HTTPS"),
    			ProtocolPort:           pulumi.Int(443),
    			LoadbalancerId:         lb1.ID(),
    			DefaultTlsContainerRef: tls1.ContainerRef,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using OpenStack = Pulumi.OpenStack;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        var certificate1 = new OpenStack.KeyManager.SecretV1("certificate_1", new()
        {
            Name = "certificate",
            Payload = Std.File.Invoke(new()
            {
                Input = "cert.pem",
            }).Apply(invoke => invoke.Result),
            SecretType = "certificate",
            PayloadContentType = "text/plain",
        });
    
        var privateKey1 = new OpenStack.KeyManager.SecretV1("private_key_1", new()
        {
            Name = "private_key",
            Payload = Std.File.Invoke(new()
            {
                Input = "cert-key.pem",
            }).Apply(invoke => invoke.Result),
            SecretType = "private",
            PayloadContentType = "text/plain",
        });
    
        var intermediate1 = new OpenStack.KeyManager.SecretV1("intermediate_1", new()
        {
            Name = "intermediate",
            Payload = Std.File.Invoke(new()
            {
                Input = "intermediate-ca.pem",
            }).Apply(invoke => invoke.Result),
            SecretType = "certificate",
            PayloadContentType = "text/plain",
        });
    
        var tls1 = new OpenStack.KeyManager.ContainerV1("tls_1", new()
        {
            Name = "tls",
            Type = "certificate",
            SecretRefs = new[]
            {
                new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
                {
                    Name = "certificate",
                    SecretRef = certificate1.SecretRef,
                },
                new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
                {
                    Name = "private_key",
                    SecretRef = privateKey1.SecretRef,
                },
                new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
                {
                    Name = "intermediates",
                    SecretRef = intermediate1.SecretRef,
                },
            },
        });
    
        var subnet1 = OpenStack.Networking.GetSubnet.Invoke(new()
        {
            Name = "my-subnet",
        });
    
        var lb1 = new OpenStack.LoadBalancer.LoadBalancer("lb_1", new()
        {
            Name = "loadbalancer",
            VipSubnetId = subnet1.Apply(getSubnetResult => getSubnetResult.Id),
        });
    
        var listener1 = new OpenStack.LoadBalancer.Listener("listener_1", new()
        {
            Name = "https",
            Protocol = "TERMINATED_HTTPS",
            ProtocolPort = 443,
            LoadbalancerId = lb1.Id,
            DefaultTlsContainerRef = tls1.ContainerRef,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.openstack.keymanager.SecretV1;
    import com.pulumi.openstack.keymanager.SecretV1Args;
    import com.pulumi.openstack.keymanager.ContainerV1;
    import com.pulumi.openstack.keymanager.ContainerV1Args;
    import com.pulumi.openstack.keymanager.inputs.ContainerV1SecretRefArgs;
    import com.pulumi.openstack.networking.NetworkingFunctions;
    import com.pulumi.openstack.networking.inputs.GetSubnetArgs;
    import com.pulumi.openstack.loadbalancer.LoadBalancer;
    import com.pulumi.openstack.loadbalancer.LoadBalancerArgs;
    import com.pulumi.openstack.loadbalancer.Listener;
    import com.pulumi.openstack.loadbalancer.ListenerArgs;
    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 certificate1 = new SecretV1("certificate1", SecretV1Args.builder()        
                .name("certificate")
                .payload(StdFunctions.file(FileArgs.builder()
                    .input("cert.pem")
                    .build()).result())
                .secretType("certificate")
                .payloadContentType("text/plain")
                .build());
    
            var privateKey1 = new SecretV1("privateKey1", SecretV1Args.builder()        
                .name("private_key")
                .payload(StdFunctions.file(FileArgs.builder()
                    .input("cert-key.pem")
                    .build()).result())
                .secretType("private")
                .payloadContentType("text/plain")
                .build());
    
            var intermediate1 = new SecretV1("intermediate1", SecretV1Args.builder()        
                .name("intermediate")
                .payload(StdFunctions.file(FileArgs.builder()
                    .input("intermediate-ca.pem")
                    .build()).result())
                .secretType("certificate")
                .payloadContentType("text/plain")
                .build());
    
            var tls1 = new ContainerV1("tls1", ContainerV1Args.builder()        
                .name("tls")
                .type("certificate")
                .secretRefs(            
                    ContainerV1SecretRefArgs.builder()
                        .name("certificate")
                        .secretRef(certificate1.secretRef())
                        .build(),
                    ContainerV1SecretRefArgs.builder()
                        .name("private_key")
                        .secretRef(privateKey1.secretRef())
                        .build(),
                    ContainerV1SecretRefArgs.builder()
                        .name("intermediates")
                        .secretRef(intermediate1.secretRef())
                        .build())
                .build());
    
            final var subnet1 = NetworkingFunctions.getSubnet(GetSubnetArgs.builder()
                .name("my-subnet")
                .build());
    
            var lb1 = new LoadBalancer("lb1", LoadBalancerArgs.builder()        
                .name("loadbalancer")
                .vipSubnetId(subnet1.applyValue(getSubnetResult -> getSubnetResult.id()))
                .build());
    
            var listener1 = new Listener("listener1", ListenerArgs.builder()        
                .name("https")
                .protocol("TERMINATED_HTTPS")
                .protocolPort(443)
                .loadbalancerId(lb1.id())
                .defaultTlsContainerRef(tls1.containerRef())
                .build());
    
        }
    }
    
    resources:
      certificate1:
        type: openstack:keymanager:SecretV1
        name: certificate_1
        properties:
          name: certificate
          payload:
            fn::invoke:
              Function: std:file
              Arguments:
                input: cert.pem
              Return: result
          secretType: certificate
          payloadContentType: text/plain
      privateKey1:
        type: openstack:keymanager:SecretV1
        name: private_key_1
        properties:
          name: private_key
          payload:
            fn::invoke:
              Function: std:file
              Arguments:
                input: cert-key.pem
              Return: result
          secretType: private
          payloadContentType: text/plain
      intermediate1:
        type: openstack:keymanager:SecretV1
        name: intermediate_1
        properties:
          name: intermediate
          payload:
            fn::invoke:
              Function: std:file
              Arguments:
                input: intermediate-ca.pem
              Return: result
          secretType: certificate
          payloadContentType: text/plain
      tls1:
        type: openstack:keymanager:ContainerV1
        name: tls_1
        properties:
          name: tls
          type: certificate
          secretRefs:
            - name: certificate
              secretRef: ${certificate1.secretRef}
            - name: private_key
              secretRef: ${privateKey1.secretRef}
            - name: intermediates
              secretRef: ${intermediate1.secretRef}
      lb1:
        type: openstack:loadbalancer:LoadBalancer
        name: lb_1
        properties:
          name: loadbalancer
          vipSubnetId: ${subnet1.id}
      listener1:
        type: openstack:loadbalancer:Listener
        name: listener_1
        properties:
          name: https
          protocol: TERMINATED_HTTPS
          protocolPort: 443
          loadbalancerId: ${lb1.id}
          defaultTlsContainerRef: ${tls1.containerRef}
    variables:
      subnet1:
        fn::invoke:
          Function: openstack:networking:getSubnet
          Arguments:
            name: my-subnet
    

    Container with the ACL

    Note Only read ACLs are supported

    import * as pulumi from "@pulumi/pulumi";
    import * as openstack from "@pulumi/openstack";
    
    const tls1 = new openstack.keymanager.ContainerV1("tls_1", {
        name: "tls",
        type: "certificate",
        secretRefs: [
            {
                name: "certificate",
                secretRef: certificate1.secretRef,
            },
            {
                name: "private_key",
                secretRef: privateKey1.secretRef,
            },
            {
                name: "intermediates",
                secretRef: intermediate1.secretRef,
            },
        ],
        acl: {
            read: {
                projectAccess: false,
                users: [
                    "userid1",
                    "userid2",
                ],
            },
        },
    });
    
    import pulumi
    import pulumi_openstack as openstack
    
    tls1 = openstack.keymanager.ContainerV1("tls_1",
        name="tls",
        type="certificate",
        secret_refs=[
            openstack.keymanager.ContainerV1SecretRefArgs(
                name="certificate",
                secret_ref=certificate1["secretRef"],
            ),
            openstack.keymanager.ContainerV1SecretRefArgs(
                name="private_key",
                secret_ref=private_key1["secretRef"],
            ),
            openstack.keymanager.ContainerV1SecretRefArgs(
                name="intermediates",
                secret_ref=intermediate1["secretRef"],
            ),
        ],
        acl=openstack.keymanager.ContainerV1AclArgs(
            read=openstack.keymanager.ContainerV1AclReadArgs(
                project_access=False,
                users=[
                    "userid1",
                    "userid2",
                ],
            ),
        ))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-openstack/sdk/v4/go/openstack/keymanager"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := keymanager.NewContainerV1(ctx, "tls_1", &keymanager.ContainerV1Args{
    			Name: pulumi.String("tls"),
    			Type: pulumi.String("certificate"),
    			SecretRefs: keymanager.ContainerV1SecretRefArray{
    				&keymanager.ContainerV1SecretRefArgs{
    					Name:      pulumi.String("certificate"),
    					SecretRef: pulumi.Any(certificate1.SecretRef),
    				},
    				&keymanager.ContainerV1SecretRefArgs{
    					Name:      pulumi.String("private_key"),
    					SecretRef: pulumi.Any(privateKey1.SecretRef),
    				},
    				&keymanager.ContainerV1SecretRefArgs{
    					Name:      pulumi.String("intermediates"),
    					SecretRef: pulumi.Any(intermediate1.SecretRef),
    				},
    			},
    			Acl: &keymanager.ContainerV1AclArgs{
    				Read: &keymanager.ContainerV1AclReadArgs{
    					ProjectAccess: pulumi.Bool(false),
    					Users: pulumi.StringArray{
    						pulumi.String("userid1"),
    						pulumi.String("userid2"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using OpenStack = Pulumi.OpenStack;
    
    return await Deployment.RunAsync(() => 
    {
        var tls1 = new OpenStack.KeyManager.ContainerV1("tls_1", new()
        {
            Name = "tls",
            Type = "certificate",
            SecretRefs = new[]
            {
                new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
                {
                    Name = "certificate",
                    SecretRef = certificate1.SecretRef,
                },
                new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
                {
                    Name = "private_key",
                    SecretRef = privateKey1.SecretRef,
                },
                new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
                {
                    Name = "intermediates",
                    SecretRef = intermediate1.SecretRef,
                },
            },
            Acl = new OpenStack.KeyManager.Inputs.ContainerV1AclArgs
            {
                Read = new OpenStack.KeyManager.Inputs.ContainerV1AclReadArgs
                {
                    ProjectAccess = false,
                    Users = new[]
                    {
                        "userid1",
                        "userid2",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.openstack.keymanager.ContainerV1;
    import com.pulumi.openstack.keymanager.ContainerV1Args;
    import com.pulumi.openstack.keymanager.inputs.ContainerV1SecretRefArgs;
    import com.pulumi.openstack.keymanager.inputs.ContainerV1AclArgs;
    import com.pulumi.openstack.keymanager.inputs.ContainerV1AclReadArgs;
    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 tls1 = new ContainerV1("tls1", ContainerV1Args.builder()        
                .name("tls")
                .type("certificate")
                .secretRefs(            
                    ContainerV1SecretRefArgs.builder()
                        .name("certificate")
                        .secretRef(certificate1.secretRef())
                        .build(),
                    ContainerV1SecretRefArgs.builder()
                        .name("private_key")
                        .secretRef(privateKey1.secretRef())
                        .build(),
                    ContainerV1SecretRefArgs.builder()
                        .name("intermediates")
                        .secretRef(intermediate1.secretRef())
                        .build())
                .acl(ContainerV1AclArgs.builder()
                    .read(ContainerV1AclReadArgs.builder()
                        .projectAccess(false)
                        .users(                    
                            "userid1",
                            "userid2")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      tls1:
        type: openstack:keymanager:ContainerV1
        name: tls_1
        properties:
          name: tls
          type: certificate
          secretRefs:
            - name: certificate
              secretRef: ${certificate1.secretRef}
            - name: private_key
              secretRef: ${privateKey1.secretRef}
            - name: intermediates
              secretRef: ${intermediate1.secretRef}
          acl:
            read:
              projectAccess: false
              users:
                - userid1
                - userid2
    

    Create ContainerV1 Resource

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

    Constructor syntax

    new ContainerV1(name: string, args: ContainerV1Args, opts?: CustomResourceOptions);
    @overload
    def ContainerV1(resource_name: str,
                    args: ContainerV1Args,
                    opts: Optional[ResourceOptions] = None)
    
    @overload
    def ContainerV1(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    type: Optional[str] = None,
                    acl: Optional[ContainerV1AclArgs] = None,
                    name: Optional[str] = None,
                    region: Optional[str] = None,
                    secret_refs: Optional[Sequence[ContainerV1SecretRefArgs]] = None)
    func NewContainerV1(ctx *Context, name string, args ContainerV1Args, opts ...ResourceOption) (*ContainerV1, error)
    public ContainerV1(string name, ContainerV1Args args, CustomResourceOptions? opts = null)
    public ContainerV1(String name, ContainerV1Args args)
    public ContainerV1(String name, ContainerV1Args args, CustomResourceOptions options)
    
    type: openstack:keymanager:ContainerV1
    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 ContainerV1Args
    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 ContainerV1Args
    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 ContainerV1Args
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ContainerV1Args
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ContainerV1Args
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var containerV1Resource = new OpenStack.KeyManager.ContainerV1("containerV1Resource", new()
    {
        Type = "string",
        Acl = new OpenStack.KeyManager.Inputs.ContainerV1AclArgs
        {
            Read = new OpenStack.KeyManager.Inputs.ContainerV1AclReadArgs
            {
                CreatedAt = "string",
                ProjectAccess = false,
                UpdatedAt = "string",
                Users = new[]
                {
                    "string",
                },
            },
        },
        Name = "string",
        Region = "string",
        SecretRefs = new[]
        {
            new OpenStack.KeyManager.Inputs.ContainerV1SecretRefArgs
            {
                SecretRef = "string",
                Name = "string",
            },
        },
    });
    
    example, err := keymanager.NewContainerV1(ctx, "containerV1Resource", &keymanager.ContainerV1Args{
    	Type: pulumi.String("string"),
    	Acl: &keymanager.ContainerV1AclArgs{
    		Read: &keymanager.ContainerV1AclReadArgs{
    			CreatedAt:     pulumi.String("string"),
    			ProjectAccess: pulumi.Bool(false),
    			UpdatedAt:     pulumi.String("string"),
    			Users: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    	Name:   pulumi.String("string"),
    	Region: pulumi.String("string"),
    	SecretRefs: keymanager.ContainerV1SecretRefArray{
    		&keymanager.ContainerV1SecretRefArgs{
    			SecretRef: pulumi.String("string"),
    			Name:      pulumi.String("string"),
    		},
    	},
    })
    
    var containerV1Resource = new ContainerV1("containerV1Resource", ContainerV1Args.builder()
        .type("string")
        .acl(ContainerV1AclArgs.builder()
            .read(ContainerV1AclReadArgs.builder()
                .createdAt("string")
                .projectAccess(false)
                .updatedAt("string")
                .users("string")
                .build())
            .build())
        .name("string")
        .region("string")
        .secretRefs(ContainerV1SecretRefArgs.builder()
            .secretRef("string")
            .name("string")
            .build())
        .build());
    
    container_v1_resource = openstack.keymanager.ContainerV1("containerV1Resource",
        type="string",
        acl=openstack.keymanager.ContainerV1AclArgs(
            read=openstack.keymanager.ContainerV1AclReadArgs(
                created_at="string",
                project_access=False,
                updated_at="string",
                users=["string"],
            ),
        ),
        name="string",
        region="string",
        secret_refs=[openstack.keymanager.ContainerV1SecretRefArgs(
            secret_ref="string",
            name="string",
        )])
    
    const containerV1Resource = new openstack.keymanager.ContainerV1("containerV1Resource", {
        type: "string",
        acl: {
            read: {
                createdAt: "string",
                projectAccess: false,
                updatedAt: "string",
                users: ["string"],
            },
        },
        name: "string",
        region: "string",
        secretRefs: [{
            secretRef: "string",
            name: "string",
        }],
    });
    
    type: openstack:keymanager:ContainerV1
    properties:
        acl:
            read:
                createdAt: string
                projectAccess: false
                updatedAt: string
                users:
                    - string
        name: string
        region: string
        secretRefs:
            - name: string
              secretRef: string
        type: string
    

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

    Type string
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    Acl Pulumi.OpenStack.KeyManager.Inputs.ContainerV1Acl
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    Name string
    Human-readable name for the Container. Does not have to be unique.
    Region string
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    SecretRefs List<Pulumi.OpenStack.KeyManager.Inputs.ContainerV1SecretRef>
    A set of dictionaries containing references to secrets. The structure is described below.
    Type string
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    Acl ContainerV1AclArgs
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    Name string
    Human-readable name for the Container. Does not have to be unique.
    Region string
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    SecretRefs []ContainerV1SecretRefArgs
    A set of dictionaries containing references to secrets. The structure is described below.
    type String
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    acl ContainerV1Acl
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    name String
    Human-readable name for the Container. Does not have to be unique.
    region String
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secretRefs List<ContainerV1SecretRef>
    A set of dictionaries containing references to secrets. The structure is described below.
    type string
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    acl ContainerV1Acl
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    name string
    Human-readable name for the Container. Does not have to be unique.
    region string
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secretRefs ContainerV1SecretRef[]
    A set of dictionaries containing references to secrets. The structure is described below.
    type str
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    acl ContainerV1AclArgs
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    name str
    Human-readable name for the Container. Does not have to be unique.
    region str
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secret_refs Sequence[ContainerV1SecretRefArgs]
    A set of dictionaries containing references to secrets. The structure is described below.
    type String
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    acl Property Map
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    name String
    Human-readable name for the Container. Does not have to be unique.
    region String
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secretRefs List<Property Map>
    A set of dictionaries containing references to secrets. The structure is described below.

    Outputs

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

    Consumers List<Pulumi.OpenStack.KeyManager.Outputs.ContainerV1Consumer>
    The list of the container consumers. The structure is described below.
    ContainerRef string
    The container reference / where to find the container.
    CreatedAt string
    The date the container was created.
    CreatorId string
    The creator of the container.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    The status of the container.
    UpdatedAt string
    The date the container was last updated.
    Consumers []ContainerV1Consumer
    The list of the container consumers. The structure is described below.
    ContainerRef string
    The container reference / where to find the container.
    CreatedAt string
    The date the container was created.
    CreatorId string
    The creator of the container.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    The status of the container.
    UpdatedAt string
    The date the container was last updated.
    consumers List<ContainerV1Consumer>
    The list of the container consumers. The structure is described below.
    containerRef String
    The container reference / where to find the container.
    createdAt String
    The date the container was created.
    creatorId String
    The creator of the container.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    The status of the container.
    updatedAt String
    The date the container was last updated.
    consumers ContainerV1Consumer[]
    The list of the container consumers. The structure is described below.
    containerRef string
    The container reference / where to find the container.
    createdAt string
    The date the container was created.
    creatorId string
    The creator of the container.
    id string
    The provider-assigned unique ID for this managed resource.
    status string
    The status of the container.
    updatedAt string
    The date the container was last updated.
    consumers Sequence[ContainerV1Consumer]
    The list of the container consumers. The structure is described below.
    container_ref str
    The container reference / where to find the container.
    created_at str
    The date the container was created.
    creator_id str
    The creator of the container.
    id str
    The provider-assigned unique ID for this managed resource.
    status str
    The status of the container.
    updated_at str
    The date the container was last updated.
    consumers List<Property Map>
    The list of the container consumers. The structure is described below.
    containerRef String
    The container reference / where to find the container.
    createdAt String
    The date the container was created.
    creatorId String
    The creator of the container.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    The status of the container.
    updatedAt String
    The date the container was last updated.

    Look up Existing ContainerV1 Resource

    Get an existing ContainerV1 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?: ContainerV1State, opts?: CustomResourceOptions): ContainerV1
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            acl: Optional[ContainerV1AclArgs] = None,
            consumers: Optional[Sequence[ContainerV1ConsumerArgs]] = None,
            container_ref: Optional[str] = None,
            created_at: Optional[str] = None,
            creator_id: Optional[str] = None,
            name: Optional[str] = None,
            region: Optional[str] = None,
            secret_refs: Optional[Sequence[ContainerV1SecretRefArgs]] = None,
            status: Optional[str] = None,
            type: Optional[str] = None,
            updated_at: Optional[str] = None) -> ContainerV1
    func GetContainerV1(ctx *Context, name string, id IDInput, state *ContainerV1State, opts ...ResourceOption) (*ContainerV1, error)
    public static ContainerV1 Get(string name, Input<string> id, ContainerV1State? state, CustomResourceOptions? opts = null)
    public static ContainerV1 get(String name, Output<String> id, ContainerV1State 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:
    Acl Pulumi.OpenStack.KeyManager.Inputs.ContainerV1Acl
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    Consumers List<Pulumi.OpenStack.KeyManager.Inputs.ContainerV1Consumer>
    The list of the container consumers. The structure is described below.
    ContainerRef string
    The container reference / where to find the container.
    CreatedAt string
    The date the container was created.
    CreatorId string
    The creator of the container.
    Name string
    Human-readable name for the Container. Does not have to be unique.
    Region string
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    SecretRefs List<Pulumi.OpenStack.KeyManager.Inputs.ContainerV1SecretRef>
    A set of dictionaries containing references to secrets. The structure is described below.
    Status string
    The status of the container.
    Type string
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    UpdatedAt string
    The date the container was last updated.
    Acl ContainerV1AclArgs
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    Consumers []ContainerV1ConsumerArgs
    The list of the container consumers. The structure is described below.
    ContainerRef string
    The container reference / where to find the container.
    CreatedAt string
    The date the container was created.
    CreatorId string
    The creator of the container.
    Name string
    Human-readable name for the Container. Does not have to be unique.
    Region string
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    SecretRefs []ContainerV1SecretRefArgs
    A set of dictionaries containing references to secrets. The structure is described below.
    Status string
    The status of the container.
    Type string
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    UpdatedAt string
    The date the container was last updated.
    acl ContainerV1Acl
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    consumers List<ContainerV1Consumer>
    The list of the container consumers. The structure is described below.
    containerRef String
    The container reference / where to find the container.
    createdAt String
    The date the container was created.
    creatorId String
    The creator of the container.
    name String
    Human-readable name for the Container. Does not have to be unique.
    region String
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secretRefs List<ContainerV1SecretRef>
    A set of dictionaries containing references to secrets. The structure is described below.
    status String
    The status of the container.
    type String
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    updatedAt String
    The date the container was last updated.
    acl ContainerV1Acl
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    consumers ContainerV1Consumer[]
    The list of the container consumers. The structure is described below.
    containerRef string
    The container reference / where to find the container.
    createdAt string
    The date the container was created.
    creatorId string
    The creator of the container.
    name string
    Human-readable name for the Container. Does not have to be unique.
    region string
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secretRefs ContainerV1SecretRef[]
    A set of dictionaries containing references to secrets. The structure is described below.
    status string
    The status of the container.
    type string
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    updatedAt string
    The date the container was last updated.
    acl ContainerV1AclArgs
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    consumers Sequence[ContainerV1ConsumerArgs]
    The list of the container consumers. The structure is described below.
    container_ref str
    The container reference / where to find the container.
    created_at str
    The date the container was created.
    creator_id str
    The creator of the container.
    name str
    Human-readable name for the Container. Does not have to be unique.
    region str
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secret_refs Sequence[ContainerV1SecretRefArgs]
    A set of dictionaries containing references to secrets. The structure is described below.
    status str
    The status of the container.
    type str
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    updated_at str
    The date the container was last updated.
    acl Property Map
    Allows to control an access to a container. Currently only the read operation is supported. If not specified, the container is accessible project wide. The read structure is described below.
    consumers List<Property Map>
    The list of the container consumers. The structure is described below.
    containerRef String
    The container reference / where to find the container.
    createdAt String
    The date the container was created.
    creatorId String
    The creator of the container.
    name String
    Human-readable name for the Container. Does not have to be unique.
    region String
    The region in which to obtain the V1 KeyManager client. A KeyManager client is needed to create a container. If omitted, the region argument of the provider is used. Changing this creates a new V1 container.
    secretRefs List<Property Map>
    A set of dictionaries containing references to secrets. The structure is described below.
    status String
    The status of the container.
    type String
    Used to indicate the type of container. Must be one of generic, rsa or certificate.
    updatedAt String
    The date the container was last updated.

    Supporting Types

    ContainerV1Acl, ContainerV1AclArgs

    ContainerV1AclRead, ContainerV1AclReadArgs

    CreatedAt string
    The date the container was created.
    ProjectAccess bool
    UpdatedAt string
    The date the container was last updated.
    Users List<string>
    CreatedAt string
    The date the container was created.
    ProjectAccess bool
    UpdatedAt string
    The date the container was last updated.
    Users []string
    createdAt String
    The date the container was created.
    projectAccess Boolean
    updatedAt String
    The date the container was last updated.
    users List<String>
    createdAt string
    The date the container was created.
    projectAccess boolean
    updatedAt string
    The date the container was last updated.
    users string[]
    created_at str
    The date the container was created.
    project_access bool
    updated_at str
    The date the container was last updated.
    users Sequence[str]
    createdAt String
    The date the container was created.
    projectAccess Boolean
    updatedAt String
    The date the container was last updated.
    users List<String>

    ContainerV1Consumer, ContainerV1ConsumerArgs

    Name string
    Human-readable name for the Container. Does not have to be unique.
    Url string
    The consumer URL.
    Name string
    Human-readable name for the Container. Does not have to be unique.
    Url string
    The consumer URL.
    name String
    Human-readable name for the Container. Does not have to be unique.
    url String
    The consumer URL.
    name string
    Human-readable name for the Container. Does not have to be unique.
    url string
    The consumer URL.
    name str
    Human-readable name for the Container. Does not have to be unique.
    url str
    The consumer URL.
    name String
    Human-readable name for the Container. Does not have to be unique.
    url String
    The consumer URL.

    ContainerV1SecretRef, ContainerV1SecretRefArgs

    SecretRef string
    The secret reference / where to find the secret, URL.
    Name string
    The name of the secret reference. The reference names must correspond the container type, more details are available here.
    SecretRef string
    The secret reference / where to find the secret, URL.
    Name string
    The name of the secret reference. The reference names must correspond the container type, more details are available here.
    secretRef String
    The secret reference / where to find the secret, URL.
    name String
    The name of the secret reference. The reference names must correspond the container type, more details are available here.
    secretRef string
    The secret reference / where to find the secret, URL.
    name string
    The name of the secret reference. The reference names must correspond the container type, more details are available here.
    secret_ref str
    The secret reference / where to find the secret, URL.
    name str
    The name of the secret reference. The reference names must correspond the container type, more details are available here.
    secretRef String
    The secret reference / where to find the secret, URL.
    name String
    The name of the secret reference. The reference names must correspond the container type, more details are available here.

    Import

    Containers can be imported using the container id (the last part of the container reference), e.g.:

    $ pulumi import openstack:keymanager/containerV1:ContainerV1 container_1 0c6cd26a-c012-4d7b-8034-057c0f1c2953
    

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

    Package Details

    Repository
    OpenStack pulumi/pulumi-openstack
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the openstack Terraform Provider.
    openstack logo
    OpenStack v4.0.0 published on Tuesday, May 21, 2024 by Pulumi