VpcOrigin class

Creates an Amazon CloudFront VPC origin.

For information about CloudFront VPC origins, see Amazon CloudFront Developer Guide - Restrict access with VPC origins.

Example Usage

Application Load Balancer

The following example below creates a CloudFront VPC origin for a Application Load Balancer.

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

const alb = new aws.cloudfront.VpcOrigin("alb", {vpcOriginEndpointConfig: {
    originSslProtocols: {
        items: ["TLSv1.2"],
        quantity: 1,
    },
    name: "example-vpc-origin",
    arn: _this.arn,
    httpPort: 8080,
    httpsPort: 8443,
    originProtocolPolicy: "https-only",
}});
import pulumi
import pulumi_aws as aws

alb = aws.cloudfront.VpcOrigin("alb", vpc_origin_endpoint_config={
    "origin_ssl_protocols": {
        "items": ["TLSv1.2"],
        "quantity": 1,
    },
    "name": "example-vpc-origin",
    "arn": this["arn"],
    "http_port": 8080,
    "https_port": 8443,
    "origin_protocol_policy": "https-only",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var alb = new Aws.CloudFront.VpcOrigin("alb", new()
    {
        VpcOriginEndpointConfig = new Aws.CloudFront.Inputs.VpcOriginVpcOriginEndpointConfigArgs
        {
            OriginSslProtocols = new Aws.CloudFront.Inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs
            {
                Items = new[]
                {
                    "TLSv1.2",
                },
                Quantity = 1,
            },
            Name = "example-vpc-origin",
            Arn = @this.Arn,
            HttpPort = 8080,
            HttpsPort = 8443,
            OriginProtocolPolicy = "https-only",
        },
    });

});
package main

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

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfront.NewVpcOrigin(ctx, "alb", &cloudfront.VpcOriginArgs{
			VpcOriginEndpointConfig: &cloudfront.VpcOriginVpcOriginEndpointConfigArgs{
				OriginSslProtocols: &cloudfront.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs{
					Items: pulumi.StringArray{
						pulumi.String("TLSv1.2"),
					},
					Quantity: pulumi.Int(1),
				},
				Name:                 pulumi.String("example-vpc-origin"),
				Arn:                  pulumi.Any(this.Arn),
				HttpPort:             pulumi.Int(8080),
				HttpsPort:            pulumi.Int(8443),
				OriginProtocolPolicy: pulumi.String("https-only"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

resource "aws_cloudfront_vpcorigin" "alb" {
  vpc_origin_endpoint_config = {
    origin_ssl_protocols = {
      items    = ["TLSv1.2"]
      quantity = 1
    }
    name                   = "example-vpc-origin"
    arn                    = this.arn
    http_port              = 8080
    https_port             = 8443
    origin_protocol_policy = "https-only"
  }
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloudfront.VpcOrigin;
import com.pulumi.aws.cloudfront.VpcOriginArgs;
import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigArgs;
import com.pulumi.aws.cloudfront.inputs.VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs;
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) {
        var alb = new VpcOrigin("alb", VpcOriginArgs.builder()
            .vpcOriginEndpointConfig(VpcOriginVpcOriginEndpointConfigArgs.builder()
                .originSslProtocols(VpcOriginVpcOriginEndpointConfigOriginSslProtocolsArgs.builder()
                    .items("TLSv1.2")
                    .quantity(1)
                    .build())
                .name("example-vpc-origin")
                .arn(this_.arn())
                .httpPort(8080)
                .httpsPort(8443)
                .originProtocolPolicy("https-only")
                .build())
            .build());

    }
}
resources:
  alb:
    type: aws:cloudfront:VpcOrigin
    properties:
      vpcOriginEndpointConfig:
        originSslProtocols:
          items:
            - TLSv1.2
          quantity: 1
        name: example-vpc-origin
        arn: ${this.arn}
        httpPort: 8080
        httpsPort: 8443
        originProtocolPolicy: https-only

Import

Using pulumi import, import Cloudfront VPC origins using the id. For example:

% pulumi import aws_cloudfront_vpc_origin vo_JQEa410sssUFoY6wMkx69j

Constructors

VpcOrigin(String name, {VpcOriginArgs? args, CustomResourceOptions? options})
Creates a new VpcOrigin. name The Pulumi resource name. args Arguments used to configure this VpcOrigin. The set of arguments for VpcOrigin. options Resource options controlling this resource's behavior.
VpcOrigin.reference(String urn)
Creates a typed reference to an existing VpcOrigin resource.

Properties

arn ↔ Output<String>
The VPC origin ARN.
latefinal
childResources → Set<Resource>
finalinherited
completionSources ↔ Map<String, IOutputCompletionSource>
latefinalinherited
etag ↔ Output<String>
The current version of the origin.
latefinal
hashCode → int
The hash code for this object.
no setterinherited
id ↔ Output<String>
getter/setter pairinherited
isCustom → bool
Returns whether this resource is provider-managed.
no setterinherited
isProtected → bool
Returns whether this resource is protected from deletion.
no setterinherited
isRemote → bool
Whether this resource is registered as remote.
no setterinherited
isResourceReference → bool
Whether this instance represents a resource value returned over RPC.
finalinherited
resourceTransforms → List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
tags ↔ Output<Map<String, String>?>
Key-value tags for the place index. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
latefinal
tagsAll ↔ Output<Map<String, String>>
A map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
latefinal
timeouts ↔ Output<VpcOriginTimeouts?>
latefinal
transformations → List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
urn ↔ Output<String>
latefinalinherited
vpcOriginEndpointConfig ↔ Output<VpcOriginVpcOriginEndpointConfig>
The VPC origin endpoint configuration.
latefinal

Methods

failId(Object error) → void
Completes this resource ID with an error when registration fails.
inherited
failOutputs(Object error) → void
Completes all output properties with error.
inherited
failUrn(Object error) → void
Completes this resource URN with an error when registration fails.
inherited
getProvider(String moduleMember) → ProviderResource?
Returns provider for moduleMember's package, if configured.
inherited
getResourceName() → String
Returns this resource's logical name.
inherited
getResourceType() → String
Returns this resource's Pulumi type token.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerOutput<T>(String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output<T>
Registers a dynamic output property for this resource.
inherited
resolveId(String? value, {required bool isKnown}) → void
Resolves the provider-assigned ID for this resource.
inherited
resolveOutputs(Struct outputs) → void
Resolves all output properties from a monitor response payload.
inherited
resolveUrn(String value) → void
Resolves this resource's URN once assigned by the engine.
inherited
serializeProperties(Map<String, dynamic> properties) → Future<Struct>
Serializes resource properties for RPC transmission.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

get(String name, Input<String> id, {VpcOriginState? state, CustomResourceOptions? options}) → VpcOrigin
Gets an existing VpcOrigin resource's state with the given name and id.