# 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 sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities

__all__ = [
    'AuthJwt',
    'Headers',
]

@pulumi.output_type
class AuthJwt(dict):
    def __init__(__self__, *,
                 auth_method: str,
                 bearer_token: Optional[str] = None,
                 meta: Optional[Mapping[str, str]] = None,
                 use_terraform_cloud_workload_identity: Optional[bool] = None):
        """
        :param str auth_method: The name of the auth method to use for login.
        :param str bearer_token: The bearer token to present to the auth method during login for authentication purposes. For the Kubernetes auth method this is a [Service Account Token (JWT)](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens).
        :param Mapping[str, str] meta: Specifies arbitrary KV metadata linked to the token. Can be useful to track origins.
        """
        pulumi.set(__self__, "auth_method", auth_method)
        if bearer_token is not None:
            pulumi.set(__self__, "bearer_token", bearer_token)
        if meta is not None:
            pulumi.set(__self__, "meta", meta)
        if use_terraform_cloud_workload_identity is not None:
            pulumi.set(__self__, "use_terraform_cloud_workload_identity", use_terraform_cloud_workload_identity)

    @property
    @pulumi.getter(name="authMethod")
    def auth_method(self) -> str:
        """
        The name of the auth method to use for login.
        """
        return pulumi.get(self, "auth_method")

    @property
    @pulumi.getter(name="bearerToken")
    def bearer_token(self) -> Optional[str]:
        """
        The bearer token to present to the auth method during login for authentication purposes. For the Kubernetes auth method this is a [Service Account Token (JWT)](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens).
        """
        return pulumi.get(self, "bearer_token")

    @property
    @pulumi.getter
    def meta(self) -> Optional[Mapping[str, str]]:
        """
        Specifies arbitrary KV metadata linked to the token. Can be useful to track origins.
        """
        return pulumi.get(self, "meta")

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


@pulumi.output_type
class Headers(dict):
    def __init__(__self__, *,
                 name: str,
                 value: str):
        """
        :param str name: The name of the header.
        :param str value: The value of the header.
        """
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "value", value)

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

    @property
    @pulumi.getter
    def value(self) -> str:
        """
        The value of the header.
        """
        return pulumi.get(self, "value")


