@cdktf/provider-newrelic
Version:
Prebuilt newrelic Provider for Terraform CDK (cdktf)
944 lines • 141 kB
JavaScript
"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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