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

__all__ = [
    'BlockchainPlatformComponentDetailArgs',
    'BlockchainPlatformComponentDetailOsnArgs',
    'BlockchainPlatformComponentDetailOsnOcpuAllocationParamArgs',
    'BlockchainPlatformComponentDetailPeerArgs',
    'BlockchainPlatformComponentDetailPeerOcpuAllocationParamArgs',
    'BlockchainPlatformHostOcpuUtilizationInfoArgs',
    'BlockchainPlatformReplicasArgs',
    'OsnOcpuAllocationParamArgs',
    'PeerOcpuAllocationParamArgs',
    'GetBlockchainPlatformPatchesFilterArgs',
    'GetBlockchainPlatformsFilterArgs',
    'GetOsnsFilterArgs',
    'GetPeersFilterArgs',
]

@pulumi.input_type
class BlockchainPlatformComponentDetailArgs:
    def __init__(__self__, *,
                 osns: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnArgs']]]] = None,
                 peers: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerArgs']]]] = None):
        """
        :param pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnArgs']]] osns: List of OSNs
        :param pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerArgs']]] peers: List of Peers
        """
        if osns is not None:
            pulumi.set(__self__, "osns", osns)
        if peers is not None:
            pulumi.set(__self__, "peers", peers)

    @property
    @pulumi.getter
    def osns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnArgs']]]]:
        """
        List of OSNs
        """
        return pulumi.get(self, "osns")

    @osns.setter
    def osns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnArgs']]]]):
        pulumi.set(self, "osns", value)

    @property
    @pulumi.getter
    def peers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerArgs']]]]:
        """
        List of Peers
        """
        return pulumi.get(self, "peers")

    @peers.setter
    def peers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerArgs']]]]):
        pulumi.set(self, "peers", value)


@pulumi.input_type
class BlockchainPlatformComponentDetailOsnArgs:
    def __init__(__self__, *,
                 ad: Optional[pulumi.Input[str]] = None,
                 ocpu_allocation_params: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnOcpuAllocationParamArgs']]]] = None,
                 osn_key: Optional[pulumi.Input[str]] = None,
                 state: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] ad: Availability Domain of peer
        :param pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnOcpuAllocationParamArgs']]] ocpu_allocation_params: OCPU allocation parameter
        :param pulumi.Input[str] osn_key: OSN identifier
        :param pulumi.Input[str] state: The current state of the Platform Instance.
        """
        if ad is not None:
            pulumi.set(__self__, "ad", ad)
        if ocpu_allocation_params is not None:
            pulumi.set(__self__, "ocpu_allocation_params", ocpu_allocation_params)
        if osn_key is not None:
            pulumi.set(__self__, "osn_key", osn_key)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter
    def ad(self) -> Optional[pulumi.Input[str]]:
        """
        Availability Domain of peer
        """
        return pulumi.get(self, "ad")

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

    @property
    @pulumi.getter(name="ocpuAllocationParams")
    def ocpu_allocation_params(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnOcpuAllocationParamArgs']]]]:
        """
        OCPU allocation parameter
        """
        return pulumi.get(self, "ocpu_allocation_params")

    @ocpu_allocation_params.setter
    def ocpu_allocation_params(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailOsnOcpuAllocationParamArgs']]]]):
        pulumi.set(self, "ocpu_allocation_params", value)

    @property
    @pulumi.getter(name="osnKey")
    def osn_key(self) -> Optional[pulumi.Input[str]]:
        """
        OSN identifier
        """
        return pulumi.get(self, "osn_key")

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

    @property
    @pulumi.getter
    def state(self) -> Optional[pulumi.Input[str]]:
        """
        The current state of the Platform Instance.
        """
        return pulumi.get(self, "state")

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


@pulumi.input_type
class BlockchainPlatformComponentDetailOsnOcpuAllocationParamArgs:
    def __init__(__self__, *,
                 ocpu_allocation_number: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[float] ocpu_allocation_number: Number of OCPU allocation
        """
        if ocpu_allocation_number is not None:
            pulumi.set(__self__, "ocpu_allocation_number", ocpu_allocation_number)

    @property
    @pulumi.getter(name="ocpuAllocationNumber")
    def ocpu_allocation_number(self) -> Optional[pulumi.Input[float]]:
        """
        Number of OCPU allocation
        """
        return pulumi.get(self, "ocpu_allocation_number")

    @ocpu_allocation_number.setter
    def ocpu_allocation_number(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "ocpu_allocation_number", value)


@pulumi.input_type
class BlockchainPlatformComponentDetailPeerArgs:
    def __init__(__self__, *,
                 ad: Optional[pulumi.Input[str]] = None,
                 alias: Optional[pulumi.Input[str]] = None,
                 host: Optional[pulumi.Input[str]] = None,
                 ocpu_allocation_params: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerOcpuAllocationParamArgs']]]] = None,
                 peer_key: Optional[pulumi.Input[str]] = None,
                 role: Optional[pulumi.Input[str]] = None,
                 state: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] ad: Availability Domain of peer
        :param pulumi.Input[str] alias: peer alias
        :param pulumi.Input[str] host: Host name of VM
        :param pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerOcpuAllocationParamArgs']]] ocpu_allocation_params: OCPU allocation parameter
        :param pulumi.Input[str] peer_key: peer identifier
        :param pulumi.Input[str] role: Peer role
        :param pulumi.Input[str] state: The current state of the Platform Instance.
        """
        if ad is not None:
            pulumi.set(__self__, "ad", ad)
        if alias is not None:
            pulumi.set(__self__, "alias", alias)
        if host is not None:
            pulumi.set(__self__, "host", host)
        if ocpu_allocation_params is not None:
            pulumi.set(__self__, "ocpu_allocation_params", ocpu_allocation_params)
        if peer_key is not None:
            pulumi.set(__self__, "peer_key", peer_key)
        if role is not None:
            pulumi.set(__self__, "role", role)
        if state is not None:
            pulumi.set(__self__, "state", state)

    @property
    @pulumi.getter
    def ad(self) -> Optional[pulumi.Input[str]]:
        """
        Availability Domain of peer
        """
        return pulumi.get(self, "ad")

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

    @property
    @pulumi.getter
    def alias(self) -> Optional[pulumi.Input[str]]:
        """
        peer alias
        """
        return pulumi.get(self, "alias")

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

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        """
        Host name of VM
        """
        return pulumi.get(self, "host")

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

    @property
    @pulumi.getter(name="ocpuAllocationParams")
    def ocpu_allocation_params(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerOcpuAllocationParamArgs']]]]:
        """
        OCPU allocation parameter
        """
        return pulumi.get(self, "ocpu_allocation_params")

    @ocpu_allocation_params.setter
    def ocpu_allocation_params(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BlockchainPlatformComponentDetailPeerOcpuAllocationParamArgs']]]]):
        pulumi.set(self, "ocpu_allocation_params", value)

    @property
    @pulumi.getter(name="peerKey")
    def peer_key(self) -> Optional[pulumi.Input[str]]:
        """
        peer identifier
        """
        return pulumi.get(self, "peer_key")

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

    @property
    @pulumi.getter
    def role(self) -> Optional[pulumi.Input[str]]:
        """
        Peer role
        """
        return pulumi.get(self, "role")

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

    @property
    @pulumi.getter
    def state(self) -> Optional[pulumi.Input[str]]:
        """
        The current state of the Platform Instance.
        """
        return pulumi.get(self, "state")

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


@pulumi.input_type
class BlockchainPlatformComponentDetailPeerOcpuAllocationParamArgs:
    def __init__(__self__, *,
                 ocpu_allocation_number: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[float] ocpu_allocation_number: Number of OCPU allocation
        """
        if ocpu_allocation_number is not None:
            pulumi.set(__self__, "ocpu_allocation_number", ocpu_allocation_number)

    @property
    @pulumi.getter(name="ocpuAllocationNumber")
    def ocpu_allocation_number(self) -> Optional[pulumi.Input[float]]:
        """
        Number of OCPU allocation
        """
        return pulumi.get(self, "ocpu_allocation_number")

    @ocpu_allocation_number.setter
    def ocpu_allocation_number(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "ocpu_allocation_number", value)


@pulumi.input_type
class BlockchainPlatformHostOcpuUtilizationInfoArgs:
    def __init__(__self__, *,
                 host: Optional[pulumi.Input[str]] = None,
                 ocpu_capacity_number: Optional[pulumi.Input[float]] = None,
                 ocpu_utilization_number: Optional[pulumi.Input[float]] = None):
        """
        :param pulumi.Input[str] host: Host name of VM
        :param pulumi.Input[float] ocpu_capacity_number: Number of total OCPU capacity on the host
        :param pulumi.Input[float] ocpu_utilization_number: Number of OCPU utilized
        """
        if host is not None:
            pulumi.set(__self__, "host", host)
        if ocpu_capacity_number is not None:
            pulumi.set(__self__, "ocpu_capacity_number", ocpu_capacity_number)
        if ocpu_utilization_number is not None:
            pulumi.set(__self__, "ocpu_utilization_number", ocpu_utilization_number)

    @property
    @pulumi.getter
    def host(self) -> Optional[pulumi.Input[str]]:
        """
        Host name of VM
        """
        return pulumi.get(self, "host")

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

    @property
    @pulumi.getter(name="ocpuCapacityNumber")
    def ocpu_capacity_number(self) -> Optional[pulumi.Input[float]]:
        """
        Number of total OCPU capacity on the host
        """
        return pulumi.get(self, "ocpu_capacity_number")

    @ocpu_capacity_number.setter
    def ocpu_capacity_number(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "ocpu_capacity_number", value)

    @property
    @pulumi.getter(name="ocpuUtilizationNumber")
    def ocpu_utilization_number(self) -> Optional[pulumi.Input[float]]:
        """
        Number of OCPU utilized
        """
        return pulumi.get(self, "ocpu_utilization_number")

    @ocpu_utilization_number.setter
    def ocpu_utilization_number(self, value: Optional[pulumi.Input[float]]):
        pulumi.set(self, "ocpu_utilization_number", value)


@pulumi.input_type
class BlockchainPlatformReplicasArgs:
    def __init__(__self__, *,
                 ca_count: Optional[pulumi.Input[int]] = None,
                 console_count: Optional[pulumi.Input[int]] = None,
                 proxy_count: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[int] ca_count: Number of CA replicas
        :param pulumi.Input[int] console_count: Number of console replicas
        :param pulumi.Input[int] proxy_count: Number of REST proxy replicas
        """
        if ca_count is not None:
            pulumi.set(__self__, "ca_count", ca_count)
        if console_count is not None:
            pulumi.set(__self__, "console_count", console_count)
        if proxy_count is not None:
            pulumi.set(__self__, "proxy_count", proxy_count)

    @property
    @pulumi.getter(name="caCount")
    def ca_count(self) -> Optional[pulumi.Input[int]]:
        """
        Number of CA replicas
        """
        return pulumi.get(self, "ca_count")

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

    @property
    @pulumi.getter(name="consoleCount")
    def console_count(self) -> Optional[pulumi.Input[int]]:
        """
        Number of console replicas
        """
        return pulumi.get(self, "console_count")

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

    @property
    @pulumi.getter(name="proxyCount")
    def proxy_count(self) -> Optional[pulumi.Input[int]]:
        """
        Number of REST proxy replicas
        """
        return pulumi.get(self, "proxy_count")

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


@pulumi.input_type
class OsnOcpuAllocationParamArgs:
    def __init__(__self__, *,
                 ocpu_allocation_number: pulumi.Input[float]):
        """
        :param pulumi.Input[float] ocpu_allocation_number: (Updatable) Number of OCPU allocation
               
               
               ** IMPORTANT **
               Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        pulumi.set(__self__, "ocpu_allocation_number", ocpu_allocation_number)

    @property
    @pulumi.getter(name="ocpuAllocationNumber")
    def ocpu_allocation_number(self) -> pulumi.Input[float]:
        """
        (Updatable) Number of OCPU allocation


        ** IMPORTANT **
        Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
        """
        return pulumi.get(self, "ocpu_allocation_number")

    @ocpu_allocation_number.setter
    def ocpu_allocation_number(self, value: pulumi.Input[float]):
        pulumi.set(self, "ocpu_allocation_number", value)


@pulumi.input_type
class PeerOcpuAllocationParamArgs:
    def __init__(__self__, *,
                 ocpu_allocation_number: pulumi.Input[float]):
        """
        :param pulumi.Input[float] ocpu_allocation_number: (Updatable) Number of OCPU allocation
        """
        pulumi.set(__self__, "ocpu_allocation_number", ocpu_allocation_number)

    @property
    @pulumi.getter(name="ocpuAllocationNumber")
    def ocpu_allocation_number(self) -> pulumi.Input[float]:
        """
        (Updatable) Number of OCPU allocation
        """
        return pulumi.get(self, "ocpu_allocation_number")

    @ocpu_allocation_number.setter
    def ocpu_allocation_number(self, value: pulumi.Input[float]):
        pulumi.set(self, "ocpu_allocation_number", value)


@pulumi.input_type
class GetBlockchainPlatformPatchesFilterArgs:
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

    @values.setter
    def values(self, value: Sequence[str]):
        pulumi.set(self, "values", value)

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

    @regex.setter
    def regex(self, value: Optional[bool]):
        pulumi.set(self, "regex", value)


@pulumi.input_type
class GetBlockchainPlatformsFilterArgs:
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

    @values.setter
    def values(self, value: Sequence[str]):
        pulumi.set(self, "values", value)

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

    @regex.setter
    def regex(self, value: Optional[bool]):
        pulumi.set(self, "regex", value)


@pulumi.input_type
class GetOsnsFilterArgs:
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

    @values.setter
    def values(self, value: Sequence[str]):
        pulumi.set(self, "values", value)

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

    @regex.setter
    def regex(self, value: Optional[bool]):
        pulumi.set(self, "regex", value)


@pulumi.input_type
class GetPeersFilterArgs:
    def __init__(__self__, *,
                 name: str,
                 values: Sequence[str],
                 regex: Optional[bool] = None):
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "values", values)
        if regex is not None:
            pulumi.set(__self__, "regex", regex)

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

    @name.setter
    def name(self, value: str):
        pulumi.set(self, "name", value)

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

    @values.setter
    def values(self, value: Sequence[str]):
        pulumi.set(self, "values", value)

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

    @regex.setter
    def regex(self, value: Optional[bool]):
        pulumi.set(self, "regex", value)


