# 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 json
import warnings
import pulumi
import pulumi.runtime
from typing import Union
from .. import utilities, tables

class GetDomainRecordsResult:
    """
    A collection of values returned by getDomainRecords.
    """
    def __init__(__self__, domain_name=None, host_record_regex=None, id=None, ids=None, is_locked=None, line=None, output_file=None, records=None, status=None, type=None, urls=None, value_regex=None):
        if domain_name and not isinstance(domain_name, str):
            raise TypeError("Expected argument 'domain_name' to be a str")
        __self__.domain_name = domain_name
        if host_record_regex and not isinstance(host_record_regex, str):
            raise TypeError("Expected argument 'host_record_regex' to be a str")
        __self__.host_record_regex = host_record_regex
        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.
        """
        if ids and not isinstance(ids, list):
            raise TypeError("Expected argument 'ids' to be a list")
        __self__.ids = ids
        if is_locked and not isinstance(is_locked, bool):
            raise TypeError("Expected argument 'is_locked' to be a bool")
        __self__.is_locked = is_locked
        if line and not isinstance(line, str):
            raise TypeError("Expected argument 'line' to be a str")
        __self__.line = line
        if output_file and not isinstance(output_file, str):
            raise TypeError("Expected argument 'output_file' to be a str")
        __self__.output_file = output_file
        if records and not isinstance(records, list):
            raise TypeError("Expected argument 'records' to be a list")
        __self__.records = records
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        __self__.status = status
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        __self__.type = type
        if urls and not isinstance(urls, list):
            raise TypeError("Expected argument 'urls' to be a list")
        __self__.urls = urls
        if value_regex and not isinstance(value_regex, str):
            raise TypeError("Expected argument 'value_regex' to be a str")
        __self__.value_regex = value_regex
class AwaitableGetDomainRecordsResult(GetDomainRecordsResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetDomainRecordsResult(
            domain_name=self.domain_name,
            host_record_regex=self.host_record_regex,
            id=self.id,
            ids=self.ids,
            is_locked=self.is_locked,
            line=self.line,
            output_file=self.output_file,
            records=self.records,
            status=self.status,
            type=self.type,
            urls=self.urls,
            value_regex=self.value_regex)

def get_domain_records(domain_name=None,host_record_regex=None,ids=None,is_locked=None,line=None,output_file=None,status=None,type=None,value_regex=None,opts=None):
    """
    Use this data source to access information about an existing resource.
    """
    __args__ = dict()


    __args__['domainName'] = domain_name
    __args__['hostRecordRegex'] = host_record_regex
    __args__['ids'] = ids
    __args__['isLocked'] = is_locked
    __args__['line'] = line
    __args__['outputFile'] = output_file
    __args__['status'] = status
    __args__['type'] = type
    __args__['valueRegex'] = value_regex
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = utilities.get_version()
    __ret__ = pulumi.runtime.invoke('alicloud:dns/getDomainRecords:getDomainRecords', __args__, opts=opts).value

    return AwaitableGetDomainRecordsResult(
        domain_name=__ret__.get('domainName'),
        host_record_regex=__ret__.get('hostRecordRegex'),
        id=__ret__.get('id'),
        ids=__ret__.get('ids'),
        is_locked=__ret__.get('isLocked'),
        line=__ret__.get('line'),
        output_file=__ret__.get('outputFile'),
        records=__ret__.get('records'),
        status=__ret__.get('status'),
        type=__ret__.get('type'),
        urls=__ret__.get('urls'),
        value_regex=__ret__.get('valueRegex'))
