// Code generated by generators/resource/main.go; DO NOT EDIT. package applicationinsights import ( "context" "regexp" "github.com/hashicorp/terraform-plugin-framework/tfsdk" "github.com/hashicorp/terraform-plugin-framework/types" . "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" "github.com/hashicorp/terraform-provider-awscc/internal/validate" ) func init() { registry.AddResourceTypeFactory("awscc_applicationinsights_application", applicationResourceType) } // applicationResourceType returns the Terraform awscc_applicationinsights_application resource type. // This Terraform resource type corresponds to the CloudFormation AWS::ApplicationInsights::Application resource type. func applicationResourceType(ctx context.Context) (tfsdk.ResourceType, error) { attributes := map[string]tfsdk.Attribute{ "application_arn": { // Property: ApplicationARN // CloudFormation resource type schema: // { // "description": "The ARN of the ApplicationInsights application.", // "type": "string" // } Description: "The ARN of the ApplicationInsights application.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.UseStateForUnknown(), }, }, "auto_configuration_enabled": { // Property: AutoConfigurationEnabled // CloudFormation resource type schema: // { // "description": "If set to true, application will be configured with recommended monitoring configuration.", // "type": "boolean" // } Description: "If set to true, application will be configured with recommended monitoring configuration.", Type: types.BoolType, Optional: true, }, "cwe_monitor_enabled": { // Property: CWEMonitorEnabled // CloudFormation resource type schema: // { // "description": "Indicates whether Application Insights can listen to CloudWatch events for the application resources.", // "type": "boolean" // } Description: "Indicates whether Application Insights can listen to CloudWatch events for the application resources.", Type: types.BoolType, Optional: true, }, "component_monitoring_settings": { // Property: ComponentMonitoringSettings // CloudFormation resource type schema: // { // "description": "The monitoring settings of the components.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "The monitoring setting of the component.", // "oneOf": [ // { // "required": [ // "ComponentName" // ] // }, // { // "required": [ // "ComponentARN" // ] // } // ], // "properties": { // "ComponentARN": { // "description": "The ARN of the compnonent.", // "maxLength": 300, // "minLength": 20, // "pattern": "^arn:aws(-[\\w]+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$", // "type": "string" // }, // "ComponentConfigurationMode": { // "description": "The component monitoring configuration mode.", // "enum": [ // "DEFAULT", // "DEFAULT_WITH_OVERWRITE", // "CUSTOM" // ], // "type": "string" // }, // "ComponentName": { // "description": "The name of the component.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[\\d\\w\\-_.+]*$", // "type": "string" // }, // "CustomComponentConfiguration": { // "additionalProperties": false, // "description": "The monitoring configuration of the component.", // "properties": { // "ConfigurationDetails": { // "additionalProperties": false, // "description": "The configuration settings", // "properties": { // "AlarmMetrics": { // "description": "A list of metrics to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A metric to be monitored for the component.", // "properties": { // "AlarmMetricName": { // "description": "The name of the metric to be monitored for the component.", // "type": "string" // } // }, // "required": [ // "AlarmMetricName" // ], // "type": "object" // }, // "type": "array" // }, // "Alarms": { // "description": "A list of alarms to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A CloudWatch alarm to be monitored for the component.", // "properties": { // "AlarmName": { // "description": "The name of the CloudWatch alarm to be monitored for the component.", // "maxLength": 255, // "minLength": 1, // "type": "string" // }, // "Severity": { // "description": "Indicates the degree of outage when the alarm goes off.", // "enum": [ // "HIGH", // "MEDIUM", // "LOW" // ], // "type": "string" // } // }, // "required": [ // "AlarmName" // ], // "type": "object" // }, // "type": "array" // }, // "HAClusterPrometheusExporter": { // "additionalProperties": false, // "description": "The HA cluster Prometheus Exporter settings.", // "properties": { // "PrometheusPort": { // "description": "Prometheus exporter port.", // "type": "string" // } // }, // "type": "object" // }, // "HANAPrometheusExporter": { // "additionalProperties": false, // "description": "The HANA DB Prometheus Exporter settings.", // "properties": { // "AgreeToInstallHANADBClient": { // "description": "A flag which indicates agreeing to install SAP HANA DB client.", // "type": "boolean" // }, // "HANAPort": { // "description": "The HANA DB port.", // "type": "string" // }, // "HANASID": { // "description": "HANA DB SID.", // "type": "string" // }, // "HANASecretName": { // "description": "The secret name which manages the HANA DB credentials e.g. {\n \"username\": \"\u003c\u003e\",\n \"password\": \"\u003c\u003e\"\n}.", // "type": "string" // }, // "PrometheusPort": { // "description": "Prometheus exporter port.", // "type": "string" // } // }, // "required": [ // "HANASID", // "HANAPort", // "HANASecretName", // "AgreeToInstallHANADBClient" // ], // "type": "object" // }, // "JMXPrometheusExporter": { // "additionalProperties": false, // "description": "The JMX Prometheus Exporter settings.", // "properties": { // "HostPort": { // "description": "Java agent host port", // "type": "string" // }, // "JMXURL": { // "description": "JMX service URL.", // "type": "string" // }, // "PrometheusPort": { // "description": "Prometheus exporter port.", // "type": "string" // } // }, // "type": "object" // }, // "Logs": { // "description": "A list of logs to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A log to be monitored for the component.", // "properties": { // "Encoding": { // "description": "The type of encoding of the logs to be monitored.", // "enum": [ // "utf-8", // "utf-16", // "ascii" // ], // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "LogPath": { // "description": "The path of the logs to be monitored.", // "maxLength": 260, // "minLength": 1, // "pattern": "^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$", // "type": "string" // }, // "LogType": { // "description": "The log type decides the log patterns against which Application Insights analyzes the log.", // "pattern": "^[A-Z][[A-Z]_]*$", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogType" // ], // "type": "object" // }, // "type": "array" // }, // "WindowsEvents": { // "description": "A list of Windows Events to log.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A Windows Event to be monitored for the component.", // "properties": { // "EventLevels": { // "description": "The levels of event to log. ", // "insertionOrder": true, // "items": { // "description": "The level of event to log.", // "enum": [ // "INFORMATION", // "WARNING", // "ERROR", // "CRITICAL", // "VERBOSE" // ], // "type": "string" // }, // "minItems": 1, // "type": "array" // }, // "EventName": { // "description": "The type of Windows Events to log.", // "maxLength": 260, // "minLength": 1, // "pattern": "^[a-zA-Z0-9_ \\\\/-]$", // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogGroupName", // "EventName", // "EventLevels" // ], // "type": "object" // }, // "type": "array" // } // }, // "type": "object" // }, // "SubComponentTypeConfigurations": { // "description": "Sub component configurations of the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "One type sub component configurations for the component.", // "properties": { // "SubComponentConfigurationDetails": { // "additionalProperties": false, // "description": "The configuration settings of sub components.", // "properties": { // "AlarmMetrics": { // "description": "A list of metrics to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A metric to be monitored for the component.", // "properties": { // "AlarmMetricName": { // "description": "The name of the metric to be monitored for the component.", // "type": "string" // } // }, // "required": [ // "AlarmMetricName" // ], // "type": "object" // }, // "type": "array" // }, // "Logs": { // "description": "A list of logs to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A log to be monitored for the component.", // "properties": { // "Encoding": { // "description": "The type of encoding of the logs to be monitored.", // "enum": [ // "utf-8", // "utf-16", // "ascii" // ], // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "LogPath": { // "description": "The path of the logs to be monitored.", // "maxLength": 260, // "minLength": 1, // "pattern": "^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$", // "type": "string" // }, // "LogType": { // "description": "The log type decides the log patterns against which Application Insights analyzes the log.", // "pattern": "^[A-Z][[A-Z]_]*$", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogType" // ], // "type": "object" // }, // "type": "array" // }, // "WindowsEvents": { // "description": "A list of Windows Events to log.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A Windows Event to be monitored for the component.", // "properties": { // "EventLevels": { // "description": "The levels of event to log. ", // "insertionOrder": true, // "items": { // "description": "The level of event to log.", // "enum": [ // "INFORMATION", // "WARNING", // "ERROR", // "CRITICAL", // "VERBOSE" // ], // "type": "string" // }, // "minItems": 1, // "type": "array" // }, // "EventName": { // "description": "The type of Windows Events to log.", // "maxLength": 260, // "minLength": 1, // "pattern": "^[a-zA-Z0-9_ \\\\/-]$", // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogGroupName", // "EventName", // "EventLevels" // ], // "type": "object" // }, // "type": "array" // } // }, // "type": "object" // }, // "SubComponentType": { // "description": "The sub component type.", // "enum": [ // "AWS::EC2::Instance", // "AWS::EC2::Volume" // ], // "type": "string" // } // }, // "required": [ // "SubComponentType", // "SubComponentConfigurationDetails" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // } // }, // "type": "object" // }, // "DefaultOverwriteComponentConfiguration": { // "additionalProperties": false, // "description": "The overwritten settings on default component monitoring configuration.", // "properties": { // "ConfigurationDetails": { // "additionalProperties": false, // "description": "The configuration settings", // "properties": { // "AlarmMetrics": { // "description": "A list of metrics to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A metric to be monitored for the component.", // "properties": { // "AlarmMetricName": { // "description": "The name of the metric to be monitored for the component.", // "type": "string" // } // }, // "required": [ // "AlarmMetricName" // ], // "type": "object" // }, // "type": "array" // }, // "Alarms": { // "description": "A list of alarms to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A CloudWatch alarm to be monitored for the component.", // "properties": { // "AlarmName": { // "description": "The name of the CloudWatch alarm to be monitored for the component.", // "maxLength": 255, // "minLength": 1, // "type": "string" // }, // "Severity": { // "description": "Indicates the degree of outage when the alarm goes off.", // "enum": [ // "HIGH", // "MEDIUM", // "LOW" // ], // "type": "string" // } // }, // "required": [ // "AlarmName" // ], // "type": "object" // }, // "type": "array" // }, // "HAClusterPrometheusExporter": { // "additionalProperties": false, // "description": "The HA cluster Prometheus Exporter settings.", // "properties": { // "PrometheusPort": { // "description": "Prometheus exporter port.", // "type": "string" // } // }, // "type": "object" // }, // "HANAPrometheusExporter": { // "additionalProperties": false, // "description": "The HANA DB Prometheus Exporter settings.", // "properties": { // "AgreeToInstallHANADBClient": { // "description": "A flag which indicates agreeing to install SAP HANA DB client.", // "type": "boolean" // }, // "HANAPort": { // "description": "The HANA DB port.", // "type": "string" // }, // "HANASID": { // "description": "HANA DB SID.", // "type": "string" // }, // "HANASecretName": { // "description": "The secret name which manages the HANA DB credentials e.g. {\n \"username\": \"\u003c\u003e\",\n \"password\": \"\u003c\u003e\"\n}.", // "type": "string" // }, // "PrometheusPort": { // "description": "Prometheus exporter port.", // "type": "string" // } // }, // "required": [ // "HANASID", // "HANAPort", // "HANASecretName", // "AgreeToInstallHANADBClient" // ], // "type": "object" // }, // "JMXPrometheusExporter": { // "additionalProperties": false, // "description": "The JMX Prometheus Exporter settings.", // "properties": { // "HostPort": { // "description": "Java agent host port", // "type": "string" // }, // "JMXURL": { // "description": "JMX service URL.", // "type": "string" // }, // "PrometheusPort": { // "description": "Prometheus exporter port.", // "type": "string" // } // }, // "type": "object" // }, // "Logs": { // "description": "A list of logs to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A log to be monitored for the component.", // "properties": { // "Encoding": { // "description": "The type of encoding of the logs to be monitored.", // "enum": [ // "utf-8", // "utf-16", // "ascii" // ], // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "LogPath": { // "description": "The path of the logs to be monitored.", // "maxLength": 260, // "minLength": 1, // "pattern": "^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$", // "type": "string" // }, // "LogType": { // "description": "The log type decides the log patterns against which Application Insights analyzes the log.", // "pattern": "^[A-Z][[A-Z]_]*$", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogType" // ], // "type": "object" // }, // "type": "array" // }, // "WindowsEvents": { // "description": "A list of Windows Events to log.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A Windows Event to be monitored for the component.", // "properties": { // "EventLevels": { // "description": "The levels of event to log. ", // "insertionOrder": true, // "items": { // "description": "The level of event to log.", // "enum": [ // "INFORMATION", // "WARNING", // "ERROR", // "CRITICAL", // "VERBOSE" // ], // "type": "string" // }, // "minItems": 1, // "type": "array" // }, // "EventName": { // "description": "The type of Windows Events to log.", // "maxLength": 260, // "minLength": 1, // "pattern": "^[a-zA-Z0-9_ \\\\/-]$", // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogGroupName", // "EventName", // "EventLevels" // ], // "type": "object" // }, // "type": "array" // } // }, // "type": "object" // }, // "SubComponentTypeConfigurations": { // "description": "Sub component configurations of the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "One type sub component configurations for the component.", // "properties": { // "SubComponentConfigurationDetails": { // "additionalProperties": false, // "description": "The configuration settings of sub components.", // "properties": { // "AlarmMetrics": { // "description": "A list of metrics to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A metric to be monitored for the component.", // "properties": { // "AlarmMetricName": { // "description": "The name of the metric to be monitored for the component.", // "type": "string" // } // }, // "required": [ // "AlarmMetricName" // ], // "type": "object" // }, // "type": "array" // }, // "Logs": { // "description": "A list of logs to monitor for the component.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A log to be monitored for the component.", // "properties": { // "Encoding": { // "description": "The type of encoding of the logs to be monitored.", // "enum": [ // "utf-8", // "utf-16", // "ascii" // ], // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "LogPath": { // "description": "The path of the logs to be monitored.", // "maxLength": 260, // "minLength": 1, // "pattern": "^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$", // "type": "string" // }, // "LogType": { // "description": "The log type decides the log patterns against which Application Insights analyzes the log.", // "pattern": "^[A-Z][[A-Z]_]*$", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogType" // ], // "type": "object" // }, // "type": "array" // }, // "WindowsEvents": { // "description": "A list of Windows Events to log.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A Windows Event to be monitored for the component.", // "properties": { // "EventLevels": { // "description": "The levels of event to log. ", // "insertionOrder": true, // "items": { // "description": "The level of event to log.", // "enum": [ // "INFORMATION", // "WARNING", // "ERROR", // "CRITICAL", // "VERBOSE" // ], // "type": "string" // }, // "minItems": 1, // "type": "array" // }, // "EventName": { // "description": "The type of Windows Events to log.", // "maxLength": 260, // "minLength": 1, // "pattern": "^[a-zA-Z0-9_ \\\\/-]$", // "type": "string" // }, // "LogGroupName": { // "description": "The CloudWatch log group name to be associated to the monitored log.", // "maxLength": 512, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" // }, // "PatternSet": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "LogGroupName", // "EventName", // "EventLevels" // ], // "type": "object" // }, // "type": "array" // } // }, // "type": "object" // }, // "SubComponentType": { // "description": "The sub component type.", // "enum": [ // "AWS::EC2::Instance", // "AWS::EC2::Volume" // ], // "type": "string" // } // }, // "required": [ // "SubComponentType", // "SubComponentConfigurationDetails" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // } // }, // "type": "object" // }, // "Tier": { // "description": "The tier of the application component.", // "pattern": "^[A-Z][[A-Z]_]*$", // "type": "string" // } // }, // "required": [ // "Tier", // "ComponentConfigurationMode" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // } Description: "The monitoring settings of the components.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "component_arn": { // Property: ComponentARN Description: "The ARN of the compnonent.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(20, 300), validate.StringMatch(regexp.MustCompile("^arn:aws(-[\\w]+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$"), ""), }, }, "component_configuration_mode": { // Property: ComponentConfigurationMode Description: "The component monitoring configuration mode.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "DEFAULT", "DEFAULT_WITH_OVERWRITE", "CUSTOM", }), }, }, "component_name": { // Property: ComponentName Description: "The name of the component.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 128), validate.StringMatch(regexp.MustCompile("^[\\d\\w\\-_.+]*$"), ""), }, }, "custom_component_configuration": { // Property: CustomComponentConfiguration Description: "The monitoring configuration of the component.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "configuration_details": { // Property: ConfigurationDetails Description: "The configuration settings", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metrics": { // Property: AlarmMetrics Description: "A list of metrics to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metric_name": { // Property: AlarmMetricName Description: "The name of the metric to be monitored for the component.", Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "alarms": { // Property: Alarms Description: "A list of alarms to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "alarm_name": { // Property: AlarmName Description: "The name of the CloudWatch alarm to be monitored for the component.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 255), }, }, "severity": { // Property: Severity Description: "Indicates the degree of outage when the alarm goes off.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "HIGH", "MEDIUM", "LOW", }), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "ha_cluster_prometheus_exporter": { // Property: HAClusterPrometheusExporter Description: "The HA cluster Prometheus Exporter settings.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "prometheus_port": { // Property: PrometheusPort Description: "Prometheus exporter port.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "hana_prometheus_exporter": { // Property: HANAPrometheusExporter Description: "The HANA DB Prometheus Exporter settings.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "agree_to_install_hanadb_client": { // Property: AgreeToInstallHANADBClient Description: "A flag which indicates agreeing to install SAP HANA DB client.", Type: types.BoolType, Required: true, }, "hana_port": { // Property: HANAPort Description: "The HANA DB port.", Type: types.StringType, Required: true, }, "hanasid": { // Property: HANASID Description: "HANA DB SID.", Type: types.StringType, Required: true, }, "hana_secret_name": { // Property: HANASecretName Description: "The secret name which manages the HANA DB credentials e.g. {\n \"username\": \"<>\",\n \"password\": \"<>\"\n}.", Type: types.StringType, Required: true, }, "prometheus_port": { // Property: PrometheusPort Description: "Prometheus exporter port.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "jmx_prometheus_exporter": { // Property: JMXPrometheusExporter Description: "The JMX Prometheus Exporter settings.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "host_port": { // Property: HostPort Description: "Java agent host port", Type: types.StringType, Optional: true, }, "jmxurl": { // Property: JMXURL Description: "JMX service URL.", Type: types.StringType, Optional: true, }, "prometheus_port": { // Property: PrometheusPort Description: "Prometheus exporter port.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "logs": { // Property: Logs Description: "A list of logs to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "encoding": { // Property: Encoding Description: "The type of encoding of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "utf-8", "utf-16", "ascii", }), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "log_path": { // Property: LogPath Description: "The path of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$"), ""), }, }, "log_type": { // Property: LogType Description: "The log type decides the log patterns against which Application Insights analyzes the log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringMatch(regexp.MustCompile("^[A-Z][[A-Z]_]*$"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "windows_events": { // Property: WindowsEvents Description: "A list of Windows Events to log.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "event_levels": { // Property: EventLevels Description: "The levels of event to log. ", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), validate.ArrayForEach(validate.StringInSlice([]string{ "INFORMATION", "WARNING", "ERROR", "CRITICAL", "VERBOSE", })), }, }, "event_name": { // Property: EventName Description: "The type of Windows Events to log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^[a-zA-Z0-9_ \\\\/-]$"), ""), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, }, ), Optional: true, }, "sub_component_type_configurations": { // Property: SubComponentTypeConfigurations Description: "Sub component configurations of the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "sub_component_configuration_details": { // Property: SubComponentConfigurationDetails Description: "The configuration settings of sub components.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metrics": { // Property: AlarmMetrics Description: "A list of metrics to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metric_name": { // Property: AlarmMetricName Description: "The name of the metric to be monitored for the component.", Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "logs": { // Property: Logs Description: "A list of logs to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "encoding": { // Property: Encoding Description: "The type of encoding of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "utf-8", "utf-16", "ascii", }), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "log_path": { // Property: LogPath Description: "The path of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$"), ""), }, }, "log_type": { // Property: LogType Description: "The log type decides the log patterns against which Application Insights analyzes the log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringMatch(regexp.MustCompile("^[A-Z][[A-Z]_]*$"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "windows_events": { // Property: WindowsEvents Description: "A list of Windows Events to log.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "event_levels": { // Property: EventLevels Description: "The levels of event to log. ", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), validate.ArrayForEach(validate.StringInSlice([]string{ "INFORMATION", "WARNING", "ERROR", "CRITICAL", "VERBOSE", })), }, }, "event_name": { // Property: EventName Description: "The type of Windows Events to log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^[a-zA-Z0-9_ \\\\/-]$"), ""), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, }, ), Required: true, }, "sub_component_type": { // Property: SubComponentType Description: "The sub component type.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "AWS::EC2::Instance", "AWS::EC2::Volume", }), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), }, }, }, ), Optional: true, }, "default_overwrite_component_configuration": { // Property: DefaultOverwriteComponentConfiguration Description: "The overwritten settings on default component monitoring configuration.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "configuration_details": { // Property: ConfigurationDetails Description: "The configuration settings", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metrics": { // Property: AlarmMetrics Description: "A list of metrics to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metric_name": { // Property: AlarmMetricName Description: "The name of the metric to be monitored for the component.", Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "alarms": { // Property: Alarms Description: "A list of alarms to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "alarm_name": { // Property: AlarmName Description: "The name of the CloudWatch alarm to be monitored for the component.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 255), }, }, "severity": { // Property: Severity Description: "Indicates the degree of outage when the alarm goes off.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "HIGH", "MEDIUM", "LOW", }), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "ha_cluster_prometheus_exporter": { // Property: HAClusterPrometheusExporter Description: "The HA cluster Prometheus Exporter settings.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "prometheus_port": { // Property: PrometheusPort Description: "Prometheus exporter port.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "hana_prometheus_exporter": { // Property: HANAPrometheusExporter Description: "The HANA DB Prometheus Exporter settings.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "agree_to_install_hanadb_client": { // Property: AgreeToInstallHANADBClient Description: "A flag which indicates agreeing to install SAP HANA DB client.", Type: types.BoolType, Required: true, }, "hana_port": { // Property: HANAPort Description: "The HANA DB port.", Type: types.StringType, Required: true, }, "hanasid": { // Property: HANASID Description: "HANA DB SID.", Type: types.StringType, Required: true, }, "hana_secret_name": { // Property: HANASecretName Description: "The secret name which manages the HANA DB credentials e.g. {\n \"username\": \"<>\",\n \"password\": \"<>\"\n}.", Type: types.StringType, Required: true, }, "prometheus_port": { // Property: PrometheusPort Description: "Prometheus exporter port.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "jmx_prometheus_exporter": { // Property: JMXPrometheusExporter Description: "The JMX Prometheus Exporter settings.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "host_port": { // Property: HostPort Description: "Java agent host port", Type: types.StringType, Optional: true, }, "jmxurl": { // Property: JMXURL Description: "JMX service URL.", Type: types.StringType, Optional: true, }, "prometheus_port": { // Property: PrometheusPort Description: "Prometheus exporter port.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "logs": { // Property: Logs Description: "A list of logs to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "encoding": { // Property: Encoding Description: "The type of encoding of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "utf-8", "utf-16", "ascii", }), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "log_path": { // Property: LogPath Description: "The path of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$"), ""), }, }, "log_type": { // Property: LogType Description: "The log type decides the log patterns against which Application Insights analyzes the log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringMatch(regexp.MustCompile("^[A-Z][[A-Z]_]*$"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "windows_events": { // Property: WindowsEvents Description: "A list of Windows Events to log.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "event_levels": { // Property: EventLevels Description: "The levels of event to log. ", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), validate.ArrayForEach(validate.StringInSlice([]string{ "INFORMATION", "WARNING", "ERROR", "CRITICAL", "VERBOSE", })), }, }, "event_name": { // Property: EventName Description: "The type of Windows Events to log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^[a-zA-Z0-9_ \\\\/-]$"), ""), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, }, ), Optional: true, }, "sub_component_type_configurations": { // Property: SubComponentTypeConfigurations Description: "Sub component configurations of the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "sub_component_configuration_details": { // Property: SubComponentConfigurationDetails Description: "The configuration settings of sub components.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metrics": { // Property: AlarmMetrics Description: "A list of metrics to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "alarm_metric_name": { // Property: AlarmMetricName Description: "The name of the metric to be monitored for the component.", Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "logs": { // Property: Logs Description: "A list of logs to monitor for the component.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "encoding": { // Property: Encoding Description: "The type of encoding of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "utf-8", "utf-16", "ascii", }), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "log_path": { // Property: LogPath Description: "The path of the logs to be monitored.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^([a-zA-Z]:\\\\[\\\\\\S|*\\S]?.*|/[^\"']*)$"), ""), }, }, "log_type": { // Property: LogType Description: "The log type decides the log patterns against which Application Insights analyzes the log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringMatch(regexp.MustCompile("^[A-Z][[A-Z]_]*$"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, "windows_events": { // Property: WindowsEvents Description: "A list of Windows Events to log.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "event_levels": { // Property: EventLevels Description: "The levels of event to log. ", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), validate.ArrayForEach(validate.StringInSlice([]string{ "INFORMATION", "WARNING", "ERROR", "CRITICAL", "VERBOSE", })), }, }, "event_name": { // Property: EventName Description: "The type of Windows Events to log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 260), validate.StringMatch(regexp.MustCompile("^[a-zA-Z0-9_ \\\\/-]$"), ""), }, }, "log_group_name": { // Property: LogGroupName Description: "The CloudWatch log group name to be associated to the monitored log.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 512), validate.StringMatch(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, }, "pattern_set": { // Property: PatternSet Description: "The name of the log pattern set.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, }, }, ), Required: true, }, "sub_component_type": { // Property: SubComponentType Description: "The sub component type.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "AWS::EC2::Instance", "AWS::EC2::Volume", }), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), }, }, }, ), Optional: true, }, "tier": { // Property: Tier Description: "The tier of the application component.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringMatch(regexp.MustCompile("^[A-Z][[A-Z]_]*$"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), validate.RequiredAttributes( validate.OneOfRequired( validate.Required( "component_name", ), validate.Required( "component_arn", ), ), ), }, }, "custom_components": { // Property: CustomComponents // CloudFormation resource type schema: // { // "description": "The custom grouped components.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "The custom grouped component.", // "properties": { // "ComponentName": { // "description": "The name of the component.", // "maxLength": 128, // "minLength": 1, // "pattern": "^[\\d\\w\\-_.+]*$", // "type": "string" // }, // "ResourceList": { // "description": "The list of resource ARNs that belong to the component.", // "insertionOrder": true, // "items": { // "maxLength": 300, // "minLength": 20, // "pattern": "^arn:aws(-[\\w]+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$", // "type": "string" // }, // "minItems": 1, // "type": "array" // } // }, // "required": [ // "ComponentName", // "ResourceList" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // } Description: "The custom grouped components.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "component_name": { // Property: ComponentName Description: "The name of the component.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 128), validate.StringMatch(regexp.MustCompile("^[\\d\\w\\-_.+]*$"), ""), }, }, "resource_list": { // Property: ResourceList Description: "The list of resource ARNs that belong to the component.", Type: types.ListType{ElemType: types.StringType}, Required: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), validate.ArrayForEach(validate.StringLenBetween(20, 300)), validate.ArrayForEach(validate.StringMatch(regexp.MustCompile("^arn:aws(-[\\w]+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$"), "")), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), }, }, "log_pattern_sets": { // Property: LogPatternSets // CloudFormation resource type schema: // { // "description": "The log pattern sets.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "The log pattern set.", // "properties": { // "LogPatterns": { // "description": "The log patterns of a set.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "The log pattern.", // "properties": { // "Pattern": { // "description": "The log pattern.", // "maxLength": 50, // "minLength": 1, // "type": "string" // }, // "PatternName": { // "description": "The name of the log pattern.", // "maxLength": 50, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // }, // "Rank": { // "description": "Rank of the log pattern.", // "type": "integer" // } // }, // "required": [ // "PatternName", // "Pattern", // "Rank" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // }, // "PatternSetName": { // "description": "The name of the log pattern set.", // "maxLength": 30, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } // }, // "required": [ // "PatternSetName", // "LogPatterns" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // } Description: "The log pattern sets.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "log_patterns": { // Property: LogPatterns Description: "The log patterns of a set.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "pattern": { // Property: Pattern Description: "The log pattern.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 50), }, }, "pattern_name": { // Property: PatternName Description: "The name of the log pattern.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 50), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, "rank": { // Property: Rank Description: "Rank of the log pattern.", Type: types.Int64Type, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Required: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), }, }, "pattern_set_name": { // Property: PatternSetName Description: "The name of the log pattern set.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 30), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), }, }, "ops_center_enabled": { // Property: OpsCenterEnabled // CloudFormation resource type schema: // { // "description": "When set to true, creates opsItems for any problems detected on an application.", // "type": "boolean" // } Description: "When set to true, creates opsItems for any problems detected on an application.", Type: types.BoolType, Optional: true, }, "ops_item_sns_topic_arn": { // Property: OpsItemSNSTopicArn // CloudFormation resource type schema: // { // "description": "The SNS topic provided to Application Insights that is associated to the created opsItem.", // "maxLength": 300, // "minLength": 20, // "pattern": "^arn:aws(-[\\w]+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$", // "type": "string" // } Description: "The SNS topic provided to Application Insights that is associated to the created opsItem.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(20, 300), validate.StringMatch(regexp.MustCompile("^arn:aws(-[\\w]+)*:[\\w\\d-]+:([\\w\\d-]*)?:[\\w\\d_-]*([:/].+)*$"), ""), }, }, "resource_group_name": { // Property: ResourceGroupName // CloudFormation resource type schema: // { // "description": "The name of the resource group.", // "maxLength": 256, // "minLength": 1, // "pattern": "[a-zA-Z0-9.-_]*", // "type": "string" // } Description: "The name of the resource group.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), validate.StringMatch(regexp.MustCompile("[a-zA-Z0-9.-_]*"), ""), }, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.RequiresReplace(), }, }, "tags": { // Property: Tags // CloudFormation resource type schema: // { // "description": "The tags of Application Insights application.", // "insertionOrder": true, // "items": { // "additionalProperties": false, // "description": "A key-value pair to associate with a resource.", // "properties": { // "Key": { // "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { // "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", // "maxLength": 256, // "minLength": 0, // "type": "string" // } // }, // "required": [ // "Key", // "Value" // ], // "type": "object" // }, // "minItems": 1, // "type": "array" // } Description: "The tags of Application Insights application.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "key": { // Property: Key Description: "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 128), }, }, "value": { // Property: Value Description: "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(0, 256), }, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, Validators: []tfsdk.AttributeValidator{ validate.ArrayLenAtLeast(1), }, }, } attributes["id"] = tfsdk.Attribute{ Description: "Uniquely identifies the resource.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.UseStateForUnknown(), }, } schema := tfsdk.Schema{ Description: "Resource schema for AWS::ApplicationInsights::Application", Version: 1, Attributes: attributes, } var opts ResourceTypeOptions opts = opts.WithCloudFormationTypeName("AWS::ApplicationInsights::Application").WithTerraformTypeName("awscc_applicationinsights_application") opts = opts.WithTerraformSchema(schema) opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "agree_to_install_hanadb_client": "AgreeToInstallHANADBClient", "alarm_metric_name": "AlarmMetricName", "alarm_metrics": "AlarmMetrics", "alarm_name": "AlarmName", "alarms": "Alarms", "application_arn": "ApplicationARN", "auto_configuration_enabled": "AutoConfigurationEnabled", "component_arn": "ComponentARN", "component_configuration_mode": "ComponentConfigurationMode", "component_monitoring_settings": "ComponentMonitoringSettings", "component_name": "ComponentName", "configuration_details": "ConfigurationDetails", "custom_component_configuration": "CustomComponentConfiguration", "custom_components": "CustomComponents", "cwe_monitor_enabled": "CWEMonitorEnabled", "default_overwrite_component_configuration": "DefaultOverwriteComponentConfiguration", "encoding": "Encoding", "event_levels": "EventLevels", "event_name": "EventName", "ha_cluster_prometheus_exporter": "HAClusterPrometheusExporter", "hana_port": "HANAPort", "hana_prometheus_exporter": "HANAPrometheusExporter", "hana_secret_name": "HANASecretName", "hanasid": "HANASID", "host_port": "HostPort", "jmx_prometheus_exporter": "JMXPrometheusExporter", "jmxurl": "JMXURL", "key": "Key", "log_group_name": "LogGroupName", "log_path": "LogPath", "log_pattern_sets": "LogPatternSets", "log_patterns": "LogPatterns", "log_type": "LogType", "logs": "Logs", "ops_center_enabled": "OpsCenterEnabled", "ops_item_sns_topic_arn": "OpsItemSNSTopicArn", "pattern": "Pattern", "pattern_name": "PatternName", "pattern_set": "PatternSet", "pattern_set_name": "PatternSetName", "prometheus_port": "PrometheusPort", "rank": "Rank", "resource_group_name": "ResourceGroupName", "resource_list": "ResourceList", "severity": "Severity", "sub_component_configuration_details": "SubComponentConfigurationDetails", "sub_component_type": "SubComponentType", "sub_component_type_configurations": "SubComponentTypeConfigurations", "tags": "Tags", "tier": "Tier", "value": "Value", "windows_events": "WindowsEvents", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) resourceType, err := NewResourceType(ctx, opts...) if err != nil { return nil, err } return resourceType, nil }