updateDashboard

Updates an existing dashboard's properties, including its name, description, and widget configurations.

Samples

import aws.sdk.kotlin.services.bcmdashboards.model.CostAndUsageQuery
import aws.sdk.kotlin.services.bcmdashboards.model.DateTimeRange
import aws.sdk.kotlin.services.bcmdashboards.model.DateTimeType
import aws.sdk.kotlin.services.bcmdashboards.model.DateTimeValue
import aws.sdk.kotlin.services.bcmdashboards.model.DisplayConfig
import aws.sdk.kotlin.services.bcmdashboards.model.Granularity
import aws.sdk.kotlin.services.bcmdashboards.model.GraphDisplayConfig
import aws.sdk.kotlin.services.bcmdashboards.model.GroupDefinition
import aws.sdk.kotlin.services.bcmdashboards.model.GroupDefinitionType
import aws.sdk.kotlin.services.bcmdashboards.model.MetricName
import aws.sdk.kotlin.services.bcmdashboards.model.QueryParameters
import aws.sdk.kotlin.services.bcmdashboards.model.VisualType
import aws.sdk.kotlin.services.bcmdashboards.model.Widget
import aws.sdk.kotlin.services.bcmdashboards.model.WidgetConfig

fun main() { 
   //sampleStart 
   // Updating a dashboard
bcmDashboardsClient.updateDashboard {
    arn = "arn:aws:bcm-dashboards::123456789012:dashboard/abcd1234-ab12-12ab-1ab2-abcd1234efgh"
    name = "cost-dashboards-updated"
    description = "Dashboard for tracking costs version 2"
    widgets = listOf<Widget>(
        Widget {
            title = "Monthly Cost Trend"
            width = 4
            height = 7
            horizontalOffset = 2
            configs = listOf<WidgetConfig>(
                WidgetConfig {
                    displayConfig = DisplayConfig.Graph(mapOf<String, GraphDisplayConfig>(
                        "costTrend" to GraphDisplayConfig {
                            visualType = VisualType.fromValue("LINE")
                        }
                    )
                    )
                    queryParameters = QueryParameters.CostAndUsage(CostAndUsageQuery {
                        granularity = Granularity.fromValue("MONTHLY")
                        groupBy = listOf<GroupDefinition>(
                            GroupDefinition {
                                key = "SERVICE"
                                type = GroupDefinitionType.fromValue("DIMENSION")
                            }                                
                        )
                        metrics = listOf<MetricName>(
                            MetricName.fromValue("UnblendedCost")
                        )
                        timeRange = DateTimeRange {
                            endTime = DateTimeValue {
                                type = DateTimeType.fromValue("RELATIVE")
                                value = "now"
                            }
                            startTime = DateTimeValue {
                                type = DateTimeType.fromValue("RELATIVE")
                                value = "-3M"
                            }
                        }
                    }
                    )
                }                    
            )
        }            
    )
} 
   //sampleEnd
}