OCI Component OciPublisher creates one Oracle Cloud Infrastructure compute instance per publisher name.
Inputs Required: compartmentId, availabilityDomain, subnetId, imageId, and tenantUrl plus apiToken unless registrations is provided.
Optional platform inputs: shape, sshPublicKey, and assignPublicIp.
Image and bootstrap behavior OCI requires an Ubuntu 22.04 image OCID through imageId. The component uses bootstrap mode and passes base64 cloud-init through instance metadata.
Outputs publisherNames and secret publishers, keyed by publisher name.
Pulumi CLI 1 2 3 4 pulumi config set oci:region eu-frankfurt-1 pulumi config set netskope:tenantUrl https://tenant.goskope.com pulumi config set netskope:apiToken --secret pulumi up
TypeScript 1 2 3 4 5 6 7 8 9 10 const publisher = new OciPublisher ("publisher" , { names : ["pub-fra-1" , "pub-fra-2" ], tenantUrl : netskope.require ("tenantUrl" ), apiToken : netskope.requireSecret ("apiToken" ), compartmentId : config.require ("compartmentId" ), availabilityDomain : config.require ("availabilityDomain" ), subnetId : config.require ("subnetId" ), imageId : config.require ("imageId" ), shape : "VM.Standard.E4.Flex" , });
Python 1 2 3 4 5 6 7 8 9 10 11 publisher = OciPublisher( "publisher" , names=["pub-fra-1" , "pub-fra-2" ], tenant_url=netskope.require("tenantUrl" ), api_token=netskope.require_secret("apiToken" ), compartment_id=config.require("compartmentId" ), availability_domain=config.require("availabilityDomain" ), subnet_id=config.require("subnetId" ), image_id=config.require("imageId" ), shape="VM.Standard.E4.Flex" , )
C# 1 2 3 4 5 6 7 8 9 10 11 var publisher = new OciPublisher("publisher" , new OciPublisherArgs{ Names = { "pub-fra-1" , "pub-fra-2" }, TenantUrl = netskope.Require("tenantUrl" ), ApiToken = netskope.RequireSecret("apiToken" ), CompartmentId = config.Require("compartmentId" ), AvailabilityDomain = config.Require("availabilityDomain" ), SubnetId = config.Require("subnetId" ), ImageId = config.Require("imageId" ), Shape = "VM.Standard.E4.Flex" , });
Go 1 2 3 4 5 6 7 8 9 10 publisher, err := netskopepublisher.NewOciPublisher(ctx, "publisher" , &netskopepublisher.OciPublisherArgs{ Names: pulumi.StringArray{pulumi.String("pub-fra-1" ), pulumi.String("pub-fra-2" )}, TenantUrl: pulumi.String(netskope.Require("tenantUrl" )), ApiToken: netskope.RequireSecret("apiToken" ), CompartmentId: pulumi.String(cfg.Require("compartmentId" )), AvailabilityDomain: pulumi.String(cfg.Require("availabilityDomain" )), SubnetId: pulumi.String(cfg.Require("subnetId" )), ImageId: pulumi.String(cfg.Require("imageId" )), Shape: pulumi.String("VM.Standard.E4.Flex" ), })
Java 1 2 3 4 5 6 7 8 9 10 var publisher = new OciPublisher ("publisher" , OciPublisherArgs.builder() .names("pub-fra-1" , "pub-fra-2" ) .tenantUrl(netskope.require("tenantUrl" )) .apiToken(netskope.requireSecret("apiToken" )) .compartmentId(config.require("compartmentId" )) .availabilityDomain(config.require("availabilityDomain" )) .subnetId(config.require("subnetId" )) .imageId(config.require("imageId" )) .shape("VM.Standard.E4.Flex" ) .build());
Rust 1 2 3 4 5 6 7 8 9 10 11 12 13 14 let publisher = netskope::oci_publisher::create ( ctx, "publisher" , netskope::oci_publisher::OciPublisherArgs::builder () .names (vec! ["pub-fra-1" .to_string (), "pub-fra-2" .to_string ()]) .tenant_url ("https://tenant.goskope.com" ) .api_token ("secret-token" ) .compartment_id ("ocid1.compartment.oc1..example" ) .availability_domain ("AD-1" ) .subnet_id ("ocid1.subnet.oc1..example" ) .image_id ("ocid1.image.oc1..ubuntu" ) .shape ("VM.Standard.E4.Flex" ) .build_struct (), );