text: # coding=utf-8
  # *** WARNING: this file was generated by the Kulado Terraform Bridge (tfgen) Tool. ***
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
  
  import json
  import warnings
  import kulado
  import kulado.runtime
  from .. import utilities, tables
  
  class GetPublicIPsResult:
      """
      A collection of values returned by getPublicIPs.
      """
      def __init__(__self__, allocation_type=None, attached=None, name_prefix=None, public_ips=None, resource_group_name=None, id=None):
          if allocation_type and not isinstance(allocation_type, str):
              raise TypeError("Expected argument 'allocation_type' to be a str")
          __self__.allocation_type = allocation_type
          if attached and not isinstance(attached, bool):
              raise TypeError("Expected argument 'attached' to be a bool")
          __self__.attached = attached
          if name_prefix and not isinstance(name_prefix, str):
              raise TypeError("Expected argument 'name_prefix' to be a str")
          __self__.name_prefix = name_prefix
          if public_ips and not isinstance(public_ips, list):
              raise TypeError("Expected argument 'public_ips' to be a list")
          __self__.public_ips = public_ips
          """
          A List of `public_ips` blocks as defined below filtered by the criteria above.
          """
          if resource_group_name and not isinstance(resource_group_name, str):
              raise TypeError("Expected argument 'resource_group_name' to be a str")
          __self__.resource_group_name = resource_group_name
          if id and not isinstance(id, str):
              raise TypeError("Expected argument 'id' to be a str")
          __self__.id = id
          """
          id is the provider-assigned unique ID for this managed resource.
          """
  
  async def get_public_i_ps(allocation_type=None,attached=None,name_prefix=None,resource_group_name=None,opts=None):
      """
      Use this data source to access information about a set of existing Public IP Addresses.
  
      > This content is derived from https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/website/docs/d/public_ips.html.markdown.
      """
      __args__ = dict()
  
      __args__['allocationType'] = allocation_type
      __args__['attached'] = attached
      __args__['namePrefix'] = name_prefix
      __args__['resourceGroupName'] = resource_group_name
      __ret__ = await kulado.runtime.invoke('azure:network/getPublicIPs:getPublicIPs', __args__, opts=opts)
  
      return GetPublicIPsResult(
          allocation_type=__ret__.get('allocationType'),
          attached=__ret__.get('attached'),
          name_prefix=__ret__.get('namePrefix'),
          public_ips=__ret__.get('publicIps'),
          resource_group_name=__ret__.get('resourceGroupName'),
          id=__ret__.get('id'))
  