@cdktf/provider-google
Version: 
Prebuilt google Provider for Terraform CDK (cdktf)
1,120 lines (1,119 loc) • 313 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MonitoringUptimeCheckConfig = exports.MonitoringUptimeCheckConfigTimeoutsOutputReference = exports.monitoringUptimeCheckConfigTimeoutsToHclTerraform = exports.monitoringUptimeCheckConfigTimeoutsToTerraform = exports.MonitoringUptimeCheckConfigTcpCheckOutputReference = exports.monitoringUptimeCheckConfigTcpCheckToHclTerraform = exports.monitoringUptimeCheckConfigTcpCheckToTerraform = exports.MonitoringUptimeCheckConfigTcpCheckPingConfigOutputReference = exports.monitoringUptimeCheckConfigTcpCheckPingConfigToHclTerraform = exports.monitoringUptimeCheckConfigTcpCheckPingConfigToTerraform = exports.MonitoringUptimeCheckConfigSyntheticMonitorOutputReference = exports.monitoringUptimeCheckConfigSyntheticMonitorToHclTerraform = exports.monitoringUptimeCheckConfigSyntheticMonitorToTerraform = exports.MonitoringUptimeCheckConfigSyntheticMonitorCloudFunctionV2OutputReference = exports.monitoringUptimeCheckConfigSyntheticMonitorCloudFunctionV2ToHclTerraform = exports.monitoringUptimeCheckConfigSyntheticMonitorCloudFunctionV2ToTerraform = exports.MonitoringUptimeCheckConfigResourceGroupOutputReference = exports.monitoringUptimeCheckConfigResourceGroupToHclTerraform = exports.monitoringUptimeCheckConfigResourceGroupToTerraform = exports.MonitoringUptimeCheckConfigMonitoredResourceOutputReference = exports.monitoringUptimeCheckConfigMonitoredResourceToHclTerraform = exports.monitoringUptimeCheckConfigMonitoredResourceToTerraform = exports.MonitoringUptimeCheckConfigHttpCheckOutputReference = exports.monitoringUptimeCheckConfigHttpCheckToHclTerraform = exports.monitoringUptimeCheckConfigHttpCheckToTerraform = exports.MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference = exports.monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToHclTerraform = exports.monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToTerraform = exports.MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference = exports.monitoringUptimeCheckConfigHttpCheckPingConfigToHclTerraform = exports.monitoringUptimeCheckConfigHttpCheckPingConfigToTerraform = exports.MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference = exports.monitoringUptimeCheckConfigHttpCheckAuthInfoToHclTerraform = exports.monitoringUptimeCheckConfigHttpCheckAuthInfoToTerraform = exports.MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList = exports.MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference = exports.monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToHclTerraform = exports.monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToTerraform = exports.MonitoringUptimeCheckConfigContentMatchersList = exports.MonitoringUptimeCheckConfigContentMatchersOutputReference = exports.monitoringUptimeCheckConfigContentMatchersToHclTerraform = exports.monitoringUptimeCheckConfigContentMatchersToTerraform = exports.MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference = exports.monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToHclTerraform = exports.monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToTerraform = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        json_matcher: cdktf.stringToTerraform(struct.jsonMatcher),
        json_path: cdktf.stringToTerraform(struct.jsonPath),
    };
}
exports.monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToTerraform = monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToTerraform;
function monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        json_matcher: {
            value: cdktf.stringToHclTerraform(struct.jsonMatcher),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        json_path: {
            value: cdktf.stringToHclTerraform(struct.jsonPath),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToHclTerraform = monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToHclTerraform;
class MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource, terraformAttribute) {
        super(terraformResource, terraformAttribute, false, 0);
        this.isEmptyObject = false;
    }
    get internalValue() {
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._jsonMatcher !== undefined) {
            hasAnyValues = true;
            internalValueResult.jsonMatcher = this._jsonMatcher;
        }
        if (this._jsonPath !== undefined) {
            hasAnyValues = true;
            internalValueResult.jsonPath = this._jsonPath;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this._jsonMatcher = undefined;
            this._jsonPath = undefined;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this._jsonMatcher = value.jsonMatcher;
            this._jsonPath = value.jsonPath;
        }
    }
    get jsonMatcher() {
        return this.getStringAttribute('json_matcher');
    }
    set jsonMatcher(value) {
        this._jsonMatcher = value;
    }
    resetJsonMatcher() {
        this._jsonMatcher = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get jsonMatcherInput() {
        return this._jsonMatcher;
    }
    get jsonPath() {
        return this.getStringAttribute('json_path');
    }
    set jsonPath(value) {
        this._jsonPath = value;
    }
    // Temporarily expose input value. Use with caution.
    get jsonPathInput() {
        return this._jsonPath;
    }
}
exports.MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference = MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference;
_a = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference[_a] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference", version: "14.12.0" };
function monitoringUptimeCheckConfigContentMatchersToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        content: cdktf.stringToTerraform(struct.content),
        matcher: cdktf.stringToTerraform(struct.matcher),
        json_path_matcher: monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToTerraform(struct.jsonPathMatcher),
    };
}
exports.monitoringUptimeCheckConfigContentMatchersToTerraform = monitoringUptimeCheckConfigContentMatchersToTerraform;
function monitoringUptimeCheckConfigContentMatchersToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        content: {
            value: cdktf.stringToHclTerraform(struct.content),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        matcher: {
            value: cdktf.stringToHclTerraform(struct.matcher),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        json_path_matcher: {
            value: monitoringUptimeCheckConfigContentMatchersJsonPathMatcherToHclTerraform(struct.jsonPathMatcher),
            isBlock: true,
            type: "list",
            storageClassType: "MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherList",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigContentMatchersToHclTerraform = monitoringUptimeCheckConfigContentMatchersToHclTerraform;
class MonitoringUptimeCheckConfigContentMatchersOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
        super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
        this.isEmptyObject = false;
        // json_path_matcher - computed: false, optional: true, required: false
        this._jsonPathMatcher = new MonitoringUptimeCheckConfigContentMatchersJsonPathMatcherOutputReference(this, "json_path_matcher");
    }
    get internalValue() {
        if (this.resolvableValue) {
            return this.resolvableValue;
        }
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._content !== undefined) {
            hasAnyValues = true;
            internalValueResult.content = this._content;
        }
        if (this._matcher !== undefined) {
            hasAnyValues = true;
            internalValueResult.matcher = this._matcher;
        }
        if (this._jsonPathMatcher?.internalValue !== undefined) {
            hasAnyValues = true;
            internalValueResult.jsonPathMatcher = this._jsonPathMatcher?.internalValue;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this.resolvableValue = undefined;
            this._content = undefined;
            this._matcher = undefined;
            this._jsonPathMatcher.internalValue = undefined;
        }
        else if (cdktf.Tokenization.isResolvable(value)) {
            this.isEmptyObject = false;
            this.resolvableValue = value;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this.resolvableValue = undefined;
            this._content = value.content;
            this._matcher = value.matcher;
            this._jsonPathMatcher.internalValue = value.jsonPathMatcher;
        }
    }
    get content() {
        return this.getStringAttribute('content');
    }
    set content(value) {
        this._content = value;
    }
    // Temporarily expose input value. Use with caution.
    get contentInput() {
        return this._content;
    }
    get matcher() {
        return this.getStringAttribute('matcher');
    }
    set matcher(value) {
        this._matcher = value;
    }
    resetMatcher() {
        this._matcher = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get matcherInput() {
        return this._matcher;
    }
    get jsonPathMatcher() {
        return this._jsonPathMatcher;
    }
    putJsonPathMatcher(value) {
        this._jsonPathMatcher.internalValue = value;
    }
    resetJsonPathMatcher() {
        this._jsonPathMatcher.internalValue = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get jsonPathMatcherInput() {
        return this._jsonPathMatcher.internalValue;
    }
}
exports.MonitoringUptimeCheckConfigContentMatchersOutputReference = MonitoringUptimeCheckConfigContentMatchersOutputReference;
_b = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigContentMatchersOutputReference[_b] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigContentMatchersOutputReference", version: "14.12.0" };
class MonitoringUptimeCheckConfigContentMatchersList extends cdktf.ComplexList {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource, terraformAttribute, wrapsSet) {
        super(terraformResource, terraformAttribute, wrapsSet);
        this.terraformResource = terraformResource;
        this.terraformAttribute = terraformAttribute;
        this.wrapsSet = wrapsSet;
    }
    /**
    * @param index the index of the item to return
    */
    get(index) {
        return new MonitoringUptimeCheckConfigContentMatchersOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
    }
}
exports.MonitoringUptimeCheckConfigContentMatchersList = MonitoringUptimeCheckConfigContentMatchersList;
_c = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigContentMatchersList[_c] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigContentMatchersList", version: "14.12.0" };
function monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        status_class: cdktf.stringToTerraform(struct.statusClass),
        status_value: cdktf.numberToTerraform(struct.statusValue),
    };
}
exports.monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToTerraform = monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToTerraform;
function monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        status_class: {
            value: cdktf.stringToHclTerraform(struct.statusClass),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        status_value: {
            value: cdktf.numberToHclTerraform(struct.statusValue),
            isBlock: false,
            type: "simple",
            storageClassType: "number",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToHclTerraform = monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToHclTerraform;
class MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) {
        super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex);
        this.isEmptyObject = false;
    }
    get internalValue() {
        if (this.resolvableValue) {
            return this.resolvableValue;
        }
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._statusClass !== undefined) {
            hasAnyValues = true;
            internalValueResult.statusClass = this._statusClass;
        }
        if (this._statusValue !== undefined) {
            hasAnyValues = true;
            internalValueResult.statusValue = this._statusValue;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this.resolvableValue = undefined;
            this._statusClass = undefined;
            this._statusValue = undefined;
        }
        else if (cdktf.Tokenization.isResolvable(value)) {
            this.isEmptyObject = false;
            this.resolvableValue = value;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this.resolvableValue = undefined;
            this._statusClass = value.statusClass;
            this._statusValue = value.statusValue;
        }
    }
    get statusClass() {
        return this.getStringAttribute('status_class');
    }
    set statusClass(value) {
        this._statusClass = value;
    }
    resetStatusClass() {
        this._statusClass = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get statusClassInput() {
        return this._statusClass;
    }
    get statusValue() {
        return this.getNumberAttribute('status_value');
    }
    set statusValue(value) {
        this._statusValue = value;
    }
    resetStatusValue() {
        this._statusValue = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get statusValueInput() {
        return this._statusValue;
    }
}
exports.MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference = MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference;
_d = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference[_d] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference", version: "14.12.0" };
class MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList extends cdktf.ComplexList {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource, terraformAttribute, wrapsSet) {
        super(terraformResource, terraformAttribute, wrapsSet);
        this.terraformResource = terraformResource;
        this.terraformAttribute = terraformAttribute;
        this.wrapsSet = wrapsSet;
    }
    /**
    * @param index the index of the item to return
    */
    get(index) {
        return new MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
    }
}
exports.MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList = MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList;
_e = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList[_e] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList", version: "14.12.0" };
function monitoringUptimeCheckConfigHttpCheckAuthInfoToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        password: cdktf.stringToTerraform(struct.password),
        username: cdktf.stringToTerraform(struct.username),
    };
}
exports.monitoringUptimeCheckConfigHttpCheckAuthInfoToTerraform = monitoringUptimeCheckConfigHttpCheckAuthInfoToTerraform;
function monitoringUptimeCheckConfigHttpCheckAuthInfoToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        password: {
            value: cdktf.stringToHclTerraform(struct.password),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        username: {
            value: cdktf.stringToHclTerraform(struct.username),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigHttpCheckAuthInfoToHclTerraform = monitoringUptimeCheckConfigHttpCheckAuthInfoToHclTerraform;
class MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource, terraformAttribute) {
        super(terraformResource, terraformAttribute, false, 0);
        this.isEmptyObject = false;
    }
    get internalValue() {
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._password !== undefined) {
            hasAnyValues = true;
            internalValueResult.password = this._password;
        }
        if (this._username !== undefined) {
            hasAnyValues = true;
            internalValueResult.username = this._username;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this._password = undefined;
            this._username = undefined;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this._password = value.password;
            this._username = value.username;
        }
    }
    get password() {
        return this.getStringAttribute('password');
    }
    set password(value) {
        this._password = value;
    }
    // Temporarily expose input value. Use with caution.
    get passwordInput() {
        return this._password;
    }
    get username() {
        return this.getStringAttribute('username');
    }
    set username(value) {
        this._username = value;
    }
    // Temporarily expose input value. Use with caution.
    get usernameInput() {
        return this._username;
    }
}
exports.MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference = MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference;
_f = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference[_f] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference", version: "14.12.0" };
function monitoringUptimeCheckConfigHttpCheckPingConfigToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        pings_count: cdktf.numberToTerraform(struct.pingsCount),
    };
}
exports.monitoringUptimeCheckConfigHttpCheckPingConfigToTerraform = monitoringUptimeCheckConfigHttpCheckPingConfigToTerraform;
function monitoringUptimeCheckConfigHttpCheckPingConfigToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        pings_count: {
            value: cdktf.numberToHclTerraform(struct.pingsCount),
            isBlock: false,
            type: "simple",
            storageClassType: "number",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigHttpCheckPingConfigToHclTerraform = monitoringUptimeCheckConfigHttpCheckPingConfigToHclTerraform;
class MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource, terraformAttribute) {
        super(terraformResource, terraformAttribute, false, 0);
        this.isEmptyObject = false;
    }
    get internalValue() {
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._pingsCount !== undefined) {
            hasAnyValues = true;
            internalValueResult.pingsCount = this._pingsCount;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this._pingsCount = undefined;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this._pingsCount = value.pingsCount;
        }
    }
    get pingsCount() {
        return this.getNumberAttribute('pings_count');
    }
    set pingsCount(value) {
        this._pingsCount = value;
    }
    // Temporarily expose input value. Use with caution.
    get pingsCountInput() {
        return this._pingsCount;
    }
}
exports.MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference = MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference;
_g = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference[_g] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference", version: "14.12.0" };
function monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        type: cdktf.stringToTerraform(struct.type),
    };
}
exports.monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToTerraform = monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToTerraform;
function monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        type: {
            value: cdktf.stringToHclTerraform(struct.type),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToHclTerraform = monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToHclTerraform;
class MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource, terraformAttribute) {
        super(terraformResource, terraformAttribute, false, 0);
        this.isEmptyObject = false;
    }
    get internalValue() {
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._type !== undefined) {
            hasAnyValues = true;
            internalValueResult.type = this._type;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this._type = undefined;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this._type = value.type;
        }
    }
    get type() {
        return this.getStringAttribute('type');
    }
    set type(value) {
        this._type = value;
    }
    resetType() {
        this._type = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get typeInput() {
        return this._type;
    }
}
exports.MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference = MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference;
_h = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference[_h] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference", version: "14.12.0" };
function monitoringUptimeCheckConfigHttpCheckToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        body: cdktf.stringToTerraform(struct.body),
        content_type: cdktf.stringToTerraform(struct.contentType),
        custom_content_type: cdktf.stringToTerraform(struct.customContentType),
        headers: cdktf.hashMapper(cdktf.stringToTerraform)(struct.headers),
        mask_headers: cdktf.booleanToTerraform(struct.maskHeaders),
        path: cdktf.stringToTerraform(struct.path),
        port: cdktf.numberToTerraform(struct.port),
        request_method: cdktf.stringToTerraform(struct.requestMethod),
        use_ssl: cdktf.booleanToTerraform(struct.useSsl),
        validate_ssl: cdktf.booleanToTerraform(struct.validateSsl),
        accepted_response_status_codes: cdktf.listMapper(monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToTerraform, true)(struct.acceptedResponseStatusCodes),
        auth_info: monitoringUptimeCheckConfigHttpCheckAuthInfoToTerraform(struct.authInfo),
        ping_config: monitoringUptimeCheckConfigHttpCheckPingConfigToTerraform(struct.pingConfig),
        service_agent_authentication: monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToTerraform(struct.serviceAgentAuthentication),
    };
}
exports.monitoringUptimeCheckConfigHttpCheckToTerraform = monitoringUptimeCheckConfigHttpCheckToTerraform;
function monitoringUptimeCheckConfigHttpCheckToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        body: {
            value: cdktf.stringToHclTerraform(struct.body),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        content_type: {
            value: cdktf.stringToHclTerraform(struct.contentType),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        custom_content_type: {
            value: cdktf.stringToHclTerraform(struct.customContentType),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        headers: {
            value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.headers),
            isBlock: false,
            type: "map",
            storageClassType: "stringMap",
        },
        mask_headers: {
            value: cdktf.booleanToHclTerraform(struct.maskHeaders),
            isBlock: false,
            type: "simple",
            storageClassType: "boolean",
        },
        path: {
            value: cdktf.stringToHclTerraform(struct.path),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        port: {
            value: cdktf.numberToHclTerraform(struct.port),
            isBlock: false,
            type: "simple",
            storageClassType: "number",
        },
        request_method: {
            value: cdktf.stringToHclTerraform(struct.requestMethod),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
        use_ssl: {
            value: cdktf.booleanToHclTerraform(struct.useSsl),
            isBlock: false,
            type: "simple",
            storageClassType: "boolean",
        },
        validate_ssl: {
            value: cdktf.booleanToHclTerraform(struct.validateSsl),
            isBlock: false,
            type: "simple",
            storageClassType: "boolean",
        },
        accepted_response_status_codes: {
            value: cdktf.listMapperHcl(monitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesToHclTerraform, true)(struct.acceptedResponseStatusCodes),
            isBlock: true,
            type: "list",
            storageClassType: "MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList",
        },
        auth_info: {
            value: monitoringUptimeCheckConfigHttpCheckAuthInfoToHclTerraform(struct.authInfo),
            isBlock: true,
            type: "list",
            storageClassType: "MonitoringUptimeCheckConfigHttpCheckAuthInfoList",
        },
        ping_config: {
            value: monitoringUptimeCheckConfigHttpCheckPingConfigToHclTerraform(struct.pingConfig),
            isBlock: true,
            type: "list",
            storageClassType: "MonitoringUptimeCheckConfigHttpCheckPingConfigList",
        },
        service_agent_authentication: {
            value: monitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationToHclTerraform(struct.serviceAgentAuthentication),
            isBlock: true,
            type: "list",
            storageClassType: "MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationList",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigHttpCheckToHclTerraform = monitoringUptimeCheckConfigHttpCheckToHclTerraform;
class MonitoringUptimeCheckConfigHttpCheckOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource, terraformAttribute) {
        super(terraformResource, terraformAttribute, false, 0);
        this.isEmptyObject = false;
        // accepted_response_status_codes - computed: false, optional: true, required: false
        this._acceptedResponseStatusCodes = new MonitoringUptimeCheckConfigHttpCheckAcceptedResponseStatusCodesList(this, "accepted_response_status_codes", false);
        // auth_info - computed: false, optional: true, required: false
        this._authInfo = new MonitoringUptimeCheckConfigHttpCheckAuthInfoOutputReference(this, "auth_info");
        // ping_config - computed: false, optional: true, required: false
        this._pingConfig = new MonitoringUptimeCheckConfigHttpCheckPingConfigOutputReference(this, "ping_config");
        // service_agent_authentication - computed: false, optional: true, required: false
        this._serviceAgentAuthentication = new MonitoringUptimeCheckConfigHttpCheckServiceAgentAuthenticationOutputReference(this, "service_agent_authentication");
    }
    get internalValue() {
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._body !== undefined) {
            hasAnyValues = true;
            internalValueResult.body = this._body;
        }
        if (this._contentType !== undefined) {
            hasAnyValues = true;
            internalValueResult.contentType = this._contentType;
        }
        if (this._customContentType !== undefined) {
            hasAnyValues = true;
            internalValueResult.customContentType = this._customContentType;
        }
        if (this._headers !== undefined) {
            hasAnyValues = true;
            internalValueResult.headers = this._headers;
        }
        if (this._maskHeaders !== undefined) {
            hasAnyValues = true;
            internalValueResult.maskHeaders = this._maskHeaders;
        }
        if (this._path !== undefined) {
            hasAnyValues = true;
            internalValueResult.path = this._path;
        }
        if (this._port !== undefined) {
            hasAnyValues = true;
            internalValueResult.port = this._port;
        }
        if (this._requestMethod !== undefined) {
            hasAnyValues = true;
            internalValueResult.requestMethod = this._requestMethod;
        }
        if (this._useSsl !== undefined) {
            hasAnyValues = true;
            internalValueResult.useSsl = this._useSsl;
        }
        if (this._validateSsl !== undefined) {
            hasAnyValues = true;
            internalValueResult.validateSsl = this._validateSsl;
        }
        if (this._acceptedResponseStatusCodes?.internalValue !== undefined) {
            hasAnyValues = true;
            internalValueResult.acceptedResponseStatusCodes = this._acceptedResponseStatusCodes?.internalValue;
        }
        if (this._authInfo?.internalValue !== undefined) {
            hasAnyValues = true;
            internalValueResult.authInfo = this._authInfo?.internalValue;
        }
        if (this._pingConfig?.internalValue !== undefined) {
            hasAnyValues = true;
            internalValueResult.pingConfig = this._pingConfig?.internalValue;
        }
        if (this._serviceAgentAuthentication?.internalValue !== undefined) {
            hasAnyValues = true;
            internalValueResult.serviceAgentAuthentication = this._serviceAgentAuthentication?.internalValue;
        }
        return hasAnyValues ? internalValueResult : undefined;
    }
    set internalValue(value) {
        if (value === undefined) {
            this.isEmptyObject = false;
            this._body = undefined;
            this._contentType = undefined;
            this._customContentType = undefined;
            this._headers = undefined;
            this._maskHeaders = undefined;
            this._path = undefined;
            this._port = undefined;
            this._requestMethod = undefined;
            this._useSsl = undefined;
            this._validateSsl = undefined;
            this._acceptedResponseStatusCodes.internalValue = undefined;
            this._authInfo.internalValue = undefined;
            this._pingConfig.internalValue = undefined;
            this._serviceAgentAuthentication.internalValue = undefined;
        }
        else {
            this.isEmptyObject = Object.keys(value).length === 0;
            this._body = value.body;
            this._contentType = value.contentType;
            this._customContentType = value.customContentType;
            this._headers = value.headers;
            this._maskHeaders = value.maskHeaders;
            this._path = value.path;
            this._port = value.port;
            this._requestMethod = value.requestMethod;
            this._useSsl = value.useSsl;
            this._validateSsl = value.validateSsl;
            this._acceptedResponseStatusCodes.internalValue = value.acceptedResponseStatusCodes;
            this._authInfo.internalValue = value.authInfo;
            this._pingConfig.internalValue = value.pingConfig;
            this._serviceAgentAuthentication.internalValue = value.serviceAgentAuthentication;
        }
    }
    get body() {
        return this.getStringAttribute('body');
    }
    set body(value) {
        this._body = value;
    }
    resetBody() {
        this._body = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get bodyInput() {
        return this._body;
    }
    get contentType() {
        return this.getStringAttribute('content_type');
    }
    set contentType(value) {
        this._contentType = value;
    }
    resetContentType() {
        this._contentType = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get contentTypeInput() {
        return this._contentType;
    }
    get customContentType() {
        return this.getStringAttribute('custom_content_type');
    }
    set customContentType(value) {
        this._customContentType = value;
    }
    resetCustomContentType() {
        this._customContentType = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get customContentTypeInput() {
        return this._customContentType;
    }
    get headers() {
        return this.getStringMapAttribute('headers');
    }
    set headers(value) {
        this._headers = value;
    }
    resetHeaders() {
        this._headers = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get headersInput() {
        return this._headers;
    }
    get maskHeaders() {
        return this.getBooleanAttribute('mask_headers');
    }
    set maskHeaders(value) {
        this._maskHeaders = value;
    }
    resetMaskHeaders() {
        this._maskHeaders = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get maskHeadersInput() {
        return this._maskHeaders;
    }
    get path() {
        return this.getStringAttribute('path');
    }
    set path(value) {
        this._path = value;
    }
    resetPath() {
        this._path = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get pathInput() {
        return this._path;
    }
    get port() {
        return this.getNumberAttribute('port');
    }
    set port(value) {
        this._port = value;
    }
    resetPort() {
        this._port = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get portInput() {
        return this._port;
    }
    get requestMethod() {
        return this.getStringAttribute('request_method');
    }
    set requestMethod(value) {
        this._requestMethod = value;
    }
    resetRequestMethod() {
        this._requestMethod = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get requestMethodInput() {
        return this._requestMethod;
    }
    get useSsl() {
        return this.getBooleanAttribute('use_ssl');
    }
    set useSsl(value) {
        this._useSsl = value;
    }
    resetUseSsl() {
        this._useSsl = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get useSslInput() {
        return this._useSsl;
    }
    get validateSsl() {
        return this.getBooleanAttribute('validate_ssl');
    }
    set validateSsl(value) {
        this._validateSsl = value;
    }
    resetValidateSsl() {
        this._validateSsl = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get validateSslInput() {
        return this._validateSsl;
    }
    get acceptedResponseStatusCodes() {
        return this._acceptedResponseStatusCodes;
    }
    putAcceptedResponseStatusCodes(value) {
        this._acceptedResponseStatusCodes.internalValue = value;
    }
    resetAcceptedResponseStatusCodes() {
        this._acceptedResponseStatusCodes.internalValue = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get acceptedResponseStatusCodesInput() {
        return this._acceptedResponseStatusCodes.internalValue;
    }
    get authInfo() {
        return this._authInfo;
    }
    putAuthInfo(value) {
        this._authInfo.internalValue = value;
    }
    resetAuthInfo() {
        this._authInfo.internalValue = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get authInfoInput() {
        return this._authInfo.internalValue;
    }
    get pingConfig() {
        return this._pingConfig;
    }
    putPingConfig(value) {
        this._pingConfig.internalValue = value;
    }
    resetPingConfig() {
        this._pingConfig.internalValue = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get pingConfigInput() {
        return this._pingConfig.internalValue;
    }
    get serviceAgentAuthentication() {
        return this._serviceAgentAuthentication;
    }
    putServiceAgentAuthentication(value) {
        this._serviceAgentAuthentication.internalValue = value;
    }
    resetServiceAgentAuthentication() {
        this._serviceAgentAuthentication.internalValue = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get serviceAgentAuthenticationInput() {
        return this._serviceAgentAuthentication.internalValue;
    }
}
exports.MonitoringUptimeCheckConfigHttpCheckOutputReference = MonitoringUptimeCheckConfigHttpCheckOutputReference;
_j = JSII_RTTI_SYMBOL_1;
MonitoringUptimeCheckConfigHttpCheckOutputReference[_j] = { fqn: "@cdktf/provider-google.monitoringUptimeCheckConfig.MonitoringUptimeCheckConfigHttpCheckOutputReference", version: "14.12.0" };
function monitoringUptimeCheckConfigMonitoredResourceToTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    return {
        labels: cdktf.hashMapper(cdktf.stringToTerraform)(struct.labels),
        type: cdktf.stringToTerraform(struct.type),
    };
}
exports.monitoringUptimeCheckConfigMonitoredResourceToTerraform = monitoringUptimeCheckConfigMonitoredResourceToTerraform;
function monitoringUptimeCheckConfigMonitoredResourceToHclTerraform(struct) {
    if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
        return struct;
    }
    if (cdktf.isComplexElement(struct)) {
        throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
    }
    const attrs = {
        labels: {
            value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.labels),
            isBlock: false,
            type: "map",
            storageClassType: "stringMap",
        },
        type: {
            value: cdktf.stringToHclTerraform(struct.type),
            isBlock: false,
            type: "simple",
            storageClassType: "string",
        },
    };
    // remove undefined attributes
    return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.monitoringUptimeCheckConfigMonitoredResourceToHclTerraform = monitoringUptimeCheckConfigMonitoredResourceToHclTerraform;
class MonitoringUptimeCheckConfigMonitoredResourceOutputReference extends cdktf.ComplexObject {
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource, terraformAttribute) {
        super(terraformResource, terraformAttribute, false, 0);
        this.isEmptyObject = false;
    }
    get internalValue() {
        let hasAnyValues = this.isEmptyObject;
        const internalValueResult = {};
        if (this._labels !== undefined) {
            hasAnyValues = true;