CoreNetwork class
Manages a Network Manager Core Network.
Use this resource to create and manage a core network within a global network.
Example Usage
Basic
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.networkmanager.CoreNetwork("example", {globalNetworkId: exampleAwsNetworkmanagerGlobalNetwork.id});
import pulumi
import pulumi_aws as aws
example = aws.networkmanager.CoreNetwork("example", global_network_id=example_aws_networkmanager_global_network["id"])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleAwsNetworkmanagerGlobalNetwork.Id,
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: pulumi.Any(exampleAwsNetworkmanagerGlobalNetwork.Id),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = exampleAwsNetworkmanagerGlobalNetwork.id
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
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 example = new CoreNetwork("example", CoreNetworkArgs.builder()
.globalNetworkId(exampleAwsNetworkmanagerGlobalNetwork.id())
.build());
}
}
resources:
example:
type: aws:networkmanager:CoreNetwork
properties:
globalNetworkId: ${exampleAwsNetworkmanagerGlobalNetwork.id}
With description
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.networkmanager.CoreNetwork("example", {
globalNetworkId: exampleAwsNetworkmanagerGlobalNetwork.id,
description: "example",
});
import pulumi
import pulumi_aws as aws
example = aws.networkmanager.CoreNetwork("example",
global_network_id=example_aws_networkmanager_global_network["id"],
description="example")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleAwsNetworkmanagerGlobalNetwork.Id,
Description = "example",
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: pulumi.Any(exampleAwsNetworkmanagerGlobalNetwork.Id),
Description: pulumi.String("example"),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = exampleAwsNetworkmanagerGlobalNetwork.id
description = "example"
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
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 example = new CoreNetwork("example", CoreNetworkArgs.builder()
.globalNetworkId(exampleAwsNetworkmanagerGlobalNetwork.id())
.description("example")
.build());
}
}
resources:
example:
type: aws:networkmanager:CoreNetwork
properties:
globalNetworkId: ${exampleAwsNetworkmanagerGlobalNetwork.id}
description: example
With tags
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.networkmanager.CoreNetwork("example", {
globalNetworkId: exampleAwsNetworkmanagerGlobalNetwork.id,
tags: {
hello: "world",
},
});
import pulumi
import pulumi_aws as aws
example = aws.networkmanager.CoreNetwork("example",
global_network_id=example_aws_networkmanager_global_network["id"],
tags={
"hello": "world",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleAwsNetworkmanagerGlobalNetwork.Id,
Tags =
{
{ "hello", "world" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: pulumi.Any(exampleAwsNetworkmanagerGlobalNetwork.Id),
Tags: pulumi.StringMap{
"hello": pulumi.String("world"),
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = exampleAwsNetworkmanagerGlobalNetwork.id
tags = {
"hello" = "world"
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
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 example = new CoreNetwork("example", CoreNetworkArgs.builder()
.globalNetworkId(exampleAwsNetworkmanagerGlobalNetwork.id())
.tags(Map.of("hello", "world"))
.build());
}
}
resources:
example:
type: aws:networkmanager:CoreNetwork
properties:
globalNetworkId: ${exampleAwsNetworkmanagerGlobalNetwork.id}
tags:
hello: world
With VPC Attachment (Single Region)
The example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the createBasePolicy argument to true if your core network does not currently have any LIVE policies (e.g. this is the first pulumi up with the core network resource), since a LIVE policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a LIVE policy, you may exclude the createBasePolicy argument. There are 2 options to implement this:
- Option 1: Use the
basePolicyDocumentargument that allows the most customizations to a base policy. Use this to customize theedgeLocationsasn. In the example below,us-west-2and ASN65500are used in the base policy. - Option 2: Use the
createBasePolicyargument only. This creates a base policy in the region specified in theproviderblock.
Option 1 - using basePolicyDocument
If you require a custom ASN for the edge location, please use the basePolicyDocument argument to pass a specific ASN. For example:
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork("example", {});
const base = aws.networkmanager.getCoreNetworkPolicyDocument({
coreNetworkConfigurations: [{
edgeLocations: [{
location: "us-west-2",
asn: "65500",
}],
asnRanges: ["65022-65534"],
}],
segments: [{
name: "segment",
}],
});
const exampleCoreNetwork = new aws.networkmanager.CoreNetwork("example", {
globalNetworkId: exampleGlobalNetwork.id,
basePolicyDocument: base.then(base => base.json),
createBasePolicy: true,
});
const exampleVpcAttachment = new aws.networkmanager.VpcAttachment("example", {
coreNetworkId: exampleCoreNetwork.id,
subnetArns: exampleAwsSubnet.map(__item => __item.arn),
vpcArn: exampleAwsVpc.arn,
});
const example = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({
coreNetworkConfigurations: [{
edgeLocations: [{
location: "us-west-2",
asn: "65500",
}],
asnRanges: ["65022-65534"],
}],
segmentActions: [{
action: "create-route",
segment: "segment",
destinationCidrBlocks: ["0.0.0.0/0"],
destinations: [exampleVpcAttachment.id],
}],
segments: [{
name: "segment",
}],
});
const exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment("example", {
coreNetworkId: exampleCoreNetwork.id,
policyDocument: example.json,
});
import pulumi
import pulumi_aws as aws
example_global_network = aws.networkmanager.GlobalNetwork("example")
base = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[{
"edge_locations": [{
"location": "us-west-2",
"asn": "65500",
}],
"asn_ranges": ["65022-65534"],
}],
segments=[{
"name": "segment",
}])
example_core_network = aws.networkmanager.CoreNetwork("example",
global_network_id=example_global_network.id,
base_policy_document=base.json,
create_base_policy=True)
example_vpc_attachment = aws.networkmanager.VpcAttachment("example",
core_network_id=example_core_network.id,
subnet_arns=[__item["arn"] for __item in example_aws_subnet],
vpc_arn=example_aws_vpc["arn"])
example = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[{
"edge_locations": [{
"location": "us-west-2",
"asn": "65500",
}],
"asn_ranges": ["65022-65534"],
}],
segment_actions=[{
"action": "create-route",
"segment": "segment",
"destination_cidr_blocks": ["0.0.0.0/0"],
"destinations": [example_vpc_attachment.id],
}],
segments=[{
"name": "segment",
}])
example_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment("example",
core_network_id=example_core_network.id,
policy_document=example.json)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork("example");
var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()
{
CoreNetworkConfigurations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs
{
EdgeLocations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-west-2",
Asn = "65500",
},
},
AsnRanges = new[]
{
"65022-65534",
},
},
},
Segments = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment",
},
},
});
var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleGlobalNetwork.Id,
BasePolicyDocument = @base.Apply(@base => @base.Apply(getCoreNetworkPolicyDocumentResult => getCoreNetworkPolicyDocumentResult.Json)),
CreateBasePolicy = true,
});
var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment("example", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
SubnetArns = exampleAwsSubnet.Select(__item => __item.Arn).ToList(),
VpcArn = exampleAwsVpc.Arn,
});
var example = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()
{
CoreNetworkConfigurations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs
{
EdgeLocations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-west-2",
Asn = "65500",
},
},
AsnRanges = new[]
{
"65022-65534",
},
},
},
SegmentActions = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs
{
Action = "create-route",
Segment = "segment",
DestinationCidrBlocks = new[]
{
"0.0.0.0/0",
},
Destinations = new[]
{
exampleVpcAttachment.Id,
},
},
},
Segments = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment",
},
},
});
var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment("example", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
PolicyDocument = example.Apply(getCoreNetworkPolicyDocumentResult => getCoreNetworkPolicyDocumentResult.Json),
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "example", nil)
if err != nil {
return err
}
base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{
CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{
{
EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{
{
Location: "us-west-2",
Asn: pulumi.StringRef("65500"),
},
},
AsnRanges: []string{
"65022-65534",
},
},
},
Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{
{
Name: "segment",
},
},
}, nil);
if err != nil {
return err
}
exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: exampleGlobalNetwork.ID().ToIDOutput().ToStringOutput(),
BasePolicyDocument: pulumi.String(base.Json),
CreateBasePolicy: pulumi.Bool(true),
})
if err != nil {
return err
}
var splat0 []interface{}
for _, val0 := range exampleAwsSubnet {
splat0 = append(splat0, val0.(map[string]interface{})["arn"])
}
exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "example", &networkmanager.VpcAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
SubnetArns: toPulumiArray(splat0),
VpcArn: pulumi.Any(exampleAwsVpc.Arn),
})
if err != nil {
return err
}
example := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{
CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{
EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{
Location: pulumi.String("us-west-2"),
Asn: pulumi.String("65500"),
},
},
AsnRanges: pulumi.StringArray{
pulumi.String("65022-65534"),
},
},
},
SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{
Action: pulumi.String("create-route"),
Segment: pulumi.String("segment"),
DestinationCidrBlocks: pulumi.StringArray{
pulumi.String("0.0.0.0/0"),
},
Destinations: pulumi.StringArray{
exampleVpcAttachment.ID().ToIDOutput().ToStringOutput(),
},
},
},
Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{
Name: pulumi.String("segment"),
},
},
}, nil);
_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "example", &networkmanager.CoreNetworkPolicyAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
PolicyDocument: example.Json(),
})
if err != nil {
return err
}
return nil
})
}
func toPulumiArray(arr []) pulumi.Array {
var pulumiArr pulumi.Array
for _, v := range arr {
pulumiArr = append(pulumiArr, pulumi.(v))
}
return pulumiArr
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_networkmanager_getcorenetworkpolicydocument" "base" {
core_network_configurations {
edge_locations {
location = "us-west-2"
asn = "65500"
}
asn_ranges = ["65022-65534"]
}
segments {
name = "segment"
}
}
data "aws_networkmanager_getcorenetworkpolicydocument" "example" {
core_network_configurations {
edge_locations {
location = "us-west-2"
asn = "65500"
}
asn_ranges = ["65022-65534"]
}
segment_actions {
action = "create-route"
segment = "segment"
destination_cidr_blocks = ["0.0.0.0/0"]
destinations = [aws_networkmanager_vpcattachment.example.id]
}
segments {
name = "segment"
}
}
resource "aws_networkmanager_globalnetwork" "example" {
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = aws_networkmanager_globalnetwork.example.id
base_policy_document = data.aws_networkmanager_getcorenetworkpolicydocument.base.json
create_base_policy = true
}
resource "aws_networkmanager_corenetworkpolicyattachment" "example" {
core_network_id = aws_networkmanager_corenetwork.example.id
policy_document = data.aws_networkmanager_getcorenetworkpolicydocument.example.json
}
resource "aws_networkmanager_vpcattachment" "example" {
core_network_id = aws_networkmanager_corenetwork.example.id
subnet_arns = exampleAwsSubnet[*].arn
vpc_arn = exampleAwsVpc.arn
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.GlobalNetwork;
import com.pulumi.aws.networkmanager.NetworkmanagerFunctions;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentArgs;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
import com.pulumi.aws.networkmanager.VpcAttachment;
import com.pulumi.aws.networkmanager.VpcAttachmentArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentActionArgs;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;
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 exampleGlobalNetwork = new GlobalNetwork("exampleGlobalNetwork");
final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()
.coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()
.edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-west-2")
.asn("65500")
.build())
.asnRanges("65022-65534")
.build())
.segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment")
.build())
.build());
var exampleCoreNetwork = new CoreNetwork("exampleCoreNetwork", CoreNetworkArgs.builder()
.globalNetworkId(exampleGlobalNetwork.id())
.basePolicyDocument(base.json())
.createBasePolicy(true)
.build());
var exampleVpcAttachment = new VpcAttachment("exampleVpcAttachment", VpcAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.subnetArns(exampleAwsSubnet.stream().map(element -> element.arn()).collect(toList()))
.vpcArn(exampleAwsVpc.arn())
.build());
final var example = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()
.coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()
.edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-west-2")
.asn("65500")
.build())
.asnRanges("65022-65534")
.build())
.segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()
.action("create-route")
.segment("segment")
.destinationCidrBlocks("0.0.0.0/0")
.destinations(exampleVpcAttachment.id())
.build())
.segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment")
.build())
.build());
var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment("exampleCoreNetworkPolicyAttachment", CoreNetworkPolicyAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.policyDocument(example.applyValue(_example -> _example.json()))
.build());
}
}
Option 2 - createBasePolicy only
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork("example", {});
const exampleCoreNetwork = new aws.networkmanager.CoreNetwork("example", {
globalNetworkId: exampleGlobalNetwork.id,
createBasePolicy: true,
});
const exampleVpcAttachment = new aws.networkmanager.VpcAttachment("example", {
coreNetworkId: exampleCoreNetwork.id,
subnetArns: exampleAwsSubnet.map(__item => __item.arn),
vpcArn: exampleAwsVpc.arn,
});
const example = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({
coreNetworkConfigurations: [{
edgeLocations: [{
location: "us-west-2",
}],
asnRanges: ["65022-65534"],
}],
segmentActions: [{
action: "create-route",
segment: "segment",
destinationCidrBlocks: ["0.0.0.0/0"],
destinations: [exampleVpcAttachment.id],
}],
segments: [{
name: "segment",
}],
});
const exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment("example", {
coreNetworkId: exampleCoreNetwork.id,
policyDocument: example.json,
});
import pulumi
import pulumi_aws as aws
example_global_network = aws.networkmanager.GlobalNetwork("example")
example_core_network = aws.networkmanager.CoreNetwork("example",
global_network_id=example_global_network.id,
create_base_policy=True)
example_vpc_attachment = aws.networkmanager.VpcAttachment("example",
core_network_id=example_core_network.id,
subnet_arns=[__item["arn"] for __item in example_aws_subnet],
vpc_arn=example_aws_vpc["arn"])
example = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[{
"edge_locations": [{
"location": "us-west-2",
}],
"asn_ranges": ["65022-65534"],
}],
segment_actions=[{
"action": "create-route",
"segment": "segment",
"destination_cidr_blocks": ["0.0.0.0/0"],
"destinations": [example_vpc_attachment.id],
}],
segments=[{
"name": "segment",
}])
example_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment("example",
core_network_id=example_core_network.id,
policy_document=example.json)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork("example");
var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleGlobalNetwork.Id,
CreateBasePolicy = true,
});
var exampleVpcAttachment = new Aws.NetworkManager.VpcAttachment("example", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
SubnetArns = exampleAwsSubnet.Select(__item => __item.Arn).ToList(),
VpcArn = exampleAwsVpc.Arn,
});
var example = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()
{
CoreNetworkConfigurations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs
{
EdgeLocations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-west-2",
},
},
AsnRanges = new[]
{
"65022-65534",
},
},
},
SegmentActions = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs
{
Action = "create-route",
Segment = "segment",
DestinationCidrBlocks = new[]
{
"0.0.0.0/0",
},
Destinations = new[]
{
exampleVpcAttachment.Id,
},
},
},
Segments = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment",
},
},
});
var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment("example", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
PolicyDocument = example.Apply(getCoreNetworkPolicyDocumentResult => getCoreNetworkPolicyDocumentResult.Json),
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "example", nil)
if err != nil {
return err
}
exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: exampleGlobalNetwork.ID().ToIDOutput().ToStringOutput(),
CreateBasePolicy: pulumi.Bool(true),
})
if err != nil {
return err
}
var splat0 []interface{}
for _, val0 := range exampleAwsSubnet {
splat0 = append(splat0, val0.(map[string]interface{})["arn"])
}
exampleVpcAttachment, err := networkmanager.NewVpcAttachment(ctx, "example", &networkmanager.VpcAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
SubnetArns: toPulumiArray(splat0),
VpcArn: pulumi.Any(exampleAwsVpc.Arn),
})
if err != nil {
return err
}
example := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{
CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{
EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{
Location: pulumi.String("us-west-2"),
},
},
AsnRanges: pulumi.StringArray{
pulumi.String("65022-65534"),
},
},
},
SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{
Action: pulumi.String("create-route"),
Segment: pulumi.String("segment"),
DestinationCidrBlocks: pulumi.StringArray{
pulumi.String("0.0.0.0/0"),
},
Destinations: pulumi.StringArray{
exampleVpcAttachment.ID().ToIDOutput().ToStringOutput(),
},
},
},
Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{
Name: pulumi.String("segment"),
},
},
}, nil);
_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "example", &networkmanager.CoreNetworkPolicyAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
PolicyDocument: example.Json(),
})
if err != nil {
return err
}
return nil
})
}
func toPulumiArray(arr []) pulumi.Array {
var pulumiArr pulumi.Array
for _, v := range arr {
pulumiArr = append(pulumiArr, pulumi.(v))
}
return pulumiArr
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_networkmanager_getcorenetworkpolicydocument" "example" {
core_network_configurations {
edge_locations {
location = "us-west-2"
}
asn_ranges = ["65022-65534"]
}
segment_actions {
action = "create-route"
segment = "segment"
destination_cidr_blocks = ["0.0.0.0/0"]
destinations = [aws_networkmanager_vpcattachment.example.id]
}
segments {
name = "segment"
}
}
resource "aws_networkmanager_globalnetwork" "example" {
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = aws_networkmanager_globalnetwork.example.id
create_base_policy = true
}
resource "aws_networkmanager_corenetworkpolicyattachment" "example" {
core_network_id = aws_networkmanager_corenetwork.example.id
policy_document = data.aws_networkmanager_getcorenetworkpolicydocument.example.json
}
resource "aws_networkmanager_vpcattachment" "example" {
core_network_id = aws_networkmanager_corenetwork.example.id
subnet_arns = exampleAwsSubnet[*].arn
vpc_arn = exampleAwsVpc.arn
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.GlobalNetwork;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
import com.pulumi.aws.networkmanager.VpcAttachment;
import com.pulumi.aws.networkmanager.VpcAttachmentArgs;
import com.pulumi.aws.networkmanager.NetworkmanagerFunctions;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentActionArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentArgs;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;
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 exampleGlobalNetwork = new GlobalNetwork("exampleGlobalNetwork");
var exampleCoreNetwork = new CoreNetwork("exampleCoreNetwork", CoreNetworkArgs.builder()
.globalNetworkId(exampleGlobalNetwork.id())
.createBasePolicy(true)
.build());
var exampleVpcAttachment = new VpcAttachment("exampleVpcAttachment", VpcAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.subnetArns(exampleAwsSubnet.stream().map(element -> element.arn()).collect(toList()))
.vpcArn(exampleAwsVpc.arn())
.build());
final var example = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()
.coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()
.edgeLocations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-west-2")
.build())
.asnRanges("65022-65534")
.build())
.segmentActions(GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()
.action("create-route")
.segment("segment")
.destinationCidrBlocks("0.0.0.0/0")
.destinations(exampleVpcAttachment.id())
.build())
.segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment")
.build())
.build());
var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment("exampleCoreNetworkPolicyAttachment", CoreNetworkPolicyAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.policyDocument(example.applyValue(_example -> _example.json()))
.build());
}
}
With VPC Attachment (Multi-Region)
The example below illustrates the scenario where your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Set the createBasePolicy argument of the aws.networkmanager.CoreNetwork resource to true if your core network does not currently have any LIVE policies (e.g. this is the first pulumi up with the core network resource), since a LIVE policy is required before VPCs can be attached to the core network. Otherwise, if your core network already has a LIVE policy, you may exclude the createBasePolicy argument. For multi-region in a core network that does not yet have a LIVE policy, there are 2 options:
- Option 1: Use the
basePolicyDocumentargument that allows the most customizations to a base policy. Use this to customize theedgeLocationsasn. In the example below,us-west-2,us-east-1and specific ASNs are used in the base policy. - Option 2: Pass a list of regions to the
aws.networkmanager.CoreNetworkbasePolicyRegionsargument. In the example below,us-west-2andus-east-1are specified in the base policy.
Option 1 - using basePolicyDocument
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork("example", {});
const base = aws.networkmanager.getCoreNetworkPolicyDocument({
coreNetworkConfigurations: [{
edgeLocations: [
{
location: "us-west-2",
asn: "65500",
},
{
location: "us-east-1",
asn: "65501",
},
],
asnRanges: ["65022-65534"],
}],
segments: [{
name: "segment",
}],
});
const exampleCoreNetwork = new aws.networkmanager.CoreNetwork("example", {
globalNetworkId: exampleGlobalNetwork.id,
basePolicyDocument: base.then(base => base.json),
createBasePolicy: true,
});
const exampleUsWest2 = new aws.networkmanager.VpcAttachment("example_us_west_2", {
coreNetworkId: exampleCoreNetwork.id,
subnetArns: exampleUsWest2AwsSubnet.map(__item => __item.arn),
vpcArn: exampleUsWest2AwsVpc.arn,
});
const exampleUsEast1 = new aws.networkmanager.VpcAttachment("example_us_east_1", {
coreNetworkId: exampleCoreNetwork.id,
subnetArns: exampleUsEast1AwsSubnet.map(__item => __item.arn),
vpcArn: exampleUsEast1AwsVpc.arn,
});
const example = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({
coreNetworkConfigurations: [{
edgeLocations: [
{
location: "us-west-2",
asn: "65500",
},
{
location: "us-east-1",
asn: "65501",
},
],
asnRanges: ["65022-65534"],
}],
segmentActions: [
{
action: "create-route",
segment: "segment",
destinationCidrBlocks: ["10.0.0.0/16"],
destinations: [exampleUsWest2.id],
},
{
action: "create-route",
segment: "segment",
destinationCidrBlocks: ["10.1.0.0/16"],
destinations: [exampleUsEast1.id],
},
],
segments: [
{
name: "segment",
},
{
name: "segment2",
},
],
});
const exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment("example", {
coreNetworkId: exampleCoreNetwork.id,
policyDocument: example.json,
});
import pulumi
import pulumi_aws as aws
example_global_network = aws.networkmanager.GlobalNetwork("example")
base = aws.networkmanager.get_core_network_policy_document(core_network_configurations=[{
"edge_locations": [
{
"location": "us-west-2",
"asn": "65500",
},
{
"location": "us-east-1",
"asn": "65501",
},
],
"asn_ranges": ["65022-65534"],
}],
segments=[{
"name": "segment",
}])
example_core_network = aws.networkmanager.CoreNetwork("example",
global_network_id=example_global_network.id,
base_policy_document=base.json,
create_base_policy=True)
example_us_west2 = aws.networkmanager.VpcAttachment("example_us_west_2",
core_network_id=example_core_network.id,
subnet_arns=[__item["arn"] for __item in example_us_west2_aws_subnet],
vpc_arn=example_us_west2_aws_vpc["arn"])
example_us_east1 = aws.networkmanager.VpcAttachment("example_us_east_1",
core_network_id=example_core_network.id,
subnet_arns=[__item["arn"] for __item in example_us_east1_aws_subnet],
vpc_arn=example_us_east1_aws_vpc["arn"])
example = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[{
"edge_locations": [
{
"location": "us-west-2",
"asn": "65500",
},
{
"location": "us-east-1",
"asn": "65501",
},
],
"asn_ranges": ["65022-65534"],
}],
segment_actions=[
{
"action": "create-route",
"segment": "segment",
"destination_cidr_blocks": ["10.0.0.0/16"],
"destinations": [example_us_west2.id],
},
{
"action": "create-route",
"segment": "segment",
"destination_cidr_blocks": ["10.1.0.0/16"],
"destinations": [example_us_east1.id],
},
],
segments=[
{
"name": "segment",
},
{
"name": "segment2",
},
])
example_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment("example",
core_network_id=example_core_network.id,
policy_document=example.json)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork("example");
var @base = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()
{
CoreNetworkConfigurations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs
{
EdgeLocations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-west-2",
Asn = "65500",
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-east-1",
Asn = "65501",
},
},
AsnRanges = new[]
{
"65022-65534",
},
},
},
Segments = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment",
},
},
});
var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleGlobalNetwork.Id,
BasePolicyDocument = @base.Apply(@base => @base.Apply(getCoreNetworkPolicyDocumentResult => getCoreNetworkPolicyDocumentResult.Json)),
CreateBasePolicy = true,
});
var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment("example_us_west_2", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
SubnetArns = exampleUsWest2AwsSubnet.Select(__item => __item.Arn).ToList(),
VpcArn = exampleUsWest2AwsVpc.Arn,
});
var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment("example_us_east_1", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
SubnetArns = exampleUsEast1AwsSubnet.Select(__item => __item.Arn).ToList(),
VpcArn = exampleUsEast1AwsVpc.Arn,
});
var example = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()
{
CoreNetworkConfigurations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs
{
EdgeLocations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-west-2",
Asn = "65500",
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-east-1",
Asn = "65501",
},
},
AsnRanges = new[]
{
"65022-65534",
},
},
},
SegmentActions = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs
{
Action = "create-route",
Segment = "segment",
DestinationCidrBlocks = new[]
{
"10.0.0.0/16",
},
Destinations = new[]
{
exampleUsWest2.Id,
},
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs
{
Action = "create-route",
Segment = "segment",
DestinationCidrBlocks = new[]
{
"10.1.0.0/16",
},
Destinations = new[]
{
exampleUsEast1.Id,
},
},
},
Segments = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment",
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment2",
},
},
});
var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment("example", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
PolicyDocument = example.Apply(getCoreNetworkPolicyDocumentResult => getCoreNetworkPolicyDocumentResult.Json),
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "example", nil)
if err != nil {
return err
}
base, err := networkmanager.GetCoreNetworkPolicyDocument(ctx, &networkmanager.GetCoreNetworkPolicyDocumentArgs{
CoreNetworkConfigurations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfiguration{
{
EdgeLocations: []networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocation{
{
Location: "us-west-2",
Asn: pulumi.StringRef("65500"),
},
{
Location: "us-east-1",
Asn: pulumi.StringRef("65501"),
},
},
AsnRanges: []string{
"65022-65534",
},
},
},
Segments: []networkmanager.GetCoreNetworkPolicyDocumentSegment{
{
Name: "segment",
},
},
}, nil);
if err != nil {
return err
}
exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: exampleGlobalNetwork.ID().ToIDOutput().ToStringOutput(),
BasePolicyDocument: pulumi.String(base.Json),
CreateBasePolicy: pulumi.Bool(true),
})
if err != nil {
return err
}
var splat0 []interface{}
for _, val0 := range exampleUsWest2AwsSubnet {
splat0 = append(splat0, val0.(map[string]interface{})["arn"])
}
exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "example_us_west_2", &networkmanager.VpcAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
SubnetArns: toPulumiArray(splat0),
VpcArn: pulumi.Any(exampleUsWest2AwsVpc.Arn),
})
if err != nil {
return err
}
var splat1 []interface{}
for _, val0 := range exampleUsEast1AwsSubnet {
splat1 = append(splat1, val0.(map[string]interface{})["arn"])
}
exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "example_us_east_1", &networkmanager.VpcAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
SubnetArns: toPulumiArray(splat1),
VpcArn: pulumi.Any(exampleUsEast1AwsVpc.Arn),
})
if err != nil {
return err
}
example := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{
CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{
EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{
Location: pulumi.String("us-west-2"),
Asn: pulumi.String("65500"),
},
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{
Location: pulumi.String("us-east-1"),
Asn: pulumi.String("65501"),
},
},
AsnRanges: pulumi.StringArray{
pulumi.String("65022-65534"),
},
},
},
SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{
Action: pulumi.String("create-route"),
Segment: pulumi.String("segment"),
DestinationCidrBlocks: pulumi.StringArray{
pulumi.String("10.0.0.0/16"),
},
Destinations: pulumi.StringArray{
exampleUsWest2.ID().ToIDOutput().ToStringOutput(),
},
},
&networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{
Action: pulumi.String("create-route"),
Segment: pulumi.String("segment"),
DestinationCidrBlocks: pulumi.StringArray{
pulumi.String("10.1.0.0/16"),
},
Destinations: pulumi.StringArray{
exampleUsEast1.ID().ToIDOutput().ToStringOutput(),
},
},
},
Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{
Name: pulumi.String("segment"),
},
&networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{
Name: pulumi.String("segment2"),
},
},
}, nil);
_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "example", &networkmanager.CoreNetworkPolicyAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
PolicyDocument: example.Json(),
})
if err != nil {
return err
}
return nil
})
}
func toPulumiArray(arr []) pulumi.Array {
var pulumiArr pulumi.Array
for _, v := range arr {
pulumiArr = append(pulumiArr, pulumi.(v))
}
return pulumiArr
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_networkmanager_getcorenetworkpolicydocument" "base" {
core_network_configurations {
edge_locations {
location = "us-west-2"
asn = "65500"
}
edge_locations {
location = "us-east-1"
asn = "65501"
}
asn_ranges = ["65022-65534"]
}
segments {
name = "segment"
}
}
data "aws_networkmanager_getcorenetworkpolicydocument" "example" {
core_network_configurations {
edge_locations {
location = "us-west-2"
asn = "65500"
}
edge_locations {
location = "us-east-1"
asn = "65501"
}
asn_ranges = ["65022-65534"]
}
segment_actions {
action = "create-route"
segment = "segment"
destination_cidr_blocks = ["10.0.0.0/16"]
destinations = [aws_networkmanager_vpcattachment.example_us_west_2.id]
}
segment_actions {
action = "create-route"
segment = "segment"
destination_cidr_blocks = ["10.1.0.0/16"]
destinations = [aws_networkmanager_vpcattachment.example_us_east_1.id]
}
segments {
name = "segment"
}
segments {
name = "segment2"
}
}
resource "aws_networkmanager_globalnetwork" "example" {
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = aws_networkmanager_globalnetwork.example.id
base_policy_document = data.aws_networkmanager_getcorenetworkpolicydocument.base.json
create_base_policy = true
}
resource "aws_networkmanager_corenetworkpolicyattachment" "example" {
core_network_id = aws_networkmanager_corenetwork.example.id
policy_document = data.aws_networkmanager_getcorenetworkpolicydocument.example.json
}
resource "aws_networkmanager_vpcattachment" "example_us_west_2" {
core_network_id = aws_networkmanager_corenetwork.example.id
subnet_arns = exampleUsWest2AwsSubnet[*].arn
vpc_arn = exampleUsWest2AwsVpc.arn
}
resource "aws_networkmanager_vpcattachment" "example_us_east_1" {
core_network_id = aws_networkmanager_corenetwork.example.id
subnet_arns = exampleUsEast1AwsSubnet[*].arn
vpc_arn = exampleUsEast1AwsVpc.arn
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.GlobalNetwork;
import com.pulumi.aws.networkmanager.NetworkmanagerFunctions;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentArgs;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
import com.pulumi.aws.networkmanager.VpcAttachment;
import com.pulumi.aws.networkmanager.VpcAttachmentArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentActionArgs;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;
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 exampleGlobalNetwork = new GlobalNetwork("exampleGlobalNetwork");
final var base = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()
.coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()
.edgeLocations(
GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-west-2")
.asn("65500")
.build(),
GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-east-1")
.asn("65501")
.build())
.asnRanges("65022-65534")
.build())
.segments(GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment")
.build())
.build());
var exampleCoreNetwork = new CoreNetwork("exampleCoreNetwork", CoreNetworkArgs.builder()
.globalNetworkId(exampleGlobalNetwork.id())
.basePolicyDocument(base.json())
.createBasePolicy(true)
.build());
var exampleUsWest2 = new VpcAttachment("exampleUsWest2", VpcAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.subnetArns(exampleUsWest2AwsSubnet.stream().map(element -> element.arn()).collect(toList()))
.vpcArn(exampleUsWest2AwsVpc.arn())
.build());
var exampleUsEast1 = new VpcAttachment("exampleUsEast1", VpcAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.subnetArns(exampleUsEast1AwsSubnet.stream().map(element -> element.arn()).collect(toList()))
.vpcArn(exampleUsEast1AwsVpc.arn())
.build());
final var example = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()
.coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()
.edgeLocations(
GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-west-2")
.asn("65500")
.build(),
GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-east-1")
.asn("65501")
.build())
.asnRanges("65022-65534")
.build())
.segmentActions(
GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()
.action("create-route")
.segment("segment")
.destinationCidrBlocks("10.0.0.0/16")
.destinations(exampleUsWest2.id())
.build(),
GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()
.action("create-route")
.segment("segment")
.destinationCidrBlocks("10.1.0.0/16")
.destinations(exampleUsEast1.id())
.build())
.segments(
GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment")
.build(),
GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment2")
.build())
.build());
var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment("exampleCoreNetworkPolicyAttachment", CoreNetworkPolicyAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.policyDocument(example.applyValue(_example -> _example.json()))
.build());
}
}
Option 2 - using basePolicyRegions
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const exampleGlobalNetwork = new aws.networkmanager.GlobalNetwork("example", {});
const exampleCoreNetwork = new aws.networkmanager.CoreNetwork("example", {
globalNetworkId: exampleGlobalNetwork.id,
basePolicyRegions: [
"us-west-2",
"us-east-1",
],
createBasePolicy: true,
});
const exampleUsWest2 = new aws.networkmanager.VpcAttachment("example_us_west_2", {
coreNetworkId: exampleCoreNetwork.id,
subnetArns: exampleUsWest2AwsSubnet.map(__item => __item.arn),
vpcArn: exampleUsWest2AwsVpc.arn,
});
const exampleUsEast1 = new aws.networkmanager.VpcAttachment("example_us_east_1", {
coreNetworkId: exampleCoreNetwork.id,
subnetArns: exampleUsEast1AwsSubnet.map(__item => __item.arn),
vpcArn: exampleUsEast1AwsVpc.arn,
});
const example = aws.networkmanager.getCoreNetworkPolicyDocumentOutput({
coreNetworkConfigurations: [{
edgeLocations: [
{
location: "us-west-2",
},
{
location: "us-east-1",
},
],
asnRanges: ["65022-65534"],
}],
segmentActions: [
{
action: "create-route",
segment: "segment",
destinationCidrBlocks: ["10.0.0.0/16"],
destinations: [exampleUsWest2.id],
},
{
action: "create-route",
segment: "segment",
destinationCidrBlocks: ["10.1.0.0/16"],
destinations: [exampleUsEast1.id],
},
],
segments: [
{
name: "segment",
},
{
name: "segment2",
},
],
});
const exampleCoreNetworkPolicyAttachment = new aws.networkmanager.CoreNetworkPolicyAttachment("example", {
coreNetworkId: exampleCoreNetwork.id,
policyDocument: example.json,
});
import pulumi
import pulumi_aws as aws
example_global_network = aws.networkmanager.GlobalNetwork("example")
example_core_network = aws.networkmanager.CoreNetwork("example",
global_network_id=example_global_network.id,
base_policy_regions=[
"us-west-2",
"us-east-1",
],
create_base_policy=True)
example_us_west2 = aws.networkmanager.VpcAttachment("example_us_west_2",
core_network_id=example_core_network.id,
subnet_arns=[__item["arn"] for __item in example_us_west2_aws_subnet],
vpc_arn=example_us_west2_aws_vpc["arn"])
example_us_east1 = aws.networkmanager.VpcAttachment("example_us_east_1",
core_network_id=example_core_network.id,
subnet_arns=[__item["arn"] for __item in example_us_east1_aws_subnet],
vpc_arn=example_us_east1_aws_vpc["arn"])
example = aws.networkmanager.get_core_network_policy_document_output(core_network_configurations=[{
"edge_locations": [
{
"location": "us-west-2",
},
{
"location": "us-east-1",
},
],
"asn_ranges": ["65022-65534"],
}],
segment_actions=[
{
"action": "create-route",
"segment": "segment",
"destination_cidr_blocks": ["10.0.0.0/16"],
"destinations": [example_us_west2.id],
},
{
"action": "create-route",
"segment": "segment",
"destination_cidr_blocks": ["10.1.0.0/16"],
"destinations": [example_us_east1.id],
},
],
segments=[
{
"name": "segment",
},
{
"name": "segment2",
},
])
example_core_network_policy_attachment = aws.networkmanager.CoreNetworkPolicyAttachment("example",
core_network_id=example_core_network.id,
policy_document=example.json)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var exampleGlobalNetwork = new Aws.NetworkManager.GlobalNetwork("example");
var exampleCoreNetwork = new Aws.NetworkManager.CoreNetwork("example", new()
{
GlobalNetworkId = exampleGlobalNetwork.Id,
BasePolicyRegions = new[]
{
"us-west-2",
"us-east-1",
},
CreateBasePolicy = true,
});
var exampleUsWest2 = new Aws.NetworkManager.VpcAttachment("example_us_west_2", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
SubnetArns = exampleUsWest2AwsSubnet.Select(__item => __item.Arn).ToList(),
VpcArn = exampleUsWest2AwsVpc.Arn,
});
var exampleUsEast1 = new Aws.NetworkManager.VpcAttachment("example_us_east_1", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
SubnetArns = exampleUsEast1AwsSubnet.Select(__item => __item.Arn).ToList(),
VpcArn = exampleUsEast1AwsVpc.Arn,
});
var example = Aws.NetworkManager.GetCoreNetworkPolicyDocument.Invoke(new()
{
CoreNetworkConfigurations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationInputArgs
{
EdgeLocations = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-west-2",
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationInputArgs
{
Location = "us-east-1",
},
},
AsnRanges = new[]
{
"65022-65534",
},
},
},
SegmentActions = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs
{
Action = "create-route",
Segment = "segment",
DestinationCidrBlocks = new[]
{
"10.0.0.0/16",
},
Destinations = new[]
{
exampleUsWest2.Id,
},
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentActionInputArgs
{
Action = "create-route",
Segment = "segment",
DestinationCidrBlocks = new[]
{
"10.1.0.0/16",
},
Destinations = new[]
{
exampleUsEast1.Id,
},
},
},
Segments = new[]
{
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment",
},
new Aws.NetworkManager.Inputs.GetCoreNetworkPolicyDocumentSegmentInputArgs
{
Name = "segment2",
},
},
});
var exampleCoreNetworkPolicyAttachment = new Aws.NetworkManager.CoreNetworkPolicyAttachment("example", new()
{
CoreNetworkId = exampleCoreNetwork.Id,
PolicyDocument = example.Apply(getCoreNetworkPolicyDocumentResult => getCoreNetworkPolicyDocumentResult.Json),
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/networkmanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleGlobalNetwork, err := networkmanager.NewGlobalNetwork(ctx, "example", nil)
if err != nil {
return err
}
exampleCoreNetwork, err := networkmanager.NewCoreNetwork(ctx, "example", &networkmanager.CoreNetworkArgs{
GlobalNetworkId: exampleGlobalNetwork.ID().ToIDOutput().ToStringOutput(),
BasePolicyRegions: pulumi.StringArray{
pulumi.String("us-west-2"),
pulumi.String("us-east-1"),
},
CreateBasePolicy: pulumi.Bool(true),
})
if err != nil {
return err
}
var splat0 []interface{}
for _, val0 := range exampleUsWest2AwsSubnet {
splat0 = append(splat0, val0.(map[string]interface{})["arn"])
}
exampleUsWest2, err := networkmanager.NewVpcAttachment(ctx, "example_us_west_2", &networkmanager.VpcAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
SubnetArns: toPulumiArray(splat0),
VpcArn: pulumi.Any(exampleUsWest2AwsVpc.Arn),
})
if err != nil {
return err
}
var splat1 []interface{}
for _, val0 := range exampleUsEast1AwsSubnet {
splat1 = append(splat1, val0.(map[string]interface{})["arn"])
}
exampleUsEast1, err := networkmanager.NewVpcAttachment(ctx, "example_us_east_1", &networkmanager.VpcAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
SubnetArns: toPulumiArray(splat1),
VpcArn: pulumi.Any(exampleUsEast1AwsVpc.Arn),
})
if err != nil {
return err
}
example := networkmanager.GetCoreNetworkPolicyDocumentOutput(ctx, networkmanager.GetCoreNetworkPolicyDocumentOutputArgs{
CoreNetworkConfigurations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs{
EdgeLocations: networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArray{
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{
Location: pulumi.String("us-west-2"),
},
&networkmanager.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs{
Location: pulumi.String("us-east-1"),
},
},
AsnRanges: pulumi.StringArray{
pulumi.String("65022-65534"),
},
},
},
SegmentActions: networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{
Action: pulumi.String("create-route"),
Segment: pulumi.String("segment"),
DestinationCidrBlocks: pulumi.StringArray{
pulumi.String("10.0.0.0/16"),
},
Destinations: pulumi.StringArray{
exampleUsWest2.ID().ToIDOutput().ToStringOutput(),
},
},
&networkmanager.GetCoreNetworkPolicyDocumentSegmentActionArgs{
Action: pulumi.String("create-route"),
Segment: pulumi.String("segment"),
DestinationCidrBlocks: pulumi.StringArray{
pulumi.String("10.1.0.0/16"),
},
Destinations: pulumi.StringArray{
exampleUsEast1.ID().ToIDOutput().ToStringOutput(),
},
},
},
Segments: networkmanager.GetCoreNetworkPolicyDocumentSegmentArray{
&networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{
Name: pulumi.String("segment"),
},
&networkmanager.GetCoreNetworkPolicyDocumentSegmentArgs{
Name: pulumi.String("segment2"),
},
},
}, nil);
_, err = networkmanager.NewCoreNetworkPolicyAttachment(ctx, "example", &networkmanager.CoreNetworkPolicyAttachmentArgs{
CoreNetworkId: exampleCoreNetwork.ID().ToIDOutput().ToStringOutput(),
PolicyDocument: example.Json(),
})
if err != nil {
return err
}
return nil
})
}
func toPulumiArray(arr []) pulumi.Array {
var pulumiArr pulumi.Array
for _, v := range arr {
pulumiArr = append(pulumiArr, pulumi.(v))
}
return pulumiArr
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
data "aws_networkmanager_getcorenetworkpolicydocument" "example" {
core_network_configurations {
edge_locations {
location = "us-west-2"
}
edge_locations {
location = "us-east-1"
}
asn_ranges = ["65022-65534"]
}
segment_actions {
action = "create-route"
segment = "segment"
destination_cidr_blocks = ["10.0.0.0/16"]
destinations = [aws_networkmanager_vpcattachment.example_us_west_2.id]
}
segment_actions {
action = "create-route"
segment = "segment"
destination_cidr_blocks = ["10.1.0.0/16"]
destinations = [aws_networkmanager_vpcattachment.example_us_east_1.id]
}
segments {
name = "segment"
}
segments {
name = "segment2"
}
}
resource "aws_networkmanager_globalnetwork" "example" {
}
resource "aws_networkmanager_corenetwork" "example" {
global_network_id = aws_networkmanager_globalnetwork.example.id
base_policy_regions = ["us-west-2", "us-east-1"]
create_base_policy = true
}
resource "aws_networkmanager_corenetworkpolicyattachment" "example" {
core_network_id = aws_networkmanager_corenetwork.example.id
policy_document = data.aws_networkmanager_getcorenetworkpolicydocument.example.json
}
resource "aws_networkmanager_vpcattachment" "example_us_west_2" {
core_network_id = aws_networkmanager_corenetwork.example.id
subnet_arns = exampleUsWest2AwsSubnet[*].arn
vpc_arn = exampleUsWest2AwsVpc.arn
}
resource "aws_networkmanager_vpcattachment" "example_us_east_1" {
core_network_id = aws_networkmanager_corenetwork.example.id
subnet_arns = exampleUsEast1AwsSubnet[*].arn
vpc_arn = exampleUsEast1AwsVpc.arn
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.networkmanager.GlobalNetwork;
import com.pulumi.aws.networkmanager.CoreNetwork;
import com.pulumi.aws.networkmanager.CoreNetworkArgs;
import com.pulumi.aws.networkmanager.VpcAttachment;
import com.pulumi.aws.networkmanager.VpcAttachmentArgs;
import com.pulumi.aws.networkmanager.NetworkmanagerFunctions;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentActionArgs;
import com.pulumi.aws.networkmanager.inputs.GetCoreNetworkPolicyDocumentSegmentArgs;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachment;
import com.pulumi.aws.networkmanager.CoreNetworkPolicyAttachmentArgs;
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 exampleGlobalNetwork = new GlobalNetwork("exampleGlobalNetwork");
var exampleCoreNetwork = new CoreNetwork("exampleCoreNetwork", CoreNetworkArgs.builder()
.globalNetworkId(exampleGlobalNetwork.id())
.basePolicyRegions(
"us-west-2",
"us-east-1")
.createBasePolicy(true)
.build());
var exampleUsWest2 = new VpcAttachment("exampleUsWest2", VpcAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.subnetArns(exampleUsWest2AwsSubnet.stream().map(element -> element.arn()).collect(toList()))
.vpcArn(exampleUsWest2AwsVpc.arn())
.build());
var exampleUsEast1 = new VpcAttachment("exampleUsEast1", VpcAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.subnetArns(exampleUsEast1AwsSubnet.stream().map(element -> element.arn()).collect(toList()))
.vpcArn(exampleUsEast1AwsVpc.arn())
.build());
final var example = NetworkmanagerFunctions.getCoreNetworkPolicyDocument(GetCoreNetworkPolicyDocumentArgs.builder()
.coreNetworkConfigurations(GetCoreNetworkPolicyDocumentCoreNetworkConfigurationArgs.builder()
.edgeLocations(
GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-west-2")
.build(),
GetCoreNetworkPolicyDocumentCoreNetworkConfigurationEdgeLocationArgs.builder()
.location("us-east-1")
.build())
.asnRanges("65022-65534")
.build())
.segmentActions(
GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()
.action("create-route")
.segment("segment")
.destinationCidrBlocks("10.0.0.0/16")
.destinations(exampleUsWest2.id())
.build(),
GetCoreNetworkPolicyDocumentSegmentActionArgs.builder()
.action("create-route")
.segment("segment")
.destinationCidrBlocks("10.1.0.0/16")
.destinations(exampleUsEast1.id())
.build())
.segments(
GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment")
.build(),
GetCoreNetworkPolicyDocumentSegmentArgs.builder()
.name("segment2")
.build())
.build());
var exampleCoreNetworkPolicyAttachment = new CoreNetworkPolicyAttachment("exampleCoreNetworkPolicyAttachment", CoreNetworkPolicyAttachmentArgs.builder()
.coreNetworkId(exampleCoreNetwork.id())
.policyDocument(example.applyValue(_example -> _example.json()))
.build());
}
}
Base Policy Example
The base policy created by createBasePolicy looks like the following. This base policy is overridden by the policy you specify in the aws.networkmanager.CoreNetworkPolicyAttachment resource.
{
"version": "2021.12",
"core-network-configuration": {
"asn-ranges": [
"64512-65534"
],
"vpn-ecmp-support": false,
"edge-locations": [
{
"location": "us-east-1"
}
]
},
"segments": [
{
"name": "segment",
"description": "base-policy",
"isolate-attachments": false,
"require-attachment-acceptance": false
}
]
}
Import
Using pulumi import, import aws.networkmanager.CoreNetwork using the core network ID. For example:
$ pulumi import aws:networkmanager/coreNetwork:CoreNetwork example core-network-0d47f6t230mz46dy4
Constructors
- CoreNetwork(String name, {CoreNetworkArgs? args, CustomResourceOptions? options})
-
Creates a new CoreNetwork.
nameThe Pulumi resource name.argsArguments used to configure this CoreNetwork. The set of arguments for CoreNetwork.optionsResource options controlling this resource's behavior. - CoreNetwork.reference(String urn)
- Creates a typed reference to an existing CoreNetwork resource.
Properties
-
arn
↔ Output<
String> -
Core Network ARN.
latefinal
-
basePolicyDocument
↔ Output<
String?> -
Sets the base policy document for the core network. Refer to the Core network policies documentation for more information.
latefinal
-
basePolicyRegions
↔ Output<
List< String> ?> -
List of regions to add to the base policy. The base policy created by setting the
createBasePolicyargument totruerequires one or more regions to be set in theedge-locations,locationkey. IfbasePolicyRegionsis not specified, the region used in the base policy defaults to the region specified in theproviderblock.latefinal -
childResources
→ Set<
Resource> -
finalinherited
-
completionSources
↔ Map<
String, IOutputCompletionSource> -
latefinalinherited
-
createBasePolicy
↔ Output<
bool?> -
Whether to create a base policy when a core network is created or updated. A base policy is created and set to
LIVEto allow attachments to the core network (e.g. VPC Attachments) before applying a policy document provided using theaws.networkmanager.CoreNetworkPolicyAttachmentresource. This base policy is needed if your core network does not have anyLIVEpolicies and your policy document has static routes pointing to VPC attachments and you want to attach your VPCs to the core network before applying the desired policy document. Valid values aretrueorfalse. An example of this Pulumi snippet can be found above for VPC Attachment in a single region and for VPC Attachment multi-region. An example base policy is shown in the Base Policy Example section. This base policy is overridden with the policy that you specify in theaws.networkmanager.CoreNetworkPolicyAttachmentresource.latefinal -
createdAt
↔ Output<
String> -
Timestamp when a core network was created.
latefinal
-
description
↔ Output<
String?> -
Description of the Core Network.
latefinal
-
edges
↔ Output<
List< CoreNetworkEdge> > -
One or more blocks detailing the edges within a core network. Detailed below.
latefinal
-
globalNetworkId
↔ Output<
String> -
ID of the global network that a core network will be a part of.
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
-
segments
↔ Output<
List< CoreNetworkSegment> > -
One or more blocks detailing the segments within a core network. Detailed below.
latefinal
-
state
↔ Output<
String> -
Current state of a core network.
latefinal
-
Key-value tags for the Core Network. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.latefinal -
Map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.latefinal -
transformations
→ List<
ResourceTransformation> -
Inherited/explicit legacy transformations.
no setterinherited
-
urn
↔ Output<
String> -
latefinalinherited
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, {CoreNetworkState? state, CustomResourceOptions? options}) → CoreNetwork -
Gets an existing CoreNetwork resource's state with the given
nameandid.