published on Friday, Jun 26, 2026 by Pulumi
published on Friday, Jun 26, 2026 by Pulumi
This resource can manage a Topology Hub Spoke Feature.
- Minimum SD-WAN Manager version:
20.15.0
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as sdwan from "@pulumi/sdwan";
const example = new sdwan.TopologyHubSpokeFeature("example", {
name: "Example",
description: "My Example",
featureProfileId: "f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac",
targetVpns: ["service_lan_vpn1"],
selectedHubs: ["SITE_100"],
spokes: [{
name: "spoke1",
spokeSites: ["SITE_200"],
hubSites: [{
sites: ["SITE_100"],
preference: 1,
}],
}],
});
import pulumi
import pulumi_sdwan as sdwan
example = sdwan.TopologyHubSpokeFeature("example",
name="Example",
description="My Example",
feature_profile_id="f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac",
target_vpns=["service_lan_vpn1"],
selected_hubs=["SITE_100"],
spokes=[{
"name": "spoke1",
"spoke_sites": ["SITE_200"],
"hub_sites": [{
"sites": ["SITE_100"],
"preference": 1,
}],
}])
package main
import (
"github.com/pulumi/pulumi-sdwan/sdk/go/sdwan"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := sdwan.NewTopologyHubSpokeFeature(ctx, "example", &sdwan.TopologyHubSpokeFeatureArgs{
Name: pulumi.String("Example"),
Description: pulumi.String("My Example"),
FeatureProfileId: pulumi.String("f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac"),
TargetVpns: pulumi.StringArray{
pulumi.String("service_lan_vpn1"),
},
SelectedHubs: pulumi.StringArray{
pulumi.String("SITE_100"),
},
Spokes: sdwan.TopologyHubSpokeFeatureSpokeArray{
&sdwan.TopologyHubSpokeFeatureSpokeArgs{
Name: pulumi.String("spoke1"),
SpokeSites: pulumi.StringArray{
pulumi.String("SITE_200"),
},
HubSites: sdwan.TopologyHubSpokeFeatureSpokeHubSiteArray{
&sdwan.TopologyHubSpokeFeatureSpokeHubSiteArgs{
Sites: pulumi.StringArray{
pulumi.String("SITE_100"),
},
Preference: pulumi.Int(1),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Sdwan = Pulumi.Sdwan;
return await Deployment.RunAsync(() =>
{
var example = new Sdwan.TopologyHubSpokeFeature("example", new()
{
Name = "Example",
Description = "My Example",
FeatureProfileId = "f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac",
TargetVpns = new[]
{
"service_lan_vpn1",
},
SelectedHubs = new[]
{
"SITE_100",
},
Spokes = new[]
{
new Sdwan.Inputs.TopologyHubSpokeFeatureSpokeArgs
{
Name = "spoke1",
SpokeSites = new[]
{
"SITE_200",
},
HubSites = new[]
{
new Sdwan.Inputs.TopologyHubSpokeFeatureSpokeHubSiteArgs
{
Sites = new[]
{
"SITE_100",
},
Preference = 1,
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.sdwan.TopologyHubSpokeFeature;
import com.pulumi.sdwan.TopologyHubSpokeFeatureArgs;
import com.pulumi.sdwan.inputs.TopologyHubSpokeFeatureSpokeArgs;
import com.pulumi.sdwan.inputs.TopologyHubSpokeFeatureSpokeHubSiteArgs;
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 TopologyHubSpokeFeature("example", TopologyHubSpokeFeatureArgs.builder()
.name("Example")
.description("My Example")
.featureProfileId("f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac")
.targetVpns("service_lan_vpn1")
.selectedHubs("SITE_100")
.spokes(TopologyHubSpokeFeatureSpokeArgs.builder()
.name("spoke1")
.spokeSites("SITE_200")
.hubSites(TopologyHubSpokeFeatureSpokeHubSiteArgs.builder()
.sites("SITE_100")
.preference(1)
.build())
.build())
.build());
}
}
resources:
example:
type: sdwan:TopologyHubSpokeFeature
properties:
name: Example
description: My Example
featureProfileId: f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac
targetVpns:
- service_lan_vpn1
selectedHubs:
- SITE_100
spokes:
- name: spoke1
spokeSites:
- SITE_200
hubSites:
- sites:
- SITE_100
preference: 1
pulumi {
required_providers {
sdwan = {
source = "pulumi/sdwan"
}
}
}
resource "sdwan_topologyhubspokefeature" "example" {
name = "Example"
description = "My Example"
feature_profile_id = "f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac"
target_vpns = ["service_lan_vpn1"]
selected_hubs = ["SITE_100"]
spokes {
name = "spoke1"
spoke_sites = ["SITE_200"]
hub_sites {
sites = ["SITE_100"]
preference = 1
}
}
}
Create TopologyHubSpokeFeature Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new TopologyHubSpokeFeature(name: string, args: TopologyHubSpokeFeatureArgs, opts?: CustomResourceOptions);@overload
def TopologyHubSpokeFeature(resource_name: str,
args: TopologyHubSpokeFeatureArgs,
opts: Optional[ResourceOptions] = None)
@overload
def TopologyHubSpokeFeature(resource_name: str,
opts: Optional[ResourceOptions] = None,
feature_profile_id: Optional[str] = None,
selected_hubs: Optional[Sequence[str]] = None,
spokes: Optional[Sequence[TopologyHubSpokeFeatureSpokeArgs]] = None,
target_vpns: Optional[Sequence[str]] = None,
description: Optional[str] = None,
name: Optional[str] = None)func NewTopologyHubSpokeFeature(ctx *Context, name string, args TopologyHubSpokeFeatureArgs, opts ...ResourceOption) (*TopologyHubSpokeFeature, error)public TopologyHubSpokeFeature(string name, TopologyHubSpokeFeatureArgs args, CustomResourceOptions? opts = null)
public TopologyHubSpokeFeature(String name, TopologyHubSpokeFeatureArgs args)
public TopologyHubSpokeFeature(String name, TopologyHubSpokeFeatureArgs args, CustomResourceOptions options)
type: sdwan:TopologyHubSpokeFeature
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "sdwan_topologyhubspokefeature" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args TopologyHubSpokeFeatureArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args TopologyHubSpokeFeatureArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args TopologyHubSpokeFeatureArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args TopologyHubSpokeFeatureArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args TopologyHubSpokeFeatureArgs
- 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 topologyHubSpokeFeatureResource = new Sdwan.TopologyHubSpokeFeature("topologyHubSpokeFeatureResource", new()
{
FeatureProfileId = "string",
SelectedHubs = new[]
{
"string",
},
Spokes = new[]
{
new Sdwan.Inputs.TopologyHubSpokeFeatureSpokeArgs
{
HubSites = new[]
{
new Sdwan.Inputs.TopologyHubSpokeFeatureSpokeHubSiteArgs
{
Preference = 0,
Sites = new[]
{
"string",
},
},
},
Name = "string",
SpokeSites = new[]
{
"string",
},
},
},
TargetVpns = new[]
{
"string",
},
Description = "string",
Name = "string",
});
example, err := sdwan.NewTopologyHubSpokeFeature(ctx, "topologyHubSpokeFeatureResource", &sdwan.TopologyHubSpokeFeatureArgs{
FeatureProfileId: pulumi.String("string"),
SelectedHubs: pulumi.StringArray{
pulumi.String("string"),
},
Spokes: sdwan.TopologyHubSpokeFeatureSpokeArray{
&sdwan.TopologyHubSpokeFeatureSpokeArgs{
HubSites: sdwan.TopologyHubSpokeFeatureSpokeHubSiteArray{
&sdwan.TopologyHubSpokeFeatureSpokeHubSiteArgs{
Preference: pulumi.Int(0),
Sites: pulumi.StringArray{
pulumi.String("string"),
},
},
},
Name: pulumi.String("string"),
SpokeSites: pulumi.StringArray{
pulumi.String("string"),
},
},
},
TargetVpns: pulumi.StringArray{
pulumi.String("string"),
},
Description: pulumi.String("string"),
Name: pulumi.String("string"),
})
resource "sdwan_topologyhubspokefeature" "topologyHubSpokeFeatureResource" {
feature_profile_id = "string"
selected_hubs = ["string"]
spokes {
hub_sites {
preference = 0
sites = ["string"]
}
name = "string"
spoke_sites = ["string"]
}
target_vpns = ["string"]
description = "string"
name = "string"
}
var topologyHubSpokeFeatureResource = new TopologyHubSpokeFeature("topologyHubSpokeFeatureResource", TopologyHubSpokeFeatureArgs.builder()
.featureProfileId("string")
.selectedHubs("string")
.spokes(TopologyHubSpokeFeatureSpokeArgs.builder()
.hubSites(TopologyHubSpokeFeatureSpokeHubSiteArgs.builder()
.preference(0)
.sites("string")
.build())
.name("string")
.spokeSites("string")
.build())
.targetVpns("string")
.description("string")
.name("string")
.build());
topology_hub_spoke_feature_resource = sdwan.TopologyHubSpokeFeature("topologyHubSpokeFeatureResource",
feature_profile_id="string",
selected_hubs=["string"],
spokes=[{
"hub_sites": [{
"preference": 0,
"sites": ["string"],
}],
"name": "string",
"spoke_sites": ["string"],
}],
target_vpns=["string"],
description="string",
name="string")
const topologyHubSpokeFeatureResource = new sdwan.TopologyHubSpokeFeature("topologyHubSpokeFeatureResource", {
featureProfileId: "string",
selectedHubs: ["string"],
spokes: [{
hubSites: [{
preference: 0,
sites: ["string"],
}],
name: "string",
spokeSites: ["string"],
}],
targetVpns: ["string"],
description: "string",
name: "string",
});
type: sdwan:TopologyHubSpokeFeature
properties:
description: string
featureProfileId: string
name: string
selectedHubs:
- string
spokes:
- hubSites:
- preference: 0
sites:
- string
name: string
spokeSites:
- string
targetVpns:
- string
TopologyHubSpokeFeature 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 TopologyHubSpokeFeature resource accepts the following input properties:
- Feature
Profile stringId - Feature Profile ID
- Selected
Hubs List<string> - Spokes
List<Topology
Hub Spoke Feature Spoke> - Spokes
- Target
Vpns List<string> - Description string
- The description of the Feature
- Name string
- The name of the Feature
- Feature
Profile stringId - Feature Profile ID
- Selected
Hubs []string - Spokes
[]Topology
Hub Spoke Feature Spoke Args - Spokes
- Target
Vpns []string - Description string
- The description of the Feature
- Name string
- The name of the Feature
- feature_
profile_ stringid - Feature Profile ID
- selected_
hubs list(string) - spokes list(object)
- Spokes
- target_
vpns list(string) - description string
- The description of the Feature
- name string
- The name of the Feature
- feature
Profile StringId - Feature Profile ID
- selected
Hubs List<String> - spokes
List<Topology
Hub Spoke Feature Spoke> - Spokes
- target
Vpns List<String> - description String
- The description of the Feature
- name String
- The name of the Feature
- feature
Profile stringId - Feature Profile ID
- selected
Hubs string[] - spokes
Topology
Hub Spoke Feature Spoke[] - Spokes
- target
Vpns string[] - description string
- The description of the Feature
- name string
- The name of the Feature
- feature_
profile_ strid - Feature Profile ID
- selected_
hubs Sequence[str] - spokes
Sequence[Topology
Hub Spoke Feature Spoke Args] - Spokes
- target_
vpns Sequence[str] - description str
- The description of the Feature
- name str
- The name of the Feature
- feature
Profile StringId - Feature Profile ID
- selected
Hubs List<String> - spokes List<Property Map>
- Spokes
- target
Vpns List<String> - description String
- The description of the Feature
- name String
- The name of the Feature
Outputs
All input properties are implicitly available as output properties. Additionally, the TopologyHubSpokeFeature resource produces the following output properties:
Look up Existing TopologyHubSpokeFeature Resource
Get an existing TopologyHubSpokeFeature 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?: TopologyHubSpokeFeatureState, opts?: CustomResourceOptions): TopologyHubSpokeFeature@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
feature_profile_id: Optional[str] = None,
name: Optional[str] = None,
selected_hubs: Optional[Sequence[str]] = None,
spokes: Optional[Sequence[TopologyHubSpokeFeatureSpokeArgs]] = None,
target_vpns: Optional[Sequence[str]] = None,
version: Optional[int] = None) -> TopologyHubSpokeFeaturefunc GetTopologyHubSpokeFeature(ctx *Context, name string, id IDInput, state *TopologyHubSpokeFeatureState, opts ...ResourceOption) (*TopologyHubSpokeFeature, error)public static TopologyHubSpokeFeature Get(string name, Input<string> id, TopologyHubSpokeFeatureState? state, CustomResourceOptions? opts = null)public static TopologyHubSpokeFeature get(String name, Output<String> id, TopologyHubSpokeFeatureState state, CustomResourceOptions options)resources: _: type: sdwan:TopologyHubSpokeFeature get: id: ${id}import {
to = sdwan_topologyhubspokefeature.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Description string
- The description of the Feature
- Feature
Profile stringId - Feature Profile ID
- Name string
- The name of the Feature
- Selected
Hubs List<string> - Spokes
List<Topology
Hub Spoke Feature Spoke> - Spokes
- Target
Vpns List<string> - Version int
- The version of the Feature
- Description string
- The description of the Feature
- Feature
Profile stringId - Feature Profile ID
- Name string
- The name of the Feature
- Selected
Hubs []string - Spokes
[]Topology
Hub Spoke Feature Spoke Args - Spokes
- Target
Vpns []string - Version int
- The version of the Feature
- description string
- The description of the Feature
- feature_
profile_ stringid - Feature Profile ID
- name string
- The name of the Feature
- selected_
hubs list(string) - spokes list(object)
- Spokes
- target_
vpns list(string) - version number
- The version of the Feature
- description String
- The description of the Feature
- feature
Profile StringId - Feature Profile ID
- name String
- The name of the Feature
- selected
Hubs List<String> - spokes
List<Topology
Hub Spoke Feature Spoke> - Spokes
- target
Vpns List<String> - version Integer
- The version of the Feature
- description string
- The description of the Feature
- feature
Profile stringId - Feature Profile ID
- name string
- The name of the Feature
- selected
Hubs string[] - spokes
Topology
Hub Spoke Feature Spoke[] - Spokes
- target
Vpns string[] - version number
- The version of the Feature
- description str
- The description of the Feature
- feature_
profile_ strid - Feature Profile ID
- name str
- The name of the Feature
- selected_
hubs Sequence[str] - spokes
Sequence[Topology
Hub Spoke Feature Spoke Args] - Spokes
- target_
vpns Sequence[str] - version int
- The version of the Feature
- description String
- The description of the Feature
- feature
Profile StringId - Feature Profile ID
- name String
- The name of the Feature
- selected
Hubs List<String> - spokes List<Property Map>
- Spokes
- target
Vpns List<String> - version Number
- The version of the Feature
Supporting Types
TopologyHubSpokeFeatureSpoke, TopologyHubSpokeFeatureSpokeArgs
- Hub
Sites List<TopologyHub Spoke Feature Spoke Hub Site> - Hub Sites
- Name string
- Spoke
Sites List<string>
- Hub
Sites []TopologyHub Spoke Feature Spoke Hub Site - Hub Sites
- Name string
- Spoke
Sites []string
- hub_
sites list(object) - Hub Sites
- name string
- spoke_
sites list(string)
- hub
Sites List<TopologyHub Spoke Feature Spoke Hub Site> - Hub Sites
- name String
- spoke
Sites List<String>
- hub
Sites TopologyHub Spoke Feature Spoke Hub Site[] - Hub Sites
- name string
- spoke
Sites string[]
- hub_
sites Sequence[TopologyHub Spoke Feature Spoke Hub Site] - Hub Sites
- name str
- spoke_
sites Sequence[str]
- hub
Sites List<Property Map> - Hub Sites
- name String
- spoke
Sites List<String>
TopologyHubSpokeFeatureSpokeHubSite, TopologyHubSpokeFeatureSpokeHubSiteArgs
- Preference int
- preference
- Range:
1-255
- Range:
- Sites List<string>
- sites
- Preference int
- preference
- Range:
1-255
- Range:
- Sites []string
- sites
- preference number
- preference
- Range:
1-255
- Range:
- sites list(string)
- sites
- preference Integer
- preference
- Range:
1-255
- Range:
- sites List<String>
- sites
- preference number
- preference
- Range:
1-255
- Range:
- sites string[]
- sites
- preference int
- preference
- Range:
1-255
- Range:
- sites Sequence[str]
- sites
- preference Number
- preference
- Range:
1-255
- Range:
- sites List<String>
- sites
Import
The pulumi import command can be used, for example:
Expected import identifier with the format: “topology_hub_spoke_feature_id,feature_profile_id”
$ pulumi import sdwan:index/topologyHubSpokeFeature:TopologyHubSpokeFeature example "f6b2c44c-693c-4763-b010-895aa3d236bd,f6dd22c8-0b4f-496c-9a0b-6813d1f8b8ac"
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- sdwan pulumi/pulumi-sdwan
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
sdwanTerraform Provider.
published on Friday, Jun 26, 2026 by Pulumi