text: # coding=utf-8
  # *** WARNING: this file was generated by the Pulumi SDK Generator. ***
  # *** 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__ = [
      'GetReplicationInstanceResult',
      'AwaitableGetReplicationInstanceResult',
      'get_replication_instance',
      'get_replication_instance_output',
  ]
  
  @pulumi.output_type
  class GetReplicationInstanceResult:
      def __init__(__self__, allocated_storage=None, allow_major_version_upgrade=None, auto_minor_version_upgrade=None, availability_zone=None, engine_version=None, id=None, multi_az=None, preferred_maintenance_window=None, replication_instance_class=None, replication_instance_identifier=None, replication_instance_private_ip_addresses=None, replication_instance_public_ip_addresses=None, vpc_security_group_ids=None):
          if allocated_storage and not isinstance(allocated_storage, int):
              raise TypeError("Expected argument 'allocated_storage' to be a int")
          pulumi.set(__self__, "allocated_storage", allocated_storage)
          if allow_major_version_upgrade and not isinstance(allow_major_version_upgrade, bool):
              raise TypeError("Expected argument 'allow_major_version_upgrade' to be a bool")
          pulumi.set(__self__, "allow_major_version_upgrade", allow_major_version_upgrade)
          if auto_minor_version_upgrade and not isinstance(auto_minor_version_upgrade, bool):
              raise TypeError("Expected argument 'auto_minor_version_upgrade' to be a bool")
          pulumi.set(__self__, "auto_minor_version_upgrade", auto_minor_version_upgrade)
          if availability_zone and not isinstance(availability_zone, str):
              raise TypeError("Expected argument 'availability_zone' to be a str")
          pulumi.set(__self__, "availability_zone", availability_zone)
          if engine_version and not isinstance(engine_version, str):
              raise TypeError("Expected argument 'engine_version' to be a str")
          pulumi.set(__self__, "engine_version", engine_version)
          if id and not isinstance(id, str):
              raise TypeError("Expected argument 'id' to be a str")
          pulumi.set(__self__, "id", id)
          if multi_az and not isinstance(multi_az, bool):
              raise TypeError("Expected argument 'multi_az' to be a bool")
          pulumi.set(__self__, "multi_az", multi_az)
          if preferred_maintenance_window and not isinstance(preferred_maintenance_window, str):
              raise TypeError("Expected argument 'preferred_maintenance_window' to be a str")
          pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window)
          if replication_instance_class and not isinstance(replication_instance_class, str):
              raise TypeError("Expected argument 'replication_instance_class' to be a str")
          pulumi.set(__self__, "replication_instance_class", replication_instance_class)
          if replication_instance_identifier and not isinstance(replication_instance_identifier, str):
              raise TypeError("Expected argument 'replication_instance_identifier' to be a str")
          pulumi.set(__self__, "replication_instance_identifier", replication_instance_identifier)
          if replication_instance_private_ip_addresses and not isinstance(replication_instance_private_ip_addresses, str):
              raise TypeError("Expected argument 'replication_instance_private_ip_addresses' to be a str")
          pulumi.set(__self__, "replication_instance_private_ip_addresses", replication_instance_private_ip_addresses)
          if replication_instance_public_ip_addresses and not isinstance(replication_instance_public_ip_addresses, str):
              raise TypeError("Expected argument 'replication_instance_public_ip_addresses' to be a str")
          pulumi.set(__self__, "replication_instance_public_ip_addresses", replication_instance_public_ip_addresses)
          if vpc_security_group_ids and not isinstance(vpc_security_group_ids, list):
              raise TypeError("Expected argument 'vpc_security_group_ids' to be a list")
          pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids)
  
      @property
      @pulumi.getter(name="allocatedStorage")
      def allocated_storage(self) -> Optional[int]:
          return pulumi.get(self, "allocated_storage")
  
      @property
      @pulumi.getter(name="allowMajorVersionUpgrade")
      def allow_major_version_upgrade(self) -> Optional[bool]:
          return pulumi.get(self, "allow_major_version_upgrade")
  
      @property
      @pulumi.getter(name="autoMinorVersionUpgrade")
      def auto_minor_version_upgrade(self) -> Optional[bool]:
          return pulumi.get(self, "auto_minor_version_upgrade")
  
      @property
      @pulumi.getter(name="availabilityZone")
      def availability_zone(self) -> Optional[str]:
          return pulumi.get(self, "availability_zone")
  
      @property
      @pulumi.getter(name="engineVersion")
      def engine_version(self) -> Optional[str]:
          return pulumi.get(self, "engine_version")
  
      @property
      @pulumi.getter
      def id(self) -> Optional[str]:
          return pulumi.get(self, "id")
  
      @property
      @pulumi.getter(name="multiAZ")
      def multi_az(self) -> Optional[bool]:
          return pulumi.get(self, "multi_az")
  
      @property
      @pulumi.getter(name="preferredMaintenanceWindow")
      def preferred_maintenance_window(self) -> Optional[str]:
          return pulumi.get(self, "preferred_maintenance_window")
  
      @property
      @pulumi.getter(name="replicationInstanceClass")
      def replication_instance_class(self) -> Optional[str]:
          return pulumi.get(self, "replication_instance_class")
  
      @property
      @pulumi.getter(name="replicationInstanceIdentifier")
      def replication_instance_identifier(self) -> Optional[str]:
          return pulumi.get(self, "replication_instance_identifier")
  
      @property
      @pulumi.getter(name="replicationInstancePrivateIpAddresses")
      def replication_instance_private_ip_addresses(self) -> Optional[str]:
          return pulumi.get(self, "replication_instance_private_ip_addresses")
  
      @property
      @pulumi.getter(name="replicationInstancePublicIpAddresses")
      def replication_instance_public_ip_addresses(self) -> Optional[str]:
          return pulumi.get(self, "replication_instance_public_ip_addresses")
  
      @property
      @pulumi.getter(name="vpcSecurityGroupIds")
      def vpc_security_group_ids(self) -> Optional[Sequence[str]]:
          return pulumi.get(self, "vpc_security_group_ids")
  
  
  class AwaitableGetReplicationInstanceResult(GetReplicationInstanceResult):
      # pylint: disable=using-constant-test
      def __await__(self):
          if False:
              yield self
          return GetReplicationInstanceResult(
              allocated_storage=self.allocated_storage,
              allow_major_version_upgrade=self.allow_major_version_upgrade,
              auto_minor_version_upgrade=self.auto_minor_version_upgrade,
              availability_zone=self.availability_zone,
              engine_version=self.engine_version,
              id=self.id,
              multi_az=self.multi_az,
              preferred_maintenance_window=self.preferred_maintenance_window,
              replication_instance_class=self.replication_instance_class,
              replication_instance_identifier=self.replication_instance_identifier,
              replication_instance_private_ip_addresses=self.replication_instance_private_ip_addresses,
              replication_instance_public_ip_addresses=self.replication_instance_public_ip_addresses,
              vpc_security_group_ids=self.vpc_security_group_ids)
  
  
  def get_replication_instance(id: Optional[str] = None,
                               opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetReplicationInstanceResult:
      """
      Resource Type definition for AWS::DMS::ReplicationInstance
      """
      __args__ = dict()
      __args__['id'] = id
      if opts is None:
          opts = pulumi.InvokeOptions()
      if opts.version is None:
          opts.version = _utilities.get_version()
      __ret__ = pulumi.runtime.invoke('aws-native:dms:getReplicationInstance', __args__, opts=opts, typ=GetReplicationInstanceResult).value
  
      return AwaitableGetReplicationInstanceResult(
          allocated_storage=__ret__.allocated_storage,
          allow_major_version_upgrade=__ret__.allow_major_version_upgrade,
          auto_minor_version_upgrade=__ret__.auto_minor_version_upgrade,
          availability_zone=__ret__.availability_zone,
          engine_version=__ret__.engine_version,
          id=__ret__.id,
          multi_az=__ret__.multi_az,
          preferred_maintenance_window=__ret__.preferred_maintenance_window,
          replication_instance_class=__ret__.replication_instance_class,
          replication_instance_identifier=__ret__.replication_instance_identifier,
          replication_instance_private_ip_addresses=__ret__.replication_instance_private_ip_addresses,
          replication_instance_public_ip_addresses=__ret__.replication_instance_public_ip_addresses,
          vpc_security_group_ids=__ret__.vpc_security_group_ids)
  
  
  @_utilities.lift_output_func(get_replication_instance)
  def get_replication_instance_output(id: Optional[pulumi.Input[str]] = None,
                                      opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetReplicationInstanceResult]:
      """
      Resource Type definition for AWS::DMS::ReplicationInstance
      """
      ...
  