# coding=utf-8
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities
from . import outputs
from ._inputs import *

__all__ = [
    'GetPodSecurityPolicyTemplateResult',
    'AwaitableGetPodSecurityPolicyTemplateResult',
    'get_pod_security_policy_template',
    'get_pod_security_policy_template_output',
]

@pulumi.output_type
class GetPodSecurityPolicyTemplateResult:
    """
    A collection of values returned by getPodSecurityPolicyTemplate.
    """
    def __init__(__self__, allow_privilege_escalation=None, allowed_capabilities=None, allowed_csi_drivers=None, allowed_flex_volumes=None, allowed_host_paths=None, allowed_proc_mount_types=None, allowed_unsafe_sysctls=None, annotations=None, default_add_capabilities=None, default_allow_privilege_escalation=None, description=None, forbidden_sysctls=None, fs_group=None, host_ipc=None, host_network=None, host_pid=None, host_ports=None, id=None, labels=None, name=None, privileged=None, read_only_root_filesystem=None, required_drop_capabilities=None, run_as_group=None, run_as_user=None, runtime_class=None, se_linux=None, supplemental_group=None, volumes=None):
        if allow_privilege_escalation and not isinstance(allow_privilege_escalation, bool):
            raise TypeError("Expected argument 'allow_privilege_escalation' to be a bool")
        pulumi.set(__self__, "allow_privilege_escalation", allow_privilege_escalation)
        if allowed_capabilities and not isinstance(allowed_capabilities, list):
            raise TypeError("Expected argument 'allowed_capabilities' to be a list")
        pulumi.set(__self__, "allowed_capabilities", allowed_capabilities)
        if allowed_csi_drivers and not isinstance(allowed_csi_drivers, list):
            raise TypeError("Expected argument 'allowed_csi_drivers' to be a list")
        pulumi.set(__self__, "allowed_csi_drivers", allowed_csi_drivers)
        if allowed_flex_volumes and not isinstance(allowed_flex_volumes, list):
            raise TypeError("Expected argument 'allowed_flex_volumes' to be a list")
        pulumi.set(__self__, "allowed_flex_volumes", allowed_flex_volumes)
        if allowed_host_paths and not isinstance(allowed_host_paths, list):
            raise TypeError("Expected argument 'allowed_host_paths' to be a list")
        pulumi.set(__self__, "allowed_host_paths", allowed_host_paths)
        if allowed_proc_mount_types and not isinstance(allowed_proc_mount_types, list):
            raise TypeError("Expected argument 'allowed_proc_mount_types' to be a list")
        pulumi.set(__self__, "allowed_proc_mount_types", allowed_proc_mount_types)
        if allowed_unsafe_sysctls and not isinstance(allowed_unsafe_sysctls, list):
            raise TypeError("Expected argument 'allowed_unsafe_sysctls' to be a list")
        pulumi.set(__self__, "allowed_unsafe_sysctls", allowed_unsafe_sysctls)
        if annotations and not isinstance(annotations, dict):
            raise TypeError("Expected argument 'annotations' to be a dict")
        pulumi.set(__self__, "annotations", annotations)
        if default_add_capabilities and not isinstance(default_add_capabilities, list):
            raise TypeError("Expected argument 'default_add_capabilities' to be a list")
        pulumi.set(__self__, "default_add_capabilities", default_add_capabilities)
        if default_allow_privilege_escalation and not isinstance(default_allow_privilege_escalation, bool):
            raise TypeError("Expected argument 'default_allow_privilege_escalation' to be a bool")
        pulumi.set(__self__, "default_allow_privilege_escalation", default_allow_privilege_escalation)
        if description and not isinstance(description, str):
            raise TypeError("Expected argument 'description' to be a str")
        pulumi.set(__self__, "description", description)
        if forbidden_sysctls and not isinstance(forbidden_sysctls, list):
            raise TypeError("Expected argument 'forbidden_sysctls' to be a list")
        pulumi.set(__self__, "forbidden_sysctls", forbidden_sysctls)
        if fs_group and not isinstance(fs_group, dict):
            raise TypeError("Expected argument 'fs_group' to be a dict")
        pulumi.set(__self__, "fs_group", fs_group)
        if host_ipc and not isinstance(host_ipc, bool):
            raise TypeError("Expected argument 'host_ipc' to be a bool")
        pulumi.set(__self__, "host_ipc", host_ipc)
        if host_network and not isinstance(host_network, bool):
            raise TypeError("Expected argument 'host_network' to be a bool")
        pulumi.set(__self__, "host_network", host_network)
        if host_pid and not isinstance(host_pid, bool):
            raise TypeError("Expected argument 'host_pid' to be a bool")
        pulumi.set(__self__, "host_pid", host_pid)
        if host_ports and not isinstance(host_ports, list):
            raise TypeError("Expected argument 'host_ports' to be a list")
        pulumi.set(__self__, "host_ports", host_ports)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if labels and not isinstance(labels, dict):
            raise TypeError("Expected argument 'labels' to be a dict")
        pulumi.set(__self__, "labels", labels)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if privileged and not isinstance(privileged, bool):
            raise TypeError("Expected argument 'privileged' to be a bool")
        pulumi.set(__self__, "privileged", privileged)
        if read_only_root_filesystem and not isinstance(read_only_root_filesystem, bool):
            raise TypeError("Expected argument 'read_only_root_filesystem' to be a bool")
        pulumi.set(__self__, "read_only_root_filesystem", read_only_root_filesystem)
        if required_drop_capabilities and not isinstance(required_drop_capabilities, list):
            raise TypeError("Expected argument 'required_drop_capabilities' to be a list")
        pulumi.set(__self__, "required_drop_capabilities", required_drop_capabilities)
        if run_as_group and not isinstance(run_as_group, dict):
            raise TypeError("Expected argument 'run_as_group' to be a dict")
        pulumi.set(__self__, "run_as_group", run_as_group)
        if run_as_user and not isinstance(run_as_user, dict):
            raise TypeError("Expected argument 'run_as_user' to be a dict")
        pulumi.set(__self__, "run_as_user", run_as_user)
        if runtime_class and not isinstance(runtime_class, dict):
            raise TypeError("Expected argument 'runtime_class' to be a dict")
        pulumi.set(__self__, "runtime_class", runtime_class)
        if se_linux and not isinstance(se_linux, dict):
            raise TypeError("Expected argument 'se_linux' to be a dict")
        pulumi.set(__self__, "se_linux", se_linux)
        if supplemental_group and not isinstance(supplemental_group, dict):
            raise TypeError("Expected argument 'supplemental_group' to be a dict")
        pulumi.set(__self__, "supplemental_group", supplemental_group)
        if volumes and not isinstance(volumes, list):
            raise TypeError("Expected argument 'volumes' to be a list")
        pulumi.set(__self__, "volumes", volumes)

    @property
    @pulumi.getter(name="allowPrivilegeEscalation")
    def allow_privilege_escalation(self) -> bool:
        return pulumi.get(self, "allow_privilege_escalation")

    @property
    @pulumi.getter(name="allowedCapabilities")
    def allowed_capabilities(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "allowed_capabilities")

    @property
    @pulumi.getter(name="allowedCsiDrivers")
    def allowed_csi_drivers(self) -> Optional[Sequence['outputs.GetPodSecurityPolicyTemplateAllowedCsiDriverResult']]:
        return pulumi.get(self, "allowed_csi_drivers")

    @property
    @pulumi.getter(name="allowedFlexVolumes")
    def allowed_flex_volumes(self) -> Optional[Sequence['outputs.GetPodSecurityPolicyTemplateAllowedFlexVolumeResult']]:
        return pulumi.get(self, "allowed_flex_volumes")

    @property
    @pulumi.getter(name="allowedHostPaths")
    def allowed_host_paths(self) -> Optional[Sequence['outputs.GetPodSecurityPolicyTemplateAllowedHostPathResult']]:
        return pulumi.get(self, "allowed_host_paths")

    @property
    @pulumi.getter(name="allowedProcMountTypes")
    def allowed_proc_mount_types(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "allowed_proc_mount_types")

    @property
    @pulumi.getter(name="allowedUnsafeSysctls")
    def allowed_unsafe_sysctls(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "allowed_unsafe_sysctls")

    @property
    @pulumi.getter
    def annotations(self) -> Mapping[str, Any]:
        return pulumi.get(self, "annotations")

    @property
    @pulumi.getter(name="defaultAddCapabilities")
    def default_add_capabilities(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "default_add_capabilities")

    @property
    @pulumi.getter(name="defaultAllowPrivilegeEscalation")
    def default_allow_privilege_escalation(self) -> Optional[bool]:
        return pulumi.get(self, "default_allow_privilege_escalation")

    @property
    @pulumi.getter
    def description(self) -> str:
        return pulumi.get(self, "description")

    @property
    @pulumi.getter(name="forbiddenSysctls")
    def forbidden_sysctls(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "forbidden_sysctls")

    @property
    @pulumi.getter(name="fsGroup")
    def fs_group(self) -> 'outputs.GetPodSecurityPolicyTemplateFsGroupResult':
        return pulumi.get(self, "fs_group")

    @property
    @pulumi.getter(name="hostIpc")
    def host_ipc(self) -> bool:
        return pulumi.get(self, "host_ipc")

    @property
    @pulumi.getter(name="hostNetwork")
    def host_network(self) -> bool:
        return pulumi.get(self, "host_network")

    @property
    @pulumi.getter(name="hostPid")
    def host_pid(self) -> bool:
        return pulumi.get(self, "host_pid")

    @property
    @pulumi.getter(name="hostPorts")
    def host_ports(self) -> Sequence['outputs.GetPodSecurityPolicyTemplateHostPortResult']:
        return pulumi.get(self, "host_ports")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def labels(self) -> Mapping[str, Any]:
        return pulumi.get(self, "labels")

    @property
    @pulumi.getter
    def name(self) -> str:
        return pulumi.get(self, "name")

    @property
    @pulumi.getter
    def privileged(self) -> bool:
        return pulumi.get(self, "privileged")

    @property
    @pulumi.getter(name="readOnlyRootFilesystem")
    def read_only_root_filesystem(self) -> bool:
        return pulumi.get(self, "read_only_root_filesystem")

    @property
    @pulumi.getter(name="requiredDropCapabilities")
    def required_drop_capabilities(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "required_drop_capabilities")

    @property
    @pulumi.getter(name="runAsGroup")
    def run_as_group(self) -> Optional['outputs.GetPodSecurityPolicyTemplateRunAsGroupResult']:
        return pulumi.get(self, "run_as_group")

    @property
    @pulumi.getter(name="runAsUser")
    def run_as_user(self) -> 'outputs.GetPodSecurityPolicyTemplateRunAsUserResult':
        return pulumi.get(self, "run_as_user")

    @property
    @pulumi.getter(name="runtimeClass")
    def runtime_class(self) -> Optional['outputs.GetPodSecurityPolicyTemplateRuntimeClassResult']:
        return pulumi.get(self, "runtime_class")

    @property
    @pulumi.getter(name="seLinux")
    def se_linux(self) -> 'outputs.GetPodSecurityPolicyTemplateSeLinuxResult':
        return pulumi.get(self, "se_linux")

    @property
    @pulumi.getter(name="supplementalGroup")
    def supplemental_group(self) -> 'outputs.GetPodSecurityPolicyTemplateSupplementalGroupResult':
        return pulumi.get(self, "supplemental_group")

    @property
    @pulumi.getter
    def volumes(self) -> Sequence[str]:
        return pulumi.get(self, "volumes")


class AwaitableGetPodSecurityPolicyTemplateResult(GetPodSecurityPolicyTemplateResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetPodSecurityPolicyTemplateResult(
            allow_privilege_escalation=self.allow_privilege_escalation,
            allowed_capabilities=self.allowed_capabilities,
            allowed_csi_drivers=self.allowed_csi_drivers,
            allowed_flex_volumes=self.allowed_flex_volumes,
            allowed_host_paths=self.allowed_host_paths,
            allowed_proc_mount_types=self.allowed_proc_mount_types,
            allowed_unsafe_sysctls=self.allowed_unsafe_sysctls,
            annotations=self.annotations,
            default_add_capabilities=self.default_add_capabilities,
            default_allow_privilege_escalation=self.default_allow_privilege_escalation,
            description=self.description,
            forbidden_sysctls=self.forbidden_sysctls,
            fs_group=self.fs_group,
            host_ipc=self.host_ipc,
            host_network=self.host_network,
            host_pid=self.host_pid,
            host_ports=self.host_ports,
            id=self.id,
            labels=self.labels,
            name=self.name,
            privileged=self.privileged,
            read_only_root_filesystem=self.read_only_root_filesystem,
            required_drop_capabilities=self.required_drop_capabilities,
            run_as_group=self.run_as_group,
            run_as_user=self.run_as_user,
            runtime_class=self.runtime_class,
            se_linux=self.se_linux,
            supplemental_group=self.supplemental_group,
            volumes=self.volumes)


def get_pod_security_policy_template(allow_privilege_escalation: Optional[bool] = None,
                                     allowed_capabilities: Optional[Sequence[str]] = None,
                                     allowed_csi_drivers: Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedCsiDriverArgs']]] = None,
                                     allowed_flex_volumes: Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedFlexVolumeArgs']]] = None,
                                     allowed_host_paths: Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedHostPathArgs']]] = None,
                                     allowed_proc_mount_types: Optional[Sequence[str]] = None,
                                     allowed_unsafe_sysctls: Optional[Sequence[str]] = None,
                                     annotations: Optional[Mapping[str, Any]] = None,
                                     default_add_capabilities: Optional[Sequence[str]] = None,
                                     default_allow_privilege_escalation: Optional[bool] = None,
                                     description: Optional[str] = None,
                                     forbidden_sysctls: Optional[Sequence[str]] = None,
                                     fs_group: Optional[pulumi.InputType['GetPodSecurityPolicyTemplateFsGroupArgs']] = None,
                                     host_ipc: Optional[bool] = None,
                                     host_network: Optional[bool] = None,
                                     host_pid: Optional[bool] = None,
                                     host_ports: Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateHostPortArgs']]] = None,
                                     labels: Optional[Mapping[str, Any]] = None,
                                     name: Optional[str] = None,
                                     privileged: Optional[bool] = None,
                                     read_only_root_filesystem: Optional[bool] = None,
                                     required_drop_capabilities: Optional[Sequence[str]] = None,
                                     run_as_group: Optional[pulumi.InputType['GetPodSecurityPolicyTemplateRunAsGroupArgs']] = None,
                                     run_as_user: Optional[pulumi.InputType['GetPodSecurityPolicyTemplateRunAsUserArgs']] = None,
                                     runtime_class: Optional[pulumi.InputType['GetPodSecurityPolicyTemplateRuntimeClassArgs']] = None,
                                     se_linux: Optional[pulumi.InputType['GetPodSecurityPolicyTemplateSeLinuxArgs']] = None,
                                     supplemental_group: Optional[pulumi.InputType['GetPodSecurityPolicyTemplateSupplementalGroupArgs']] = None,
                                     volumes: Optional[Sequence[str]] = None,
                                     opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPodSecurityPolicyTemplateResult:
    """
    Use this data source to retrieve information about a Rancher v2 PodSecurityPolicyTemplate.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_rancher2 as rancher2

    foo = rancher2.get_pod_security_policy_template(name="foo")
    ```


    :param bool allow_privilege_escalation: = (Optional)
    :param Sequence[str] allowed_capabilities: (list)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedCsiDriverArgs']] allowed_csi_drivers: (list)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedFlexVolumeArgs']] allowed_flex_volumes: (list)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedHostPathArgs']] allowed_host_paths: (list)
    :param Sequence[str] allowed_proc_mount_types: (list)
    :param Sequence[str] allowed_unsafe_sysctls: (list)
    :param Mapping[str, Any] annotations: Annotations for PodSecurityPolicyTemplate object (map)
    :param Sequence[str] default_add_capabilities: (list)
    :param bool default_allow_privilege_escalation: (list)
    :param str description: The PodSecurityPolicyTemplate description (string)
    :param Sequence[str] forbidden_sysctls: (list)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateFsGroupArgs'] fs_group: (list maxitems:1)
    :param bool host_ipc: (bool)
    :param bool host_pid: (bool)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateHostPortArgs']] host_ports: (list)
    :param Mapping[str, Any] labels: Labels for PodSecurityPolicyTemplate object (map)
    :param str name: The name of the PodSecurityPolicyTemplate (string)
    :param bool privileged: (bool)
    :param bool read_only_root_filesystem: (bool)
    :param Sequence[str] required_drop_capabilities: (list)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateRunAsGroupArgs'] run_as_group: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateRunAsUserArgs'] run_as_user: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateRuntimeClassArgs'] runtime_class: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateSeLinuxArgs'] se_linux: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateSupplementalGroupArgs'] supplemental_group: (list maxitems:1)
    :param Sequence[str] volumes: (list)
    """
    __args__ = dict()
    __args__['allowPrivilegeEscalation'] = allow_privilege_escalation
    __args__['allowedCapabilities'] = allowed_capabilities
    __args__['allowedCsiDrivers'] = allowed_csi_drivers
    __args__['allowedFlexVolumes'] = allowed_flex_volumes
    __args__['allowedHostPaths'] = allowed_host_paths
    __args__['allowedProcMountTypes'] = allowed_proc_mount_types
    __args__['allowedUnsafeSysctls'] = allowed_unsafe_sysctls
    __args__['annotations'] = annotations
    __args__['defaultAddCapabilities'] = default_add_capabilities
    __args__['defaultAllowPrivilegeEscalation'] = default_allow_privilege_escalation
    __args__['description'] = description
    __args__['forbiddenSysctls'] = forbidden_sysctls
    __args__['fsGroup'] = fs_group
    __args__['hostIpc'] = host_ipc
    __args__['hostNetwork'] = host_network
    __args__['hostPid'] = host_pid
    __args__['hostPorts'] = host_ports
    __args__['labels'] = labels
    __args__['name'] = name
    __args__['privileged'] = privileged
    __args__['readOnlyRootFilesystem'] = read_only_root_filesystem
    __args__['requiredDropCapabilities'] = required_drop_capabilities
    __args__['runAsGroup'] = run_as_group
    __args__['runAsUser'] = run_as_user
    __args__['runtimeClass'] = runtime_class
    __args__['seLinux'] = se_linux
    __args__['supplementalGroup'] = supplemental_group
    __args__['volumes'] = volumes
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('rancher2:index/getPodSecurityPolicyTemplate:getPodSecurityPolicyTemplate', __args__, opts=opts, typ=GetPodSecurityPolicyTemplateResult).value

    return AwaitableGetPodSecurityPolicyTemplateResult(
        allow_privilege_escalation=pulumi.get(__ret__, 'allow_privilege_escalation'),
        allowed_capabilities=pulumi.get(__ret__, 'allowed_capabilities'),
        allowed_csi_drivers=pulumi.get(__ret__, 'allowed_csi_drivers'),
        allowed_flex_volumes=pulumi.get(__ret__, 'allowed_flex_volumes'),
        allowed_host_paths=pulumi.get(__ret__, 'allowed_host_paths'),
        allowed_proc_mount_types=pulumi.get(__ret__, 'allowed_proc_mount_types'),
        allowed_unsafe_sysctls=pulumi.get(__ret__, 'allowed_unsafe_sysctls'),
        annotations=pulumi.get(__ret__, 'annotations'),
        default_add_capabilities=pulumi.get(__ret__, 'default_add_capabilities'),
        default_allow_privilege_escalation=pulumi.get(__ret__, 'default_allow_privilege_escalation'),
        description=pulumi.get(__ret__, 'description'),
        forbidden_sysctls=pulumi.get(__ret__, 'forbidden_sysctls'),
        fs_group=pulumi.get(__ret__, 'fs_group'),
        host_ipc=pulumi.get(__ret__, 'host_ipc'),
        host_network=pulumi.get(__ret__, 'host_network'),
        host_pid=pulumi.get(__ret__, 'host_pid'),
        host_ports=pulumi.get(__ret__, 'host_ports'),
        id=pulumi.get(__ret__, 'id'),
        labels=pulumi.get(__ret__, 'labels'),
        name=pulumi.get(__ret__, 'name'),
        privileged=pulumi.get(__ret__, 'privileged'),
        read_only_root_filesystem=pulumi.get(__ret__, 'read_only_root_filesystem'),
        required_drop_capabilities=pulumi.get(__ret__, 'required_drop_capabilities'),
        run_as_group=pulumi.get(__ret__, 'run_as_group'),
        run_as_user=pulumi.get(__ret__, 'run_as_user'),
        runtime_class=pulumi.get(__ret__, 'runtime_class'),
        se_linux=pulumi.get(__ret__, 'se_linux'),
        supplemental_group=pulumi.get(__ret__, 'supplemental_group'),
        volumes=pulumi.get(__ret__, 'volumes'))


@_utilities.lift_output_func(get_pod_security_policy_template)
def get_pod_security_policy_template_output(allow_privilege_escalation: Optional[pulumi.Input[Optional[bool]]] = None,
                                            allowed_capabilities: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            allowed_csi_drivers: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedCsiDriverArgs']]]]] = None,
                                            allowed_flex_volumes: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedFlexVolumeArgs']]]]] = None,
                                            allowed_host_paths: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedHostPathArgs']]]]] = None,
                                            allowed_proc_mount_types: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            allowed_unsafe_sysctls: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            annotations: Optional[pulumi.Input[Optional[Mapping[str, Any]]]] = None,
                                            default_add_capabilities: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            default_allow_privilege_escalation: Optional[pulumi.Input[Optional[bool]]] = None,
                                            description: Optional[pulumi.Input[Optional[str]]] = None,
                                            forbidden_sysctls: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            fs_group: Optional[pulumi.Input[Optional[pulumi.InputType['GetPodSecurityPolicyTemplateFsGroupArgs']]]] = None,
                                            host_ipc: Optional[pulumi.Input[Optional[bool]]] = None,
                                            host_network: Optional[pulumi.Input[Optional[bool]]] = None,
                                            host_pid: Optional[pulumi.Input[Optional[bool]]] = None,
                                            host_ports: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateHostPortArgs']]]]] = None,
                                            labels: Optional[pulumi.Input[Optional[Mapping[str, Any]]]] = None,
                                            name: Optional[pulumi.Input[str]] = None,
                                            privileged: Optional[pulumi.Input[Optional[bool]]] = None,
                                            read_only_root_filesystem: Optional[pulumi.Input[Optional[bool]]] = None,
                                            required_drop_capabilities: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            run_as_group: Optional[pulumi.Input[Optional[pulumi.InputType['GetPodSecurityPolicyTemplateRunAsGroupArgs']]]] = None,
                                            run_as_user: Optional[pulumi.Input[Optional[pulumi.InputType['GetPodSecurityPolicyTemplateRunAsUserArgs']]]] = None,
                                            runtime_class: Optional[pulumi.Input[Optional[pulumi.InputType['GetPodSecurityPolicyTemplateRuntimeClassArgs']]]] = None,
                                            se_linux: Optional[pulumi.Input[Optional[pulumi.InputType['GetPodSecurityPolicyTemplateSeLinuxArgs']]]] = None,
                                            supplemental_group: Optional[pulumi.Input[Optional[pulumi.InputType['GetPodSecurityPolicyTemplateSupplementalGroupArgs']]]] = None,
                                            volumes: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
                                            opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPodSecurityPolicyTemplateResult]:
    """
    Use this data source to retrieve information about a Rancher v2 PodSecurityPolicyTemplate.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_rancher2 as rancher2

    foo = rancher2.get_pod_security_policy_template(name="foo")
    ```


    :param bool allow_privilege_escalation: = (Optional)
    :param Sequence[str] allowed_capabilities: (list)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedCsiDriverArgs']] allowed_csi_drivers: (list)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedFlexVolumeArgs']] allowed_flex_volumes: (list)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateAllowedHostPathArgs']] allowed_host_paths: (list)
    :param Sequence[str] allowed_proc_mount_types: (list)
    :param Sequence[str] allowed_unsafe_sysctls: (list)
    :param Mapping[str, Any] annotations: Annotations for PodSecurityPolicyTemplate object (map)
    :param Sequence[str] default_add_capabilities: (list)
    :param bool default_allow_privilege_escalation: (list)
    :param str description: The PodSecurityPolicyTemplate description (string)
    :param Sequence[str] forbidden_sysctls: (list)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateFsGroupArgs'] fs_group: (list maxitems:1)
    :param bool host_ipc: (bool)
    :param bool host_pid: (bool)
    :param Sequence[pulumi.InputType['GetPodSecurityPolicyTemplateHostPortArgs']] host_ports: (list)
    :param Mapping[str, Any] labels: Labels for PodSecurityPolicyTemplate object (map)
    :param str name: The name of the PodSecurityPolicyTemplate (string)
    :param bool privileged: (bool)
    :param bool read_only_root_filesystem: (bool)
    :param Sequence[str] required_drop_capabilities: (list)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateRunAsGroupArgs'] run_as_group: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateRunAsUserArgs'] run_as_user: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateRuntimeClassArgs'] runtime_class: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateSeLinuxArgs'] se_linux: (list maxitems:1)
    :param pulumi.InputType['GetPodSecurityPolicyTemplateSupplementalGroupArgs'] supplemental_group: (list maxitems:1)
    :param Sequence[str] volumes: (list)
    """
    ...
