# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'GetEnrollmentStatusResult',
    'AwaitableGetEnrollmentStatusResult',
    'get_enrollment_status',
]

@pulumi.output_type
class GetEnrollmentStatusResult:
    """
    A collection of values returned by getEnrollmentStatus.
    """
    def __init__(__self__, compartment_id=None, enrollment_status_id=None, id=None, state=None, status=None, status_reason=None, time_created=None, time_updated=None):
        if compartment_id and not isinstance(compartment_id, str):
            raise TypeError("Expected argument 'compartment_id' to be a str")
        pulumi.set(__self__, "compartment_id", compartment_id)
        if enrollment_status_id and not isinstance(enrollment_status_id, str):
            raise TypeError("Expected argument 'enrollment_status_id' to be a str")
        pulumi.set(__self__, "enrollment_status_id", enrollment_status_id)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if state and not isinstance(state, str):
            raise TypeError("Expected argument 'state' to be a str")
        pulumi.set(__self__, "state", state)
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        pulumi.set(__self__, "status", status)
        if status_reason and not isinstance(status_reason, str):
            raise TypeError("Expected argument 'status_reason' to be a str")
        pulumi.set(__self__, "status_reason", status_reason)
        if time_created and not isinstance(time_created, str):
            raise TypeError("Expected argument 'time_created' to be a str")
        pulumi.set(__self__, "time_created", time_created)
        if time_updated and not isinstance(time_updated, str):
            raise TypeError("Expected argument 'time_updated' to be a str")
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment.
        """
        return pulumi.get(self, "compartment_id")

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

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The OCID of the enrollment status.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The enrollment status' current state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The current Cloud Advisor enrollment status.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="statusReason")
    def status_reason(self) -> str:
        """
        The reason for the enrollment status of the tenancy.
        """
        return pulumi.get(self, "status_reason")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the enrollment status was created, in the format defined by RFC3339.
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The date and time the enrollment status was last updated, in the format defined by RFC3339.
        """
        return pulumi.get(self, "time_updated")


class AwaitableGetEnrollmentStatusResult(GetEnrollmentStatusResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetEnrollmentStatusResult(
            compartment_id=self.compartment_id,
            enrollment_status_id=self.enrollment_status_id,
            id=self.id,
            state=self.state,
            status=self.status,
            status_reason=self.status_reason,
            time_created=self.time_created,
            time_updated=self.time_updated)


def get_enrollment_status(enrollment_status_id: Optional[str] = None,
                          opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEnrollmentStatusResult:
    """
    This data source provides details about a specific Enrollment Status resource in Oracle Cloud Infrastructure Optimizer service.

    Gets the Cloud Advisor enrollment status.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_enrollment_status = oci.optimizer.get_enrollment_status(enrollment_status_id=oci_optimizer_enrollment_status["test_enrollment_status"]["id"])
    ```


    :param str enrollment_status_id: The unique OCID associated with the enrollment status.
    """
    __args__ = dict()
    __args__['enrollmentStatusId'] = enrollment_status_id
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('oci:optimizer/getEnrollmentStatus:getEnrollmentStatus', __args__, opts=opts, typ=GetEnrollmentStatusResult).value

    return AwaitableGetEnrollmentStatusResult(
        compartment_id=__ret__.compartment_id,
        enrollment_status_id=__ret__.enrollment_status_id,
        id=__ret__.id,
        state=__ret__.state,
        status=__ret__.status,
        status_reason=__ret__.status_reason,
        time_created=__ret__.time_created,
        time_updated=__ret__.time_updated)

# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

__all__ = [
    'GetEnrollmentStatusResult',
    'AwaitableGetEnrollmentStatusResult',
    'get_enrollment_status',
]

@pulumi.output_type
class GetEnrollmentStatusResult:
    """
    A collection of values returned by getEnrollmentStatus.
    """
    def __init__(__self__, compartment_id=None, enrollment_status_id=None, id=None, state=None, status=None, status_reason=None, time_created=None, time_updated=None):
        if compartment_id and not isinstance(compartment_id, str):
            raise TypeError("Expected argument 'compartment_id' to be a str")
        pulumi.set(__self__, "compartment_id", compartment_id)
        if enrollment_status_id and not isinstance(enrollment_status_id, str):
            raise TypeError("Expected argument 'enrollment_status_id' to be a str")
        pulumi.set(__self__, "enrollment_status_id", enrollment_status_id)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if state and not isinstance(state, str):
            raise TypeError("Expected argument 'state' to be a str")
        pulumi.set(__self__, "state", state)
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        pulumi.set(__self__, "status", status)
        if status_reason and not isinstance(status_reason, str):
            raise TypeError("Expected argument 'status_reason' to be a str")
        pulumi.set(__self__, "status_reason", status_reason)
        if time_created and not isinstance(time_created, str):
            raise TypeError("Expected argument 'time_created' to be a str")
        pulumi.set(__self__, "time_created", time_created)
        if time_updated and not isinstance(time_updated, str):
            raise TypeError("Expected argument 'time_updated' to be a str")
        pulumi.set(__self__, "time_updated", time_updated)

    @property
    @pulumi.getter(name="compartmentId")
    def compartment_id(self) -> str:
        """
        The OCID of the compartment.
        """
        return pulumi.get(self, "compartment_id")

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

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The OCID of the enrollment status.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def state(self) -> str:
        """
        The enrollment status' current state.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The current Cloud Advisor enrollment status.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="statusReason")
    def status_reason(self) -> str:
        """
        The reason for the enrollment status of the tenancy.
        """
        return pulumi.get(self, "status_reason")

    @property
    @pulumi.getter(name="timeCreated")
    def time_created(self) -> str:
        """
        The date and time the enrollment status was created, in the format defined by RFC3339.
        """
        return pulumi.get(self, "time_created")

    @property
    @pulumi.getter(name="timeUpdated")
    def time_updated(self) -> str:
        """
        The date and time the enrollment status was last updated, in the format defined by RFC3339.
        """
        return pulumi.get(self, "time_updated")


class AwaitableGetEnrollmentStatusResult(GetEnrollmentStatusResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetEnrollmentStatusResult(
            compartment_id=self.compartment_id,
            enrollment_status_id=self.enrollment_status_id,
            id=self.id,
            state=self.state,
            status=self.status,
            status_reason=self.status_reason,
            time_created=self.time_created,
            time_updated=self.time_updated)


def get_enrollment_status(enrollment_status_id: Optional[str] = None,
                          opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEnrollmentStatusResult:
    """
    This data source provides details about a specific Enrollment Status resource in Oracle Cloud Infrastructure Optimizer service.

    Gets the Cloud Advisor enrollment status.

    ## Example Usage

    ```python
    import pulumi
    import pulumi_oci as oci

    test_enrollment_status = oci.optimizer.get_enrollment_status(enrollment_status_id=oci_optimizer_enrollment_status["test_enrollment_status"]["id"])
    ```


    :param str enrollment_status_id: The unique OCID associated with the enrollment status.
    """
    __args__ = dict()
    __args__['enrollmentStatusId'] = enrollment_status_id
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('oci:optimizer/getEnrollmentStatus:getEnrollmentStatus', __args__, opts=opts, typ=GetEnrollmentStatusResult).value

    return AwaitableGetEnrollmentStatusResult(
        compartment_id=__ret__.compartment_id,
        enrollment_status_id=__ret__.enrollment_status_id,
        id=__ret__.id,
        state=__ret__.state,
        status=__ret__.status,
        status_reason=__ret__.status_reason,
        time_created=__ret__.time_created,
        time_updated=__ret__.time_updated)

# 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! *** A collection of values returned by getEnrollmentStatus. The OCID of the compartment. The OCID of the enrollment status. The enrollment status' current state. The current Cloud Advisor enrollment status. The reason for the enrollment status of the tenancy. The date and time the enrollment status was created, in the format defined by RFC3339. The date and time the enrollment status was last updated, in the format defined by RFC3339. # pylint: disable=using-constant-test This data source provides details about a specific Enrollment Status resource in Oracle Cloud Infrastructure Optimizer service.      Gets the Cloud Advisor enrollment status.      ## Example Usage      ```python     import pulumi     import pulumi_oci as oci      test_enrollment_status = oci.optimizer.get_enrollment_status(enrollment_status_id=oci_optimizer_enrollment_status["test_enrollment_status"]["id"])     ```       :param str enrollment_status_id: The unique OCID associated with the enrollment status.