Viewing docs for Zscaler Private Access v1.0.3
published on Wednesday, Jan 21, 2026 by Zscaler
published on Wednesday, Jan 21, 2026 by Zscaler
Viewing docs for Zscaler Private Access v1.0.3
published on Wednesday, Jan 21, 2026 by Zscaler
published on Wednesday, Jan 21, 2026 by Zscaler
The zpa_user_portal_controller data source to get information about a user portal in the Zscaler Private Access cloud.
Example Usage
With Customer Own Certificate
import * as pulumi from "@pulumi/pulumi";
import * as zpa from "@bdzscaler/pulumi-zpa";
const _this = zpa.getBaCertificate({
name: "example.acme.com",
});
const thisUserPortalController = new zpa.UserPortalController("this", {
name: "UserPortal01",
description: "UserPortal01",
enabled: true,
userNotification: "User_Portal_Terraform_01",
userNotificationEnabled: true,
certificateId: _this.then(_this => _this.id),
domain: "portal01",
});
import pulumi
import pulumi_zpa as zpa
import zscaler_pulumi_zpa as zpa
this = zpa.get_ba_certificate(name="example.acme.com")
this_user_portal_controller = zpa.UserPortalController("this",
name="UserPortal01",
description="UserPortal01",
enabled=True,
user_notification="User_Portal_Terraform_01",
user_notification_enabled=True,
certificate_id=this.id,
domain="portal01")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/zscaler/pulumi-zpa/sdk/go/zpa"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
this, err := zpa.GetBaCertificate(ctx, &zpa.GetBaCertificateArgs{
Name: pulumi.StringRef("example.acme.com"),
}, nil)
if err != nil {
return err
}
_, err = zpa.NewUserPortalController(ctx, "this", &zpa.UserPortalControllerArgs{
Name: pulumi.String("UserPortal01"),
Description: pulumi.String("UserPortal01"),
Enabled: pulumi.Bool(true),
UserNotification: pulumi.String("User_Portal_Terraform_01"),
UserNotificationEnabled: pulumi.Bool(true),
CertificateId: pulumi.String(this.Id),
Domain: pulumi.String("portal01"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Zpa = Pulumi.Zpa;
using Zpa = zscaler.PulumiPackage.Zpa;
return await Deployment.RunAsync(() =>
{
var @this = Zpa.GetBaCertificate.Invoke(new()
{
Name = "example.acme.com",
});
var thisUserPortalController = new Zpa.UserPortalController("this", new()
{
Name = "UserPortal01",
Description = "UserPortal01",
Enabled = true,
UserNotification = "User_Portal_Terraform_01",
UserNotificationEnabled = true,
CertificateId = @this.Apply(@this => @this.Apply(getBaCertificateResult => getBaCertificateResult.Id)),
Domain = "portal01",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.zpa.ZpaFunctions;
import com.pulumi.zpa.inputs.GetBaCertificateArgs;
import com.pulumi.zpa.UserPortalController;
import com.pulumi.zpa.UserPortalControllerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var this = ZpaFunctions.getBaCertificate(GetBaCertificateArgs.builder()
.name("example.acme.com")
.build());
var thisUserPortalController = new UserPortalController("thisUserPortalController", UserPortalControllerArgs.builder()
.name("UserPortal01")
.description("UserPortal01")
.enabled(true)
.userNotification("User_Portal_Terraform_01")
.userNotificationEnabled(true)
.certificateId(this_.id())
.domain("portal01")
.build());
}
}
resources:
thisUserPortalController:
type: zpa:UserPortalController
name: this
properties:
name: UserPortal01
description: UserPortal01
enabled: true
userNotification: User_Portal_Terraform_01
userNotificationEnabled: true
certificateId: ${this.id}
domain: portal01
variables:
this:
fn::invoke:
function: zpa:getBaCertificate
arguments:
name: example.acme.com
With Zscaler Managed Certificate
import * as pulumi from "@pulumi/pulumi";
import * as zpa from "@bdzscaler/pulumi-zpa";
const _this = zpa.getUserPortalController({
name: "UserPortal01",
});
import pulumi
import pulumi_zpa as zpa
this = zpa.get_user_portal_controller(name="UserPortal01")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/zscaler/pulumi-zpa/sdk/go/zpa"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := zpa.LookupUserPortalController(ctx, &zpa.LookupUserPortalControllerArgs{
Name: pulumi.StringRef("UserPortal01"),
}, nil)
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Zpa = Pulumi.Zpa;
return await Deployment.RunAsync(() =>
{
var @this = Zpa.GetUserPortalController.Invoke(new()
{
Name = "UserPortal01",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.zpa.ZpaFunctions;
import com.pulumi.zpa.inputs.GetUserPortalControllerArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var this = ZpaFunctions.getUserPortalController(GetUserPortalControllerArgs.builder()
.name("UserPortal01")
.build());
}
}
variables:
this:
fn::invoke:
function: zpa:getUserPortalController
arguments:
name: UserPortal01
Using getUserPortalController
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getUserPortalController(args: GetUserPortalControllerArgs, opts?: InvokeOptions): Promise<GetUserPortalControllerResult>
function getUserPortalControllerOutput(args: GetUserPortalControllerOutputArgs, opts?: InvokeOptions): Output<GetUserPortalControllerResult>def get_user_portal_controller(id: Optional[str] = None,
microtenant_id: Optional[str] = None,
name: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetUserPortalControllerResult
def get_user_portal_controller_output(id: Optional[pulumi.Input[str]] = None,
microtenant_id: Optional[pulumi.Input[str]] = None,
name: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetUserPortalControllerResult]func LookupUserPortalController(ctx *Context, args *LookupUserPortalControllerArgs, opts ...InvokeOption) (*LookupUserPortalControllerResult, error)
func LookupUserPortalControllerOutput(ctx *Context, args *LookupUserPortalControllerOutputArgs, opts ...InvokeOption) LookupUserPortalControllerResultOutput> Note: This function is named LookupUserPortalController in the Go SDK.
public static class GetUserPortalController
{
public static Task<GetUserPortalControllerResult> InvokeAsync(GetUserPortalControllerArgs args, InvokeOptions? opts = null)
public static Output<GetUserPortalControllerResult> Invoke(GetUserPortalControllerInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetUserPortalControllerResult> getUserPortalController(GetUserPortalControllerArgs args, InvokeOptions options)
public static Output<GetUserPortalControllerResult> getUserPortalController(GetUserPortalControllerArgs args, InvokeOptions options)
fn::invoke:
function: zpa:index/getUserPortalController:getUserPortalController
arguments:
# arguments dictionaryThe following arguments are supported:
- Id string
- Microtenant
Id string - Name string
- Id string
- Microtenant
Id string - Name string
- id String
- microtenant
Id String - name String
- id string
- microtenant
Id string - name string
- id str
- microtenant_
id str - name str
- id String
- microtenant
Id String - name String
getUserPortalController Result
The following output properties are available:
- Certificate
Id string - Certificate
Name string - Creation
Time string - Description string
- Domain string
- Enabled bool
- Ext
Domain string - Ext
Domain stringName - Ext
Domain stringTranslation - Ext
Label string - Getc
Name string - Image
Data string - Managed
By boolZs - Microtenant
Name string - Modified
By string - Modified
Time string - User
Notification string - User
Notification boolEnabled - Id string
- Microtenant
Id string - Name string
- Certificate
Id string - Certificate
Name string - Creation
Time string - Description string
- Domain string
- Enabled bool
- Ext
Domain string - Ext
Domain stringName - Ext
Domain stringTranslation - Ext
Label string - Getc
Name string - Image
Data string - Managed
By boolZs - Microtenant
Name string - Modified
By string - Modified
Time string - User
Notification string - User
Notification boolEnabled - Id string
- Microtenant
Id string - Name string
- certificate
Id String - certificate
Name String - creation
Time String - description String
- domain String
- enabled Boolean
- ext
Domain String - ext
Domain StringName - ext
Domain StringTranslation - ext
Label String - getc
Name String - image
Data String - managed
By BooleanZs - microtenant
Name String - modified
By String - modified
Time String - user
Notification String - user
Notification BooleanEnabled - id String
- microtenant
Id String - name String
- certificate
Id string - certificate
Name string - creation
Time string - description string
- domain string
- enabled boolean
- ext
Domain string - ext
Domain stringName - ext
Domain stringTranslation - ext
Label string - getc
Name string - image
Data string - managed
By booleanZs - microtenant
Name string - modified
By string - modified
Time string - user
Notification string - user
Notification booleanEnabled - id string
- microtenant
Id string - name string
- certificate_
id str - certificate_
name str - creation_
time str - description str
- domain str
- enabled bool
- ext_
domain str - ext_
domain_ strname - ext_
domain_ strtranslation - ext_
label str - getc_
name str - image_
data str - managed_
by_ boolzs - microtenant_
name str - modified_
by str - modified_
time str - user_
notification str - user_
notification_ boolenabled - id str
- microtenant_
id str - name str
- certificate
Id String - certificate
Name String - creation
Time String - description String
- domain String
- enabled Boolean
- ext
Domain String - ext
Domain StringName - ext
Domain StringTranslation - ext
Label String - getc
Name String - image
Data String - managed
By BooleanZs - microtenant
Name String - modified
By String - modified
Time String - user
Notification String - user
Notification BooleanEnabled - id String
- microtenant
Id String - name String
Package Details
- Repository
- zpa zscaler/pulumi-zpa
- License
- MIT
- Notes
- This Pulumi package is based on the
zpaTerraform Provider.
Viewing docs for Zscaler Private Access v1.0.3
published on Wednesday, Jan 21, 2026 by Zscaler
published on Wednesday, Jan 21, 2026 by Zscaler
