# coding=utf-8
# *** WARNING: this file was generated by pulumigen. ***
# *** 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 ._enums import *

__all__ = [
    'Environment',
    'EnvironmentWithCursor',
]

@pulumi.output_type
class Environment(dict):
    def __init__(__self__, *,
                 databases_ids: Sequence[str],
                 env_group_ids: Sequence[str],
                 id: str,
                 name: str,
                 project_id: str,
                 protected_status: 'EnvironmentProtectedStatus',
                 redis_ids: Sequence[str],
                 service_ids: Sequence[str]):
        """
        :param 'EnvironmentProtectedStatus' protected_status: Indicates whether an environment is `unprotected` or `protected`. Only admin users can perform destructive actions in `protected` environments.
        """
        pulumi.set(__self__, "databases_ids", databases_ids)
        pulumi.set(__self__, "env_group_ids", env_group_ids)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "project_id", project_id)
        pulumi.set(__self__, "protected_status", protected_status)
        pulumi.set(__self__, "redis_ids", redis_ids)
        pulumi.set(__self__, "service_ids", service_ids)

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

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

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

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

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

    @property
    @pulumi.getter(name="protectedStatus")
    def protected_status(self) -> 'EnvironmentProtectedStatus':
        """
        Indicates whether an environment is `unprotected` or `protected`. Only admin users can perform destructive actions in `protected` environments.
        """
        return pulumi.get(self, "protected_status")

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

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


@pulumi.output_type
class EnvironmentWithCursor(dict):
    """
    An environment with a cursor
    """
    def __init__(__self__, *,
                 cursor: str,
                 environment: 'outputs.Environment'):
        """
        An environment with a cursor
        """
        pulumi.set(__self__, "cursor", cursor)
        pulumi.set(__self__, "environment", environment)

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

    @property
    @pulumi.getter
    def environment(self) -> 'outputs.Environment':
        return pulumi.get(self, "environment")


