1. Packages
  2. Hpegl Provider
  3. API Docs
  4. MetalProject
hpegl 0.4.17 published on Monday, Apr 14, 2025 by hpe

hpegl.MetalProject

Explore with Pulumi AI

Provides Project resource. This allows creation, deletion and update of Metal projects.

Example Usage

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

const project = new hpegl.MetalProject("project", {
    limits: {
        hosts: 5,
        privateNetworks: 20,
        volumeCapacity: 300,
        volumes: 10,
    },
    profile: {
        address: "Area51",
        company: "ACME",
        email: "acme@intergalactic.universe",
        phoneNumber: "+112 234 1245 3245",
        projectDescription: "Primitive Life",
        projectName: "Umbrella Corporation",
    },
    sites: ["22473578-e18b-4753-a2e6-ba405b8abc32"],
});
Copy
import pulumi
import pulumi_hpegl as hpegl

project = hpegl.MetalProject("project",
    limits={
        "hosts": 5,
        "private_networks": 20,
        "volume_capacity": 300,
        "volumes": 10,
    },
    profile={
        "address": "Area51",
        "company": "ACME",
        "email": "acme@intergalactic.universe",
        "phone_number": "+112 234 1245 3245",
        "project_description": "Primitive Life",
        "project_name": "Umbrella Corporation",
    },
    sites=["22473578-e18b-4753-a2e6-ba405b8abc32"])
Copy
package main

import (
	"github.com/pulumi/pulumi-terraform-provider/sdks/go/hpegl/hpegl"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := hpegl.NewMetalProject(ctx, "project", &hpegl.MetalProjectArgs{
			Limits: &hpegl.MetalProjectLimitsArgs{
				Hosts:           pulumi.Float64(5),
				PrivateNetworks: pulumi.Float64(20),
				VolumeCapacity:  pulumi.Float64(300),
				Volumes:         pulumi.Float64(10),
			},
			Profile: &hpegl.MetalProjectProfileArgs{
				Address:            pulumi.String("Area51"),
				Company:            pulumi.String("ACME"),
				Email:              pulumi.String("acme@intergalactic.universe"),
				PhoneNumber:        pulumi.String("+112 234 1245 3245"),
				ProjectDescription: pulumi.String("Primitive Life"),
				ProjectName:        pulumi.String("Umbrella Corporation"),
			},
			Sites: pulumi.StringArray{
				pulumi.String("22473578-e18b-4753-a2e6-ba405b8abc32"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Hpegl = Pulumi.Hpegl;

return await Deployment.RunAsync(() => 
{
    var project = new Hpegl.MetalProject("project", new()
    {
        Limits = new Hpegl.Inputs.MetalProjectLimitsArgs
        {
            Hosts = 5,
            PrivateNetworks = 20,
            VolumeCapacity = 300,
            Volumes = 10,
        },
        Profile = new Hpegl.Inputs.MetalProjectProfileArgs
        {
            Address = "Area51",
            Company = "ACME",
            Email = "acme@intergalactic.universe",
            PhoneNumber = "+112 234 1245 3245",
            ProjectDescription = "Primitive Life",
            ProjectName = "Umbrella Corporation",
        },
        Sites = new[]
        {
            "22473578-e18b-4753-a2e6-ba405b8abc32",
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.hpegl.MetalProject;
import com.pulumi.hpegl.MetalProjectArgs;
import com.pulumi.hpegl.inputs.MetalProjectLimitsArgs;
import com.pulumi.hpegl.inputs.MetalProjectProfileArgs;
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 project = new MetalProject("project", MetalProjectArgs.builder()
            .limits(MetalProjectLimitsArgs.builder()
                .hosts(5)
                .privateNetworks(20)
                .volumeCapacity(300)
                .volumes(10)
                .build())
            .profile(MetalProjectProfileArgs.builder()
                .address("Area51")
                .company("ACME")
                .email("acme@intergalactic.universe")
                .phoneNumber("+112 234 1245 3245")
                .projectDescription("Primitive Life")
                .projectName("Umbrella Corporation")
                .build())
            .sites("22473578-e18b-4753-a2e6-ba405b8abc32")
            .build());

    }
}
Copy
resources:
  project:
    type: hpegl:MetalProject
    properties:
      limits:
        hosts: 5
        privateNetworks: 20
        volumeCapacity: 300
        volumes: 10
      profile:
        address: Area51
        company: ACME
        email: acme@intergalactic.universe
        phoneNumber: +112 234 1245 3245
        projectDescription: Primitive Life
        projectName: Umbrella Corporation
      sites:
        - 22473578-e18b-4753-a2e6-ba405b8abc32
Copy

Create MetalProject Resource

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

Constructor syntax

new MetalProject(name: string, args: MetalProjectArgs, opts?: CustomResourceOptions);
@overload
def MetalProject(resource_name: str,
                 args: MetalProjectArgs,
                 opts: Optional[ResourceOptions] = None)

@overload
def MetalProject(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 limits: Optional[MetalProjectLimitsArgs] = None,
                 profile: Optional[MetalProjectProfileArgs] = None,
                 metal_project_id: Optional[str] = None,
                 name: Optional[str] = None,
                 permitted_images: Optional[Sequence[str]] = None,
                 sites: Optional[Sequence[str]] = None,
                 volume_replication_enabled: Optional[bool] = None)
func NewMetalProject(ctx *Context, name string, args MetalProjectArgs, opts ...ResourceOption) (*MetalProject, error)
public MetalProject(string name, MetalProjectArgs args, CustomResourceOptions? opts = null)
public MetalProject(String name, MetalProjectArgs args)
public MetalProject(String name, MetalProjectArgs args, CustomResourceOptions options)
type: hpegl:MetalProject
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. MetalProjectArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. MetalProjectArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. MetalProjectArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. MetalProjectArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. MetalProjectArgs
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 metalProjectResource = new Hpegl.MetalProject("metalProjectResource", new()
{
    Limits = new Hpegl.Inputs.MetalProjectLimitsArgs
    {
        Hosts = 0,
        InstanceTypes = 
        {
            { "string", 0 },
        },
        PrivateNetworks = 0,
        VolumeCapacity = 0,
        Volumes = 0,
    },
    Profile = new Hpegl.Inputs.MetalProjectProfileArgs
    {
        Email = "string",
        ProjectName = "string",
        Address = "string",
        Company = "string",
        EmailVerified = false,
        PhoneNumber = "string",
        PhoneNumberVerified = false,
        ProjectDescription = "string",
    },
    MetalProjectId = "string",
    Name = "string",
    PermittedImages = new[]
    {
        "string",
    },
    Sites = new[]
    {
        "string",
    },
    VolumeReplicationEnabled = false,
});
Copy
example, err := hpegl.NewMetalProject(ctx, "metalProjectResource", &hpegl.MetalProjectArgs{
Limits: &.MetalProjectLimitsArgs{
Hosts: pulumi.Float64(0),
InstanceTypes: pulumi.Float64Map{
"string": pulumi.Float64(0),
},
PrivateNetworks: pulumi.Float64(0),
VolumeCapacity: pulumi.Float64(0),
Volumes: pulumi.Float64(0),
},
Profile: &.MetalProjectProfileArgs{
Email: pulumi.String("string"),
ProjectName: pulumi.String("string"),
Address: pulumi.String("string"),
Company: pulumi.String("string"),
EmailVerified: pulumi.Bool(false),
PhoneNumber: pulumi.String("string"),
PhoneNumberVerified: pulumi.Bool(false),
ProjectDescription: pulumi.String("string"),
},
MetalProjectId: pulumi.String("string"),
Name: pulumi.String("string"),
PermittedImages: pulumi.StringArray{
pulumi.String("string"),
},
Sites: pulumi.StringArray{
pulumi.String("string"),
},
VolumeReplicationEnabled: pulumi.Bool(false),
})
Copy
var metalProjectResource = new MetalProject("metalProjectResource", MetalProjectArgs.builder()
    .limits(MetalProjectLimitsArgs.builder()
        .hosts(0)
        .instanceTypes(Map.of("string", 0))
        .privateNetworks(0)
        .volumeCapacity(0)
        .volumes(0)
        .build())
    .profile(MetalProjectProfileArgs.builder()
        .email("string")
        .projectName("string")
        .address("string")
        .company("string")
        .emailVerified(false)
        .phoneNumber("string")
        .phoneNumberVerified(false)
        .projectDescription("string")
        .build())
    .metalProjectId("string")
    .name("string")
    .permittedImages("string")
    .sites("string")
    .volumeReplicationEnabled(false)
    .build());
Copy
metal_project_resource = hpegl.MetalProject("metalProjectResource",
    limits={
        "hosts": 0,
        "instance_types": {
            "string": 0,
        },
        "private_networks": 0,
        "volume_capacity": 0,
        "volumes": 0,
    },
    profile={
        "email": "string",
        "project_name": "string",
        "address": "string",
        "company": "string",
        "email_verified": False,
        "phone_number": "string",
        "phone_number_verified": False,
        "project_description": "string",
    },
    metal_project_id="string",
    name="string",
    permitted_images=["string"],
    sites=["string"],
    volume_replication_enabled=False)
Copy
const metalProjectResource = new hpegl.MetalProject("metalProjectResource", {
    limits: {
        hosts: 0,
        instanceTypes: {
            string: 0,
        },
        privateNetworks: 0,
        volumeCapacity: 0,
        volumes: 0,
    },
    profile: {
        email: "string",
        projectName: "string",
        address: "string",
        company: "string",
        emailVerified: false,
        phoneNumber: "string",
        phoneNumberVerified: false,
        projectDescription: "string",
    },
    metalProjectId: "string",
    name: "string",
    permittedImages: ["string"],
    sites: ["string"],
    volumeReplicationEnabled: false,
});
Copy
type: hpegl:MetalProject
properties:
    limits:
        hosts: 0
        instanceTypes:
            string: 0
        privateNetworks: 0
        volumeCapacity: 0
        volumes: 0
    metalProjectId: string
    name: string
    permittedImages:
        - string
    profile:
        address: string
        company: string
        email: string
        emailVerified: false
        phoneNumber: string
        phoneNumberVerified: false
        projectDescription: string
        projectName: string
    sites:
        - string
    volumeReplicationEnabled: false
Copy

MetalProject Resource Properties

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

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The MetalProject resource accepts the following input properties:

Limits This property is required. MetalProjectLimits
Resource limits applied to this team.
Profile This property is required. MetalProjectProfile
Team profile.
MetalProjectId string
The ID of this resource.
Name string
A friendly name of the project.
PermittedImages List<string>
List of permitted OS service images
Sites List<string>
List of Permitted Site IDs
VolumeReplicationEnabled bool
Volume replication is enabled for the project if set.
Limits This property is required. MetalProjectLimitsArgs
Resource limits applied to this team.
Profile This property is required. MetalProjectProfileArgs
Team profile.
MetalProjectId string
The ID of this resource.
Name string
A friendly name of the project.
PermittedImages []string
List of permitted OS service images
Sites []string
List of Permitted Site IDs
VolumeReplicationEnabled bool
Volume replication is enabled for the project if set.
limits This property is required. MetalProjectLimits
Resource limits applied to this team.
profile This property is required. MetalProjectProfile
Team profile.
metalProjectId String
The ID of this resource.
name String
A friendly name of the project.
permittedImages List<String>
List of permitted OS service images
sites List<String>
List of Permitted Site IDs
volumeReplicationEnabled Boolean
Volume replication is enabled for the project if set.
limits This property is required. MetalProjectLimits
Resource limits applied to this team.
profile This property is required. MetalProjectProfile
Team profile.
metalProjectId string
The ID of this resource.
name string
A friendly name of the project.
permittedImages string[]
List of permitted OS service images
sites string[]
List of Permitted Site IDs
volumeReplicationEnabled boolean
Volume replication is enabled for the project if set.
limits This property is required. MetalProjectLimitsArgs
Resource limits applied to this team.
profile This property is required. MetalProjectProfileArgs
Team profile.
metal_project_id str
The ID of this resource.
name str
A friendly name of the project.
permitted_images Sequence[str]
List of permitted OS service images
sites Sequence[str]
List of Permitted Site IDs
volume_replication_enabled bool
Volume replication is enabled for the project if set.
limits This property is required. Property Map
Resource limits applied to this team.
profile This property is required. Property Map
Team profile.
metalProjectId String
The ID of this resource.
name String
A friendly name of the project.
permittedImages List<String>
List of permitted OS service images
sites List<String>
List of Permitted Site IDs
volumeReplicationEnabled Boolean
Volume replication is enabled for the project if set.

Outputs

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

Get an existing MetalProject 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?: MetalProjectState, opts?: CustomResourceOptions): MetalProject
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        limits: Optional[MetalProjectLimitsArgs] = None,
        metal_project_id: Optional[str] = None,
        name: Optional[str] = None,
        permitted_images: Optional[Sequence[str]] = None,
        profile: Optional[MetalProjectProfileArgs] = None,
        sites: Optional[Sequence[str]] = None,
        volume_replication_enabled: Optional[bool] = None) -> MetalProject
func GetMetalProject(ctx *Context, name string, id IDInput, state *MetalProjectState, opts ...ResourceOption) (*MetalProject, error)
public static MetalProject Get(string name, Input<string> id, MetalProjectState? state, CustomResourceOptions? opts = null)
public static MetalProject get(String name, Output<String> id, MetalProjectState state, CustomResourceOptions options)
resources:  _:    type: hpegl:MetalProject    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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:
Limits MetalProjectLimits
Resource limits applied to this team.
MetalProjectId string
The ID of this resource.
Name string
A friendly name of the project.
PermittedImages List<string>
List of permitted OS service images
Profile MetalProjectProfile
Team profile.
Sites List<string>
List of Permitted Site IDs
VolumeReplicationEnabled bool
Volume replication is enabled for the project if set.
Limits MetalProjectLimitsArgs
Resource limits applied to this team.
MetalProjectId string
The ID of this resource.
Name string
A friendly name of the project.
PermittedImages []string
List of permitted OS service images
Profile MetalProjectProfileArgs
Team profile.
Sites []string
List of Permitted Site IDs
VolumeReplicationEnabled bool
Volume replication is enabled for the project if set.
limits MetalProjectLimits
Resource limits applied to this team.
metalProjectId String
The ID of this resource.
name String
A friendly name of the project.
permittedImages List<String>
List of permitted OS service images
profile MetalProjectProfile
Team profile.
sites List<String>
List of Permitted Site IDs
volumeReplicationEnabled Boolean
Volume replication is enabled for the project if set.
limits MetalProjectLimits
Resource limits applied to this team.
metalProjectId string
The ID of this resource.
name string
A friendly name of the project.
permittedImages string[]
List of permitted OS service images
profile MetalProjectProfile
Team profile.
sites string[]
List of Permitted Site IDs
volumeReplicationEnabled boolean
Volume replication is enabled for the project if set.
limits MetalProjectLimitsArgs
Resource limits applied to this team.
metal_project_id str
The ID of this resource.
name str
A friendly name of the project.
permitted_images Sequence[str]
List of permitted OS service images
profile MetalProjectProfileArgs
Team profile.
sites Sequence[str]
List of Permitted Site IDs
volume_replication_enabled bool
Volume replication is enabled for the project if set.
limits Property Map
Resource limits applied to this team.
metalProjectId String
The ID of this resource.
name String
A friendly name of the project.
permittedImages List<String>
List of permitted OS service images
profile Property Map
Team profile.
sites List<String>
List of Permitted Site IDs
volumeReplicationEnabled Boolean
Volume replication is enabled for the project if set.

Supporting Types

MetalProjectLimits
, MetalProjectLimitsArgs

Hosts double
Maximum number of host allowed in the team.
InstanceTypes Dictionary<string, double>
Map of instance type ID to maximum number of hosts that can be created with that instance type
PrivateNetworks double
Maximum number of private networks allowed in the team.
VolumeCapacity double
Total allowable volume capacity (GiB) allowed in the team.
Volumes double
Maximum number of volumes allowed in the team.
Hosts float64
Maximum number of host allowed in the team.
InstanceTypes map[string]float64
Map of instance type ID to maximum number of hosts that can be created with that instance type
PrivateNetworks float64
Maximum number of private networks allowed in the team.
VolumeCapacity float64
Total allowable volume capacity (GiB) allowed in the team.
Volumes float64
Maximum number of volumes allowed in the team.
hosts Double
Maximum number of host allowed in the team.
instanceTypes Map<String,Double>
Map of instance type ID to maximum number of hosts that can be created with that instance type
privateNetworks Double
Maximum number of private networks allowed in the team.
volumeCapacity Double
Total allowable volume capacity (GiB) allowed in the team.
volumes Double
Maximum number of volumes allowed in the team.
hosts number
Maximum number of host allowed in the team.
instanceTypes {[key: string]: number}
Map of instance type ID to maximum number of hosts that can be created with that instance type
privateNetworks number
Maximum number of private networks allowed in the team.
volumeCapacity number
Total allowable volume capacity (GiB) allowed in the team.
volumes number
Maximum number of volumes allowed in the team.
hosts float
Maximum number of host allowed in the team.
instance_types Mapping[str, float]
Map of instance type ID to maximum number of hosts that can be created with that instance type
private_networks float
Maximum number of private networks allowed in the team.
volume_capacity float
Total allowable volume capacity (GiB) allowed in the team.
volumes float
Maximum number of volumes allowed in the team.
hosts Number
Maximum number of host allowed in the team.
instanceTypes Map<Number>
Map of instance type ID to maximum number of hosts that can be created with that instance type
privateNetworks Number
Maximum number of private networks allowed in the team.
volumeCapacity Number
Total allowable volume capacity (GiB) allowed in the team.
volumes Number
Maximum number of volumes allowed in the team.

MetalProjectProfile
, MetalProjectProfileArgs

Email This property is required. string
Email address.
ProjectName This property is required. string
A friendly name of the team.
Address string
The company address with the team.
Company string
The company associated with the team.
EmailVerified bool
Email address has been validated.
PhoneNumber string
Phine number.
PhoneNumberVerified bool
Phine number has been validated.
ProjectDescription string
A friendly description of the team.
Email This property is required. string
Email address.
ProjectName This property is required. string
A friendly name of the team.
Address string
The company address with the team.
Company string
The company associated with the team.
EmailVerified bool
Email address has been validated.
PhoneNumber string
Phine number.
PhoneNumberVerified bool
Phine number has been validated.
ProjectDescription string
A friendly description of the team.
email This property is required. String
Email address.
projectName This property is required. String
A friendly name of the team.
address String
The company address with the team.
company String
The company associated with the team.
emailVerified Boolean
Email address has been validated.
phoneNumber String
Phine number.
phoneNumberVerified Boolean
Phine number has been validated.
projectDescription String
A friendly description of the team.
email This property is required. string
Email address.
projectName This property is required. string
A friendly name of the team.
address string
The company address with the team.
company string
The company associated with the team.
emailVerified boolean
Email address has been validated.
phoneNumber string
Phine number.
phoneNumberVerified boolean
Phine number has been validated.
projectDescription string
A friendly description of the team.
email This property is required. str
Email address.
project_name This property is required. str
A friendly name of the team.
address str
The company address with the team.
company str
The company associated with the team.
email_verified bool
Email address has been validated.
phone_number str
Phine number.
phone_number_verified bool
Phine number has been validated.
project_description str
A friendly description of the team.
email This property is required. String
Email address.
projectName This property is required. String
A friendly name of the team.
address String
The company address with the team.
company String
The company associated with the team.
emailVerified Boolean
Email address has been validated.
phoneNumber String
Phine number.
phoneNumberVerified Boolean
Phine number has been validated.
projectDescription String
A friendly description of the team.

Package Details

Repository
hpegl hpe/terraform-provider-hpegl
License
Notes
This Pulumi package is based on the hpegl Terraform Provider.