# 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 builtins
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__ = [
    'ProviderAssumeRoleArgs',
    'ProviderAssumeRoleArgsDict',
    'ProviderEndpointsArgs',
    'ProviderEndpointsArgsDict',
]

MYPY = False

if not MYPY:
    class ProviderAssumeRoleArgsDict(TypedDict):
        assume_role_trn: pulumi.Input[builtins.str]
        """
        he TRN of the role to assume.
        """
        duration_seconds: NotRequired[pulumi.Input[builtins.int]]
        """
        The duration of the session when making the AssumeRole call. Its value ranges from 900 to 43200(seconds), and default is 3600 seconds.
        """
        policy: NotRequired[pulumi.Input[builtins.str]]
        """
        A more restrictive policy when making the AssumeRole call
        """
elif False:
    ProviderAssumeRoleArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderAssumeRoleArgs:
    def __init__(__self__, *,
                 assume_role_trn: pulumi.Input[builtins.str],
                 duration_seconds: Optional[pulumi.Input[builtins.int]] = None,
                 policy: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] assume_role_trn: he TRN of the role to assume.
        :param pulumi.Input[builtins.int] duration_seconds: The duration of the session when making the AssumeRole call. Its value ranges from 900 to 43200(seconds), and default is 3600 seconds.
        :param pulumi.Input[builtins.str] policy: A more restrictive policy when making the AssumeRole call
        """
        pulumi.set(__self__, "assume_role_trn", assume_role_trn)
        if duration_seconds is not None:
            pulumi.set(__self__, "duration_seconds", duration_seconds)
        if policy is not None:
            pulumi.set(__self__, "policy", policy)

    @property
    @pulumi.getter(name="assumeRoleTrn")
    def assume_role_trn(self) -> pulumi.Input[builtins.str]:
        """
        he TRN of the role to assume.
        """
        return pulumi.get(self, "assume_role_trn")

    @assume_role_trn.setter
    def assume_role_trn(self, value: pulumi.Input[builtins.str]):
        pulumi.set(self, "assume_role_trn", value)

    @property
    @pulumi.getter(name="durationSeconds")
    def duration_seconds(self) -> Optional[pulumi.Input[builtins.int]]:
        """
        The duration of the session when making the AssumeRole call. Its value ranges from 900 to 43200(seconds), and default is 3600 seconds.
        """
        return pulumi.get(self, "duration_seconds")

    @duration_seconds.setter
    def duration_seconds(self, value: Optional[pulumi.Input[builtins.int]]):
        pulumi.set(self, "duration_seconds", value)

    @property
    @pulumi.getter
    def policy(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        A more restrictive policy when making the AssumeRole call
        """
        return pulumi.get(self, "policy")

    @policy.setter
    def policy(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "policy", value)


if not MYPY:
    class ProviderEndpointsArgsDict(TypedDict):
        cloudcontrolapi: NotRequired[pulumi.Input[builtins.str]]
        """
        Use this to override the default Cloud Control API service endpoint URL
        """
        sts: NotRequired[pulumi.Input[builtins.str]]
        """
        Use this to override the default STS service endpoint URL
        """
elif False:
    ProviderEndpointsArgsDict: TypeAlias = Mapping[str, Any]

@pulumi.input_type
class ProviderEndpointsArgs:
    def __init__(__self__, *,
                 cloudcontrolapi: Optional[pulumi.Input[builtins.str]] = None,
                 sts: Optional[pulumi.Input[builtins.str]] = None):
        """
        :param pulumi.Input[builtins.str] cloudcontrolapi: Use this to override the default Cloud Control API service endpoint URL
        :param pulumi.Input[builtins.str] sts: Use this to override the default STS service endpoint URL
        """
        if cloudcontrolapi is not None:
            pulumi.set(__self__, "cloudcontrolapi", cloudcontrolapi)
        if sts is not None:
            pulumi.set(__self__, "sts", sts)

    @property
    @pulumi.getter
    def cloudcontrolapi(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        Use this to override the default Cloud Control API service endpoint URL
        """
        return pulumi.get(self, "cloudcontrolapi")

    @cloudcontrolapi.setter
    def cloudcontrolapi(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "cloudcontrolapi", value)

    @property
    @pulumi.getter
    def sts(self) -> Optional[pulumi.Input[builtins.str]]:
        """
        Use this to override the default STS service endpoint URL
        """
        return pulumi.get(self, "sts")

    @sts.setter
    def sts(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "sts", value)


