UNPKG

@cdktf/provider-newrelic

Version:

Prebuilt newrelic Provider for Terraform CDK (cdktf)

944 lines • 141 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApplicationSettings = exports.ApplicationSettingsTransactionTracerList = exports.ApplicationSettingsTransactionTracerOutputReference = exports.ApplicationSettingsTransactionTracerSqlOutputReference = exports.ApplicationSettingsTransactionTracerExplainQueryPlansList = exports.ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference = exports.ApplicationSettingsErrorCollectorList = exports.ApplicationSettingsErrorCollectorOutputReference = void 0; exports.applicationSettingsErrorCollectorToTerraform = applicationSettingsErrorCollectorToTerraform; exports.applicationSettingsErrorCollectorToHclTerraform = applicationSettingsErrorCollectorToHclTerraform; exports.applicationSettingsTransactionTracerExplainQueryPlansToTerraform = applicationSettingsTransactionTracerExplainQueryPlansToTerraform; exports.applicationSettingsTransactionTracerExplainQueryPlansToHclTerraform = applicationSettingsTransactionTracerExplainQueryPlansToHclTerraform; exports.applicationSettingsTransactionTracerSqlToTerraform = applicationSettingsTransactionTracerSqlToTerraform; exports.applicationSettingsTransactionTracerSqlToHclTerraform = applicationSettingsTransactionTracerSqlToHclTerraform; exports.applicationSettingsTransactionTracerToTerraform = applicationSettingsTransactionTracerToTerraform; exports.applicationSettingsTransactionTracerToHclTerraform = applicationSettingsTransactionTracerToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function applicationSettingsErrorCollectorToTerraform(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 { expected_error_classes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.expectedErrorClasses), expected_error_codes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.expectedErrorCodes), ignored_error_classes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.ignoredErrorClasses), ignored_error_codes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.ignoredErrorCodes), }; } function applicationSettingsErrorCollectorToHclTerraform(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 = { expected_error_classes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.expectedErrorClasses), isBlock: false, type: "list", storageClassType: "stringList", }, expected_error_codes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.expectedErrorCodes), isBlock: false, type: "list", storageClassType: "stringList", }, ignored_error_classes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.ignoredErrorClasses), isBlock: false, type: "list", storageClassType: "stringList", }, ignored_error_codes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.ignoredErrorCodes), isBlock: false, type: "list", storageClassType: "stringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ApplicationSettingsErrorCollectorOutputReference 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._expectedErrorClasses !== undefined) { hasAnyValues = true; internalValueResult.expectedErrorClasses = this._expectedErrorClasses; } if (this._expectedErrorCodes !== undefined) { hasAnyValues = true; internalValueResult.expectedErrorCodes = this._expectedErrorCodes; } if (this._ignoredErrorClasses !== undefined) { hasAnyValues = true; internalValueResult.ignoredErrorClasses = this._ignoredErrorClasses; } if (this._ignoredErrorCodes !== undefined) { hasAnyValues = true; internalValueResult.ignoredErrorCodes = this._ignoredErrorCodes; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._expectedErrorClasses = undefined; this._expectedErrorCodes = undefined; this._ignoredErrorClasses = undefined; this._ignoredErrorCodes = 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._expectedErrorClasses = value.expectedErrorClasses; this._expectedErrorCodes = value.expectedErrorCodes; this._ignoredErrorClasses = value.ignoredErrorClasses; this._ignoredErrorCodes = value.ignoredErrorCodes; } } get expectedErrorClasses() { return this.getListAttribute('expected_error_classes'); } set expectedErrorClasses(value) { this._expectedErrorClasses = value; } resetExpectedErrorClasses() { this._expectedErrorClasses = undefined; } // Temporarily expose input value. Use with caution. get expectedErrorClassesInput() { return this._expectedErrorClasses; } get expectedErrorCodes() { return this.getListAttribute('expected_error_codes'); } set expectedErrorCodes(value) { this._expectedErrorCodes = value; } resetExpectedErrorCodes() { this._expectedErrorCodes = undefined; } // Temporarily expose input value. Use with caution. get expectedErrorCodesInput() { return this._expectedErrorCodes; } get ignoredErrorClasses() { return this.getListAttribute('ignored_error_classes'); } set ignoredErrorClasses(value) { this._ignoredErrorClasses = value; } resetIgnoredErrorClasses() { this._ignoredErrorClasses = undefined; } // Temporarily expose input value. Use with caution. get ignoredErrorClassesInput() { return this._ignoredErrorClasses; } get ignoredErrorCodes() { return this.getListAttribute('ignored_error_codes'); } set ignoredErrorCodes(value) { this._ignoredErrorCodes = value; } resetIgnoredErrorCodes() { this._ignoredErrorCodes = undefined; } // Temporarily expose input value. Use with caution. get ignoredErrorCodesInput() { return this._ignoredErrorCodes; } } exports.ApplicationSettingsErrorCollectorOutputReference = ApplicationSettingsErrorCollectorOutputReference; _a = JSII_RTTI_SYMBOL_1; ApplicationSettingsErrorCollectorOutputReference[_a] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsErrorCollectorOutputReference", version: "12.28.0" }; class ApplicationSettingsErrorCollectorList 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 ApplicationSettingsErrorCollectorOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ApplicationSettingsErrorCollectorList = ApplicationSettingsErrorCollectorList; _b = JSII_RTTI_SYMBOL_1; ApplicationSettingsErrorCollectorList[_b] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsErrorCollectorList", version: "12.28.0" }; function applicationSettingsTransactionTracerExplainQueryPlansToTerraform(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 { query_plan_threshold_type: cdktf.stringToTerraform(struct.queryPlanThresholdType), query_plan_threshold_value: cdktf.numberToTerraform(struct.queryPlanThresholdValue), }; } function applicationSettingsTransactionTracerExplainQueryPlansToHclTerraform(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 = { query_plan_threshold_type: { value: cdktf.stringToHclTerraform(struct.queryPlanThresholdType), isBlock: false, type: "simple", storageClassType: "string", }, query_plan_threshold_value: { value: cdktf.numberToHclTerraform(struct.queryPlanThresholdValue), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference 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._queryPlanThresholdType !== undefined) { hasAnyValues = true; internalValueResult.queryPlanThresholdType = this._queryPlanThresholdType; } if (this._queryPlanThresholdValue !== undefined) { hasAnyValues = true; internalValueResult.queryPlanThresholdValue = this._queryPlanThresholdValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._queryPlanThresholdType = undefined; this._queryPlanThresholdValue = 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._queryPlanThresholdType = value.queryPlanThresholdType; this._queryPlanThresholdValue = value.queryPlanThresholdValue; } } get queryPlanThresholdType() { return this.getStringAttribute('query_plan_threshold_type'); } set queryPlanThresholdType(value) { this._queryPlanThresholdType = value; } resetQueryPlanThresholdType() { this._queryPlanThresholdType = undefined; } // Temporarily expose input value. Use with caution. get queryPlanThresholdTypeInput() { return this._queryPlanThresholdType; } get queryPlanThresholdValue() { return this.getNumberAttribute('query_plan_threshold_value'); } set queryPlanThresholdValue(value) { this._queryPlanThresholdValue = value; } resetQueryPlanThresholdValue() { this._queryPlanThresholdValue = undefined; } // Temporarily expose input value. Use with caution. get queryPlanThresholdValueInput() { return this._queryPlanThresholdValue; } } exports.ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference = ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference; _c = JSII_RTTI_SYMBOL_1; ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference[_c] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference", version: "12.28.0" }; class ApplicationSettingsTransactionTracerExplainQueryPlansList 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 ApplicationSettingsTransactionTracerExplainQueryPlansOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ApplicationSettingsTransactionTracerExplainQueryPlansList = ApplicationSettingsTransactionTracerExplainQueryPlansList; _d = JSII_RTTI_SYMBOL_1; ApplicationSettingsTransactionTracerExplainQueryPlansList[_d] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsTransactionTracerExplainQueryPlansList", version: "12.28.0" }; function applicationSettingsTransactionTracerSqlToTerraform(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 { record_sql: cdktf.stringToTerraform(struct.recordSql), }; } function applicationSettingsTransactionTracerSqlToHclTerraform(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 = { record_sql: { value: cdktf.stringToHclTerraform(struct.recordSql), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ApplicationSettingsTransactionTracerSqlOutputReference 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._recordSql !== undefined) { hasAnyValues = true; internalValueResult.recordSql = this._recordSql; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._recordSql = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._recordSql = value.recordSql; } } get recordSql() { return this.getStringAttribute('record_sql'); } set recordSql(value) { this._recordSql = value; } // Temporarily expose input value. Use with caution. get recordSqlInput() { return this._recordSql; } } exports.ApplicationSettingsTransactionTracerSqlOutputReference = ApplicationSettingsTransactionTracerSqlOutputReference; _e = JSII_RTTI_SYMBOL_1; ApplicationSettingsTransactionTracerSqlOutputReference[_e] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsTransactionTracerSqlOutputReference", version: "12.28.0" }; function applicationSettingsTransactionTracerToTerraform(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 { stack_trace_threshold_value: cdktf.numberToTerraform(struct.stackTraceThresholdValue), transaction_threshold_type: cdktf.stringToTerraform(struct.transactionThresholdType), transaction_threshold_value: cdktf.numberToTerraform(struct.transactionThresholdValue), explain_query_plans: cdktf.listMapper(applicationSettingsTransactionTracerExplainQueryPlansToTerraform, true)(struct.explainQueryPlans), sql: applicationSettingsTransactionTracerSqlToTerraform(struct.sql), }; } function applicationSettingsTransactionTracerToHclTerraform(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 = { stack_trace_threshold_value: { value: cdktf.numberToHclTerraform(struct.stackTraceThresholdValue), isBlock: false, type: "simple", storageClassType: "number", }, transaction_threshold_type: { value: cdktf.stringToHclTerraform(struct.transactionThresholdType), isBlock: false, type: "simple", storageClassType: "string", }, transaction_threshold_value: { value: cdktf.numberToHclTerraform(struct.transactionThresholdValue), isBlock: false, type: "simple", storageClassType: "number", }, explain_query_plans: { value: cdktf.listMapperHcl(applicationSettingsTransactionTracerExplainQueryPlansToHclTerraform, true)(struct.explainQueryPlans), isBlock: true, type: "list", storageClassType: "ApplicationSettingsTransactionTracerExplainQueryPlansList", }, sql: { value: applicationSettingsTransactionTracerSqlToHclTerraform(struct.sql), isBlock: true, type: "list", storageClassType: "ApplicationSettingsTransactionTracerSqlList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class ApplicationSettingsTransactionTracerOutputReference 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; // explain_query_plans - computed: false, optional: true, required: false this._explainQueryPlans = new ApplicationSettingsTransactionTracerExplainQueryPlansList(this, "explain_query_plans", false); // sql - computed: false, optional: true, required: false this._sql = new ApplicationSettingsTransactionTracerSqlOutputReference(this, "sql"); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._stackTraceThresholdValue !== undefined) { hasAnyValues = true; internalValueResult.stackTraceThresholdValue = this._stackTraceThresholdValue; } if (this._transactionThresholdType !== undefined) { hasAnyValues = true; internalValueResult.transactionThresholdType = this._transactionThresholdType; } if (this._transactionThresholdValue !== undefined) { hasAnyValues = true; internalValueResult.transactionThresholdValue = this._transactionThresholdValue; } if (this._explainQueryPlans?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.explainQueryPlans = this._explainQueryPlans?.internalValue; } if (this._sql?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.sql = this._sql?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._stackTraceThresholdValue = undefined; this._transactionThresholdType = undefined; this._transactionThresholdValue = undefined; this._explainQueryPlans.internalValue = undefined; this._sql.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._stackTraceThresholdValue = value.stackTraceThresholdValue; this._transactionThresholdType = value.transactionThresholdType; this._transactionThresholdValue = value.transactionThresholdValue; this._explainQueryPlans.internalValue = value.explainQueryPlans; this._sql.internalValue = value.sql; } } get stackTraceThresholdValue() { return this.getNumberAttribute('stack_trace_threshold_value'); } set stackTraceThresholdValue(value) { this._stackTraceThresholdValue = value; } resetStackTraceThresholdValue() { this._stackTraceThresholdValue = undefined; } // Temporarily expose input value. Use with caution. get stackTraceThresholdValueInput() { return this._stackTraceThresholdValue; } get transactionThresholdType() { return this.getStringAttribute('transaction_threshold_type'); } set transactionThresholdType(value) { this._transactionThresholdType = value; } resetTransactionThresholdType() { this._transactionThresholdType = undefined; } // Temporarily expose input value. Use with caution. get transactionThresholdTypeInput() { return this._transactionThresholdType; } get transactionThresholdValue() { return this.getNumberAttribute('transaction_threshold_value'); } set transactionThresholdValue(value) { this._transactionThresholdValue = value; } resetTransactionThresholdValue() { this._transactionThresholdValue = undefined; } // Temporarily expose input value. Use with caution. get transactionThresholdValueInput() { return this._transactionThresholdValue; } get explainQueryPlans() { return this._explainQueryPlans; } putExplainQueryPlans(value) { this._explainQueryPlans.internalValue = value; } resetExplainQueryPlans() { this._explainQueryPlans.internalValue = undefined; } // Temporarily expose input value. Use with caution. get explainQueryPlansInput() { return this._explainQueryPlans.internalValue; } get sql() { return this._sql; } putSql(value) { this._sql.internalValue = value; } resetSql() { this._sql.internalValue = undefined; } // Temporarily expose input value. Use with caution. get sqlInput() { return this._sql.internalValue; } } exports.ApplicationSettingsTransactionTracerOutputReference = ApplicationSettingsTransactionTracerOutputReference; _f = JSII_RTTI_SYMBOL_1; ApplicationSettingsTransactionTracerOutputReference[_f] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsTransactionTracerOutputReference", version: "12.28.0" }; class ApplicationSettingsTransactionTracerList 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 ApplicationSettingsTransactionTracerOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.ApplicationSettingsTransactionTracerList = ApplicationSettingsTransactionTracerList; _g = JSII_RTTI_SYMBOL_1; ApplicationSettingsTransactionTracerList[_g] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettingsTransactionTracerList", version: "12.28.0" }; /** * Represents a {@link https://registry.terraform.io/providers/newrelic/newrelic/3.59.0/docs/resources/application_settings newrelic_application_settings} */ class ApplicationSettings extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a ApplicationSettings resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the ApplicationSettings to import * @param importFromId The id of the existing ApplicationSettings that should be imported. Refer to the {@link https://registry.terraform.io/providers/newrelic/newrelic/3.59.0/docs/resources/application_settings#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the ApplicationSettings to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "newrelic_application_settings", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/newrelic/newrelic/3.59.0/docs/resources/application_settings newrelic_application_settings} Resource * * @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 ApplicationSettingsConfig = {} */ constructor(scope, id, config = {}) { super(scope, id, { terraformResourceType: 'newrelic_application_settings', terraformGeneratorMetadata: { providerName: 'newrelic', providerVersion: '3.59.0', providerVersionConstraint: '~> 3.7' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // error_collector - computed: false, optional: true, required: false this._errorCollector = new ApplicationSettingsErrorCollectorList(this, "error_collector", false); // transaction_tracer - computed: false, optional: true, required: false this._transactionTracer = new ApplicationSettingsTransactionTracerList(this, "transaction_tracer", false); this._appApdexThreshold = config.appApdexThreshold; this._enableRealUserMonitoring = config.enableRealUserMonitoring; this._enableSlowSql = config.enableSlowSql; this._enableThreadProfiler = config.enableThreadProfiler; this._endUserApdexThreshold = config.endUserApdexThreshold; this._guid = config.guid; this._id = config.id; this._name = config.name; this._tracerType = config.tracerType; this._useServerSideConfig = config.useServerSideConfig; this._errorCollector.internalValue = config.errorCollector; this._transactionTracer.internalValue = config.transactionTracer; } get appApdexThreshold() { return this.getNumberAttribute('app_apdex_threshold'); } set appApdexThreshold(value) { this._appApdexThreshold = value; } resetAppApdexThreshold() { this._appApdexThreshold = undefined; } // Temporarily expose input value. Use with caution. get appApdexThresholdInput() { return this._appApdexThreshold; } get enableRealUserMonitoring() { return this.getBooleanAttribute('enable_real_user_monitoring'); } set enableRealUserMonitoring(value) { this._enableRealUserMonitoring = value; } resetEnableRealUserMonitoring() { this._enableRealUserMonitoring = undefined; } // Temporarily expose input value. Use with caution. get enableRealUserMonitoringInput() { return this._enableRealUserMonitoring; } get enableSlowSql() { return this.getBooleanAttribute('enable_slow_sql'); } set enableSlowSql(value) { this._enableSlowSql = value; } resetEnableSlowSql() { this._enableSlowSql = undefined; } // Temporarily expose input value. Use with caution. get enableSlowSqlInput() { return this._enableSlowSql; } get enableThreadProfiler() { return this.getBooleanAttribute('enable_thread_profiler'); } set enableThreadProfiler(value) { this._enableThreadProfiler = value; } resetEnableThreadProfiler() { this._enableThreadProfiler = undefined; } // Temporarily expose input value. Use with caution. get enableThreadProfilerInput() { return this._enableThreadProfiler; } get endUserApdexThreshold() { return this.getNumberAttribute('end_user_apdex_threshold'); } set endUserApdexThreshold(value) { this._endUserApdexThreshold = value; } resetEndUserApdexThreshold() { this._endUserApdexThreshold = undefined; } // Temporarily expose input value. Use with caution. get endUserApdexThresholdInput() { return this._endUserApdexThreshold; } get guid() { return this.getStringAttribute('guid'); } set guid(value) { this._guid = value; } resetGuid() { this._guid = undefined; } // Temporarily expose input value. Use with caution. get guidInput() { return this._guid; } get id() { return this.getStringAttribute('id'); } set id(value) { this._id = value; } resetId() { this._id = undefined; } // Temporarily expose input value. Use with caution. get idInput() { return this._id; } // is_imported - computed: true, optional: false, required: false get isImported() { return this.getBooleanAttribute('is_imported'); } get name() { return this.getStringAttribute('name'); } set name(value) { this._name = value; } resetName() { this._name = undefined; } // Temporarily expose input value. Use with caution. get nameInput() { return this._name; } get tracerType() { return this.getStringAttribute('tracer_type'); } set tracerType(value) { this._tracerType = value; } resetTracerType() { this._tracerType = undefined; } // Temporarily expose input value. Use with caution. get tracerTypeInput() { return this._tracerType; } get useServerSideConfig() { return this.getBooleanAttribute('use_server_side_config'); } set useServerSideConfig(value) { this._useServerSideConfig = value; } resetUseServerSideConfig() { this._useServerSideConfig = undefined; } // Temporarily expose input value. Use with caution. get useServerSideConfigInput() { return this._useServerSideConfig; } get errorCollector() { return this._errorCollector; } putErrorCollector(value) { this._errorCollector.internalValue = value; } resetErrorCollector() { this._errorCollector.internalValue = undefined; } // Temporarily expose input value. Use with caution. get errorCollectorInput() { return this._errorCollector.internalValue; } get transactionTracer() { return this._transactionTracer; } putTransactionTracer(value) { this._transactionTracer.internalValue = value; } resetTransactionTracer() { this._transactionTracer.internalValue = undefined; } // Temporarily expose input value. Use with caution. get transactionTracerInput() { return this._transactionTracer.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { app_apdex_threshold: cdktf.numberToTerraform(this._appApdexThreshold), enable_real_user_monitoring: cdktf.booleanToTerraform(this._enableRealUserMonitoring), enable_slow_sql: cdktf.booleanToTerraform(this._enableSlowSql), enable_thread_profiler: cdktf.booleanToTerraform(this._enableThreadProfiler), end_user_apdex_threshold: cdktf.numberToTerraform(this._endUserApdexThreshold), guid: cdktf.stringToTerraform(this._guid), id: cdktf.stringToTerraform(this._id), name: cdktf.stringToTerraform(this._name), tracer_type: cdktf.stringToTerraform(this._tracerType), use_server_side_config: cdktf.booleanToTerraform(this._useServerSideConfig), error_collector: cdktf.listMapper(applicationSettingsErrorCollectorToTerraform, true)(this._errorCollector.internalValue), transaction_tracer: cdktf.listMapper(applicationSettingsTransactionTracerToTerraform, true)(this._transactionTracer.internalValue), }; } synthesizeHclAttributes() { const attrs = { app_apdex_threshold: { value: cdktf.numberToHclTerraform(this._appApdexThreshold), isBlock: false, type: "simple", storageClassType: "number", }, enable_real_user_monitoring: { value: cdktf.booleanToHclTerraform(this._enableRealUserMonitoring), isBlock: false, type: "simple", storageClassType: "boolean", }, enable_slow_sql: { value: cdktf.booleanToHclTerraform(this._enableSlowSql), isBlock: false, type: "simple", storageClassType: "boolean", }, enable_thread_profiler: { value: cdktf.booleanToHclTerraform(this._enableThreadProfiler), isBlock: false, type: "simple", storageClassType: "boolean", }, end_user_apdex_threshold: { value: cdktf.numberToHclTerraform(this._endUserApdexThreshold), isBlock: false, type: "simple", storageClassType: "number", }, guid: { value: cdktf.stringToHclTerraform(this._guid), isBlock: false, type: "simple", storageClassType: "string", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, name: { value: cdktf.stringToHclTerraform(this._name), isBlock: false, type: "simple", storageClassType: "string", }, tracer_type: { value: cdktf.stringToHclTerraform(this._tracerType), isBlock: false, type: "simple", storageClassType: "string", }, use_server_side_config: { value: cdktf.booleanToHclTerraform(this._useServerSideConfig), isBlock: false, type: "simple", storageClassType: "boolean", }, error_collector: { value: cdktf.listMapperHcl(applicationSettingsErrorCollectorToHclTerraform, true)(this._errorCollector.internalValue), isBlock: true, type: "list", storageClassType: "ApplicationSettingsErrorCollectorList", }, transaction_tracer: { value: cdktf.listMapperHcl(applicationSettingsTransactionTracerToHclTerraform, true)(this._transactionTracer.internalValue), isBlock: true, type: "list", storageClassType: "ApplicationSettingsTransactionTracerList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.ApplicationSettings = ApplicationSettings; _h = JSII_RTTI_SYMBOL_1; ApplicationSettings[_h] = { fqn: "@cdktf/provider-newrelic.applicationSettings.ApplicationSettings", version: "12.28.0" }; // ================= // STATIC PROPERTIES // ================= ApplicationSettings.tfResourceType = "newrelic_application_settings"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwbGljYXRpb24tc2V0dGluZ3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQW1IQSxvR0FXQztBQUdELDBHQWtDQztBQW1LRCw0SUFTQztBQUdELGtKQXNCQztBQWlIRCxnSEFRQztBQUdELHNIQWdCQztBQWdGRCwwR0FZQztBQUdELGdIQXdDQzs7QUFsbkJELCtCQUErQjtBQTBHL0IsU0FBZ0IsNENBQTRDLENBQUMsTUFBOEQ7SUFDekgsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTztRQUNMLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQyxNQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDbEcscUJBQXFCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3BHLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU8sQ0FBQyxpQkFBaUIs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