// https://www.terraform.io/docs/providers/aws/d/service
// generated from terraform resource schema
import * as cdktf from 'cdktf';
/**
* Represents a {@link https://www.terraform.io/docs/providers/aws/d/service aws_service}
*/
export class DataAwsService extends cdktf.TerraformDataSource {
    // =================
    // STATIC PROPERTIES
    // =================
    static tfResourceType = "aws_service";
    // ===========
    // INITIALIZER
    // ===========
    /**
    * Create a new {@link https://www.terraform.io/docs/providers/aws/d/service aws_service} Data Source
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options DataAwsServiceConfig = {}
    */
    constructor(scope, id, config = {}) {
        super(scope, id, {
            terraformResourceType: 'aws_service',
            terraformGeneratorMetadata: {
                providerName: 'aws'
            },
            provider: config.provider,
            dependsOn: config.dependsOn,
            count: config.count,
            lifecycle: config.lifecycle
        });
        this._dnsName = config.dnsName;
        this._region = config.region;
        this._reverseDnsName = config.reverseDnsName;
        this._reverseDnsPrefix = config.reverseDnsPrefix;
        this._serviceId = config.serviceId;
    }
    // ==========
    // ATTRIBUTES
    // ==========
    // dns_name - computed: true, optional: true, required: false
    _dnsName;
    get dnsName() {
        return this.getStringAttribute('dns_name');
    }
    set dnsName(value) {
        this._dnsName = value;
    }
    resetDnsName() {
        this._dnsName = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get dnsNameInput() {
        return this._dnsName;
    }
    // id - computed: true, optional: true, required: false
    get id() {
        return this.getStringAttribute('id');
    }
    // partition - computed: true, optional: false, required: false
    get partition() {
        return this.getStringAttribute('partition');
    }
    // region - computed: true, optional: true, required: false
    _region;
    get region() {
        return this.getStringAttribute('region');
    }
    set region(value) {
        this._region = value;
    }
    resetRegion() {
        this._region = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get regionInput() {
        return this._region;
    }
    // reverse_dns_name - computed: true, optional: true, required: false
    _reverseDnsName;
    get reverseDnsName() {
        return this.getStringAttribute('reverse_dns_name');
    }
    set reverseDnsName(value) {
        this._reverseDnsName = value;
    }
    resetReverseDnsName() {
        this._reverseDnsName = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get reverseDnsNameInput() {
        return this._reverseDnsName;
    }
    // reverse_dns_prefix - computed: true, optional: true, required: false
    _reverseDnsPrefix;
    get reverseDnsPrefix() {
        return this.getStringAttribute('reverse_dns_prefix');
    }
    set reverseDnsPrefix(value) {
        this._reverseDnsPrefix = value;
    }
    resetReverseDnsPrefix() {
        this._reverseDnsPrefix = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get reverseDnsPrefixInput() {
        return this._reverseDnsPrefix;
    }
    // service_id - computed: true, optional: true, required: false
    _serviceId;
    get serviceId() {
        return this.getStringAttribute('service_id');
    }
    set serviceId(value) {
        this._serviceId = value;
    }
    resetServiceId() {
        this._serviceId = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get serviceIdInput() {
        return this._serviceId;
    }
    // supported - computed: true, optional: false, required: false
    get supported() {
        return this.getBooleanAttribute('supported');
    }
    // =========
    // SYNTHESIS
    // =========
    synthesizeAttributes() {
        return {
            dns_name: cdktf.stringToTerraform(this._dnsName),
            region: cdktf.stringToTerraform(this._region),
            reverse_dns_name: cdktf.stringToTerraform(this._reverseDnsName),
            reverse_dns_prefix: cdktf.stringToTerraform(this._reverseDnsPrefix),
            service_id: cdktf.stringToTerraform(this._serviceId),
        };
    }
}
//# sourceMappingURL=data-aws-service.js.map