# coding=utf-8
# *** WARNING: this file was generated by pulumi-language-python. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import builtins as _builtins
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
from . import outputs
from ._inputs import *

__all__ = [
    'GetApiServiceIntegrationResult',
    'AwaitableGetApiServiceIntegrationResult',
    'get_api_service_integration',
    'get_api_service_integration_output',
]

@pulumi.output_type
class GetApiServiceIntegrationResult:
    """
    A collection of values returned by getApiServiceIntegration.
    """
    def __init__(__self__, config_guide_url=None, created=None, created_by=None, granted_scopes=None, id=None, name=None, type=None):
        if config_guide_url and not isinstance(config_guide_url, str):
            raise TypeError("Expected argument 'config_guide_url' to be a str")
        pulumi.set(__self__, "config_guide_url", config_guide_url)
        if created and not isinstance(created, str):
            raise TypeError("Expected argument 'created' to be a str")
        pulumi.set(__self__, "created", created)
        if created_by and not isinstance(created_by, str):
            raise TypeError("Expected argument 'created_by' to be a str")
        pulumi.set(__self__, "created_by", created_by)
        if granted_scopes and not isinstance(granted_scopes, list):
            raise TypeError("Expected argument 'granted_scopes' to be a list")
        pulumi.set(__self__, "granted_scopes", granted_scopes)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        pulumi.set(__self__, "name", name)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)

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

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

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

    @_builtins.property
    @pulumi.getter(name="grantedScopes")
    def granted_scopes(self) -> Optional[Sequence['outputs.GetApiServiceIntegrationGrantedScopeResult']]:
        return pulumi.get(self, "granted_scopes")

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

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

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


class AwaitableGetApiServiceIntegrationResult(GetApiServiceIntegrationResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetApiServiceIntegrationResult(
            config_guide_url=self.config_guide_url,
            created=self.created,
            created_by=self.created_by,
            granted_scopes=self.granted_scopes,
            id=self.id,
            name=self.name,
            type=self.type)


def get_api_service_integration(granted_scopes: Optional[Sequence[Union['GetApiServiceIntegrationGrantedScopeArgs', 'GetApiServiceIntegrationGrantedScopeArgsDict']]] = None,
                                id: Optional[_builtins.str] = None,
                                opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApiServiceIntegrationResult:
    """
    Retrieves an API Service Integration instance by id

    ## Example Usage

    ```python
    import pulumi
    import pulumi_okta as okta

    test = okta.get_api_service_integration(id="<api_service_integration_id>")
    ```

    ## Required

    - `id` (String) The id of the API Service Integration instance.

    ### Read-Only

    - `config_guide_url` (String) The URL to the API service integration configuration guide.
    - `created` (String) The created timestamp of the API Service Integration instance.
    - `created_at` (String) Timestamp when the API Service Integration instance was created.
    - `granted_scopes` (List of String) The list of Okta management scopes granted to the API Service Integration instance.(see below for nested schema).
    - `name` (String) The name of the API service integration that corresponds with the type property. This is the full name of the API service integration listed in the Okta Integration Network (OIN) catalog.
    - `type` (String) The type of the API service integration. This string is an underscore-concatenated, lowercased API service integration name. For example, my_api_log_integration.
    """
    __args__ = dict()
    __args__['grantedScopes'] = granted_scopes
    __args__['id'] = id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('okta:index/getApiServiceIntegration:getApiServiceIntegration', __args__, opts=opts, typ=GetApiServiceIntegrationResult).value

    return AwaitableGetApiServiceIntegrationResult(
        config_guide_url=pulumi.get(__ret__, 'config_guide_url'),
        created=pulumi.get(__ret__, 'created'),
        created_by=pulumi.get(__ret__, 'created_by'),
        granted_scopes=pulumi.get(__ret__, 'granted_scopes'),
        id=pulumi.get(__ret__, 'id'),
        name=pulumi.get(__ret__, 'name'),
        type=pulumi.get(__ret__, 'type'))
def get_api_service_integration_output(granted_scopes: Optional[pulumi.Input[Optional[Sequence[Union['GetApiServiceIntegrationGrantedScopeArgs', 'GetApiServiceIntegrationGrantedScopeArgsDict']]]]] = None,
                                       id: Optional[pulumi.Input[_builtins.str]] = None,
                                       opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetApiServiceIntegrationResult]:
    """
    Retrieves an API Service Integration instance by id

    ## Example Usage

    ```python
    import pulumi
    import pulumi_okta as okta

    test = okta.get_api_service_integration(id="<api_service_integration_id>")
    ```

    ## Required

    - `id` (String) The id of the API Service Integration instance.

    ### Read-Only

    - `config_guide_url` (String) The URL to the API service integration configuration guide.
    - `created` (String) The created timestamp of the API Service Integration instance.
    - `created_at` (String) Timestamp when the API Service Integration instance was created.
    - `granted_scopes` (List of String) The list of Okta management scopes granted to the API Service Integration instance.(see below for nested schema).
    - `name` (String) The name of the API service integration that corresponds with the type property. This is the full name of the API service integration listed in the Okta Integration Network (OIN) catalog.
    - `type` (String) The type of the API service integration. This string is an underscore-concatenated, lowercased API service integration name. For example, my_api_log_integration.
    """
    __args__ = dict()
    __args__['grantedScopes'] = granted_scopes
    __args__['id'] = id
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('okta:index/getApiServiceIntegration:getApiServiceIntegration', __args__, opts=opts, typ=GetApiServiceIntegrationResult)
    return __ret__.apply(lambda __response__: GetApiServiceIntegrationResult(
        config_guide_url=pulumi.get(__response__, 'config_guide_url'),
        created=pulumi.get(__response__, 'created'),
        created_by=pulumi.get(__response__, 'created_by'),
        granted_scopes=pulumi.get(__response__, 'granted_scopes'),
        id=pulumi.get(__response__, 'id'),
        name=pulumi.get(__response__, 'name'),
        type=pulumi.get(__response__, 'type')))
