getCapacityBlockReservation function

Future<GetCapacityBlockReservationResult> getCapacityBlockReservation(
  1. GetCapacityBlockReservationArgs args, {
  2. InvokeOptions? options,
})

Information about an existing EC2 Capacity Block reservation.

This data source returns only Capacity Reservations whose reservationType is capacity-block. Use the aws.ec2.CapacityReservation data source to look up On-Demand Capacity Reservations (ODCR).

At least one of id or filter must be specified. Filter combinations that match multiple Capacity Block reservations will return an error.

Example Usage

Lookup by ID

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

const example = aws.ec2.getCapacityBlockReservation({
    id: "cr-0123456789abcdef0",
});
import pulumi
import pulumi_aws as aws

example = aws.ec2.get_capacity_block_reservation(id="cr-0123456789abcdef0")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = Aws.Ec2.GetCapacityBlockReservation.Invoke(new()
    {
        Id = "cr-0123456789abcdef0",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.LookupCapacityBlockReservation(ctx, &ec2.LookupCapacityBlockReservationArgs{
			Id: pulumi.StringRef("cr-0123456789abcdef0"),
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

data "aws_ec2_getcapacityblockreservation" "example" {
  id = "cr-0123456789abcdef0"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetCapacityBlockReservationArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var example = Ec2Functions.getCapacityBlockReservation(GetCapacityBlockReservationArgs.builder()
            .id("cr-0123456789abcdef0")
            .build());

    }
}
variables:
  example:
    fn::invoke:
      function: aws:ec2:getCapacityBlockReservation
      arguments:
        id: cr-0123456789abcdef0

Lookup by filter

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

const example = aws.ec2.getCapacityBlockReservation({
    filters: [
        {
            name: "instance-type",
            values: ["p4d.24xlarge"],
        },
        {
            name: "state",
            values: ["active"],
        },
    ],
});
import pulumi
import pulumi_aws as aws

example = aws.ec2.get_capacity_block_reservation(filters=[
    {
        "name": "instance-type",
        "values": ["p4d.24xlarge"],
    },
    {
        "name": "state",
        "values": ["active"],
    },
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = Aws.Ec2.GetCapacityBlockReservation.Invoke(new()
    {
        Filters = new[]
        {
            new Aws.Ec2.Inputs.GetCapacityBlockReservationFilterInputArgs
            {
                Name = "instance-type",
                Values = new[]
                {
                    "p4d.24xlarge",
                },
            },
            new Aws.Ec2.Inputs.GetCapacityBlockReservationFilterInputArgs
            {
                Name = "state",
                Values = new[]
                {
                    "active",
                },
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.LookupCapacityBlockReservation(ctx, &ec2.LookupCapacityBlockReservationArgs{
			Filters: []ec2.GetCapacityBlockReservationFilter{
				{
					Name: "instance-type",
					Values: []string{
						"p4d.24xlarge",
					},
				},
				{
					Name: "state",
					Values: []string{
						"active",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

data "aws_ec2_getcapacityblockreservation" "example" {
  filters {
    name   = "instance-type"
    values = ["p4d.24xlarge"]
  }
  filters {
    name   = "state"
    values = ["active"]
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetCapacityBlockReservationArgs;
import com.pulumi.aws.ec2.inputs.GetCapacityBlockReservationFilterArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var example = Ec2Functions.getCapacityBlockReservation(GetCapacityBlockReservationArgs.builder()
            .filters(
                GetCapacityBlockReservationFilterArgs.builder()
                    .name("instance-type")
                    .values("p4d.24xlarge")
                    .build(),
                GetCapacityBlockReservationFilterArgs.builder()
                    .name("state")
                    .values("active")
                    .build())
            .build());

    }
}
variables:
  example:
    fn::invoke:
      function: aws:ec2:getCapacityBlockReservation
      arguments:
        filters:
          - name: instance-type
            values:
              - p4d.24xlarge
          - name: state
            values:
              - active

Lookup by tag

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

const example = aws.ec2.getCapacityBlockReservation({
    filters: [{
        name: "tag:Project",
        values: ["ml-training"],
    }],
});
import pulumi
import pulumi_aws as aws

example = aws.ec2.get_capacity_block_reservation(filters=[{
    "name": "tag:Project",
    "values": ["ml-training"],
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = Aws.Ec2.GetCapacityBlockReservation.Invoke(new()
    {
        Filters = new[]
        {
            new Aws.Ec2.Inputs.GetCapacityBlockReservationFilterInputArgs
            {
                Name = "tag:Project",
                Values = new[]
                {
                    "ml-training",
                },
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.LookupCapacityBlockReservation(ctx, &ec2.LookupCapacityBlockReservationArgs{
			Filters: []ec2.GetCapacityBlockReservationFilter{
				{
					Name: "tag:Project",
					Values: []string{
						"ml-training",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

data "aws_ec2_getcapacityblockreservation" "example" {
  filters {
    name   = "tag:Project"
    values = ["ml-training"]
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetCapacityBlockReservationArgs;
import com.pulumi.aws.ec2.inputs.GetCapacityBlockReservationFilterArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var example = Ec2Functions.getCapacityBlockReservation(GetCapacityBlockReservationArgs.builder()
            .filters(GetCapacityBlockReservationFilterArgs.builder()
                .name("tag:Project")
                .values("ml-training")
                .build())
            .build());

    }
}
variables:
  example:
    fn::invoke:
      function: aws:ec2:getCapacityBlockReservation
      arguments:
        filters:
          - name: tag:Project
            values:
              - ml-training

args Arguments passed to this invoke. Arguments for getCapacityBlockReservation. options Invoke options controlling this call.

Implementation

Future<GetCapacityBlockReservationResult> getCapacityBlockReservation(
  GetCapacityBlockReservationArgs args, {
  pulumi.InvokeOptions? options,
}) async {
  final deployment = pulumi.Deployment.instance;
  final result = await deployment.invoke<Map<String, dynamic>>(
    'aws:ec2/getCapacityBlockReservation:getCapacityBlockReservation',
    args.toMap(),
    options: pulumi.toDeploymentInvokeOptions(options),
  );
  return GetCapacityBlockReservationResult.fromMap(result);
}