// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package pi import ( "fmt" "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" ) const opDescribeDimensionKeys = "DescribeDimensionKeys" // DescribeDimensionKeysRequest generates a "aws/request.Request" representing the // client's request for the DescribeDimensionKeys operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DescribeDimensionKeys for more information on using the DescribeDimensionKeys // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DescribeDimensionKeysRequest method. // req, resp := client.DescribeDimensionKeysRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/pi-2018-02-27/DescribeDimensionKeys func (c *PI) DescribeDimensionKeysRequest(input *DescribeDimensionKeysInput) (req *request.Request, output *DescribeDimensionKeysOutput) { op := &request.Operation{ Name: opDescribeDimensionKeys, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &DescribeDimensionKeysInput{} } output = &DescribeDimensionKeysOutput{} req = c.newRequest(op, input, output) return } // DescribeDimensionKeys API operation for AWS Performance Insights. // // For a specific time period, retrieve the top N dimension keys for a metric. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Performance Insights's // API operation DescribeDimensionKeys for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidArgumentException "InvalidArgumentException" // One of the arguments provided is invalid for this request. // // * ErrCodeInternalServiceError "InternalServiceError" // The request failed due to an unknown error. // // * ErrCodeNotAuthorizedException "NotAuthorizedException" // The user is not authorized to perform this request. // // See also, https://docs.aws.amazon.com/goto/WebAPI/pi-2018-02-27/DescribeDimensionKeys func (c *PI) DescribeDimensionKeys(input *DescribeDimensionKeysInput) (*DescribeDimensionKeysOutput, error) { req, out := c.DescribeDimensionKeysRequest(input) return out, req.Send() } // DescribeDimensionKeysWithContext is the same as DescribeDimensionKeys with the addition of // the ability to pass a context and additional request options. // // See DescribeDimensionKeys for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *PI) DescribeDimensionKeysWithContext(ctx aws.Context, input *DescribeDimensionKeysInput, opts ...request.Option) (*DescribeDimensionKeysOutput, error) { req, out := c.DescribeDimensionKeysRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetResourceMetrics = "GetResourceMetrics" // GetResourceMetricsRequest generates a "aws/request.Request" representing the // client's request for the GetResourceMetrics operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetResourceMetrics for more information on using the GetResourceMetrics // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetResourceMetricsRequest method. // req, resp := client.GetResourceMetricsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/pi-2018-02-27/GetResourceMetrics func (c *PI) GetResourceMetricsRequest(input *GetResourceMetricsInput) (req *request.Request, output *GetResourceMetricsOutput) { op := &request.Operation{ Name: opGetResourceMetrics, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetResourceMetricsInput{} } output = &GetResourceMetricsOutput{} req = c.newRequest(op, input, output) return } // GetResourceMetrics API operation for AWS Performance Insights. // // Retrieve Performance Insights metrics for a set of data sources, over a time // period. You can provide specific dimension groups and dimensions, and provide // aggregation and filtering criteria for each group. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWS Performance Insights's // API operation GetResourceMetrics for usage and error information. // // Returned Error Codes: // * ErrCodeInvalidArgumentException "InvalidArgumentException" // One of the arguments provided is invalid for this request. // // * ErrCodeInternalServiceError "InternalServiceError" // The request failed due to an unknown error. // // * ErrCodeNotAuthorizedException "NotAuthorizedException" // The user is not authorized to perform this request. // // See also, https://docs.aws.amazon.com/goto/WebAPI/pi-2018-02-27/GetResourceMetrics func (c *PI) GetResourceMetrics(input *GetResourceMetricsInput) (*GetResourceMetricsOutput, error) { req, out := c.GetResourceMetricsRequest(input) return out, req.Send() } // GetResourceMetricsWithContext is the same as GetResourceMetrics with the addition of // the ability to pass a context and additional request options. // // See GetResourceMetrics for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *PI) GetResourceMetricsWithContext(ctx aws.Context, input *GetResourceMetricsInput, opts ...request.Option) (*GetResourceMetricsOutput, error) { req, out := c.GetResourceMetricsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // A timestamp, and a single numerical value, which together represent a measurement // at a particular point in time. type DataPoint struct { _ struct{} `type:"structure"` // The time, in epoch format, associated with a particular Value. // // Timestamp is a required field Timestamp *time.Time `type:"timestamp" required:"true"` // The actual value associated with a particular Timestamp. // // Value is a required field Value *float64 `type:"double" required:"true"` } // String returns the string representation func (s DataPoint) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DataPoint) GoString() string { return s.String() } // SetTimestamp sets the Timestamp field's value. func (s *DataPoint) SetTimestamp(v time.Time) *DataPoint { s.Timestamp = &v return s } // SetValue sets the Value field's value. func (s *DataPoint) SetValue(v float64) *DataPoint { s.Value = &v return s } type DescribeDimensionKeysInput struct { _ struct{} `type:"structure"` // The date and time specifying the end of the requested time series data. The // value specified is exclusive - data points less than (but not equal to) EndTime // will be returned. // // The value for EndTime must be later than the value for StartTime. // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` // One or more filters to apply in the request. Restrictions: // // * Any number of filters by the same dimension, as specified in the GroupBy // or Partition parameters. // // * A single filter for any other dimension in this dimension group. Filter map[string]*string `type:"map"` // A specification for how to aggregate the data points from a query result. // You must specify a valid dimension group. Performance Insights will return // all of the dimensions within that group, unless you provide the names of // specific dimensions within that group. You can also request that Performance // Insights return a limited number of values for a dimension. // // GroupBy is a required field GroupBy *DimensionGroup `type:"structure" required:"true"` // An immutable, AWS Region-unique identifier for a data source. Performance // Insights gathers metrics from this data source. // // To use an Amazon RDS instance as a data source, you specify its DbiResourceId // value - for example: db-FAIHNTYBKTGAUSUZQYPDS2GW4A // // Identifier is a required field Identifier *string `type:"string" required:"true"` // The maximum number of items to return in the response. If more items exist // than the specified MaxRecords value, a pagination token is included in the // response so that the remaining results can be retrieved. MaxResults *int64 `type:"integer"` // The name of a Performance Insights metric to be measured. // // Valid values for Metric are: // // * db.load.avg - a scaled representation of the number of active sessions // for the database engine. // // * db.sampledload.avg - the raw number of active sessions for the database // engine. // // Metric is a required field Metric *string `type:"string" required:"true"` // An optional pagination token provided by a previous request. If this parameter // is specified, the response includes only records beyond the token, up to // the value specified by MaxRecords. NextToken *string `type:"string"` // For each dimension specified in GroupBy, specify a secondary dimension to // further subdivide the partition keys in the response. PartitionBy *DimensionGroup `type:"structure"` // The granularity, in seconds, of the data points returned from Performance // Insights. A period can be as short as one second, or as long as one day (86400 // seconds). Valid values are: // // * 1 (one second) // // * 60 (one minute) // // * 300 (five minutes) // // * 3600 (one hour) // // * 86400 (twenty-four hours) // // If you don't specify PeriodInSeconds, then Performance Insights will choose // a value for you, with a goal of returning roughly 100-200 data points in // the response. PeriodInSeconds *int64 `type:"integer"` // The AWS service for which Performance Insights will return metrics. The only // valid value for ServiceType is: RDS // // ServiceType is a required field ServiceType *string `type:"string" required:"true" enum:"ServiceType"` // The date and time specifying the beginning of the requested time series data. // You can't specify a StartTime that's earlier than 7 days ago. The value specified // is inclusive - data points equal to or greater than StartTime will be returned. // // The value for StartTime must be earlier than the value for EndTime. // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } // String returns the string representation func (s DescribeDimensionKeysInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeDimensionKeysInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DescribeDimensionKeysInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionKeysInput"} if s.EndTime == nil { invalidParams.Add(request.NewErrParamRequired("EndTime")) } if s.GroupBy == nil { invalidParams.Add(request.NewErrParamRequired("GroupBy")) } if s.Identifier == nil { invalidParams.Add(request.NewErrParamRequired("Identifier")) } if s.Metric == nil { invalidParams.Add(request.NewErrParamRequired("Metric")) } if s.ServiceType == nil { invalidParams.Add(request.NewErrParamRequired("ServiceType")) } if s.StartTime == nil { invalidParams.Add(request.NewErrParamRequired("StartTime")) } if s.GroupBy != nil { if err := s.GroupBy.Validate(); err != nil { invalidParams.AddNested("GroupBy", err.(request.ErrInvalidParams)) } } if s.PartitionBy != nil { if err := s.PartitionBy.Validate(); err != nil { invalidParams.AddNested("PartitionBy", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetEndTime sets the EndTime field's value. func (s *DescribeDimensionKeysInput) SetEndTime(v time.Time) *DescribeDimensionKeysInput { s.EndTime = &v return s } // SetFilter sets the Filter field's value. func (s *DescribeDimensionKeysInput) SetFilter(v map[string]*string) *DescribeDimensionKeysInput { s.Filter = v return s } // SetGroupBy sets the GroupBy field's value. func (s *DescribeDimensionKeysInput) SetGroupBy(v *DimensionGroup) *DescribeDimensionKeysInput { s.GroupBy = v return s } // SetIdentifier sets the Identifier field's value. func (s *DescribeDimensionKeysInput) SetIdentifier(v string) *DescribeDimensionKeysInput { s.Identifier = &v return s } // SetMaxResults sets the MaxResults field's value. func (s *DescribeDimensionKeysInput) SetMaxResults(v int64) *DescribeDimensionKeysInput { s.MaxResults = &v return s } // SetMetric sets the Metric field's value. func (s *DescribeDimensionKeysInput) SetMetric(v string) *DescribeDimensionKeysInput { s.Metric = &v return s } // SetNextToken sets the NextToken field's value. func (s *DescribeDimensionKeysInput) SetNextToken(v string) *DescribeDimensionKeysInput { s.NextToken = &v return s } // SetPartitionBy sets the PartitionBy field's value. func (s *DescribeDimensionKeysInput) SetPartitionBy(v *DimensionGroup) *DescribeDimensionKeysInput { s.PartitionBy = v return s } // SetPeriodInSeconds sets the PeriodInSeconds field's value. func (s *DescribeDimensionKeysInput) SetPeriodInSeconds(v int64) *DescribeDimensionKeysInput { s.PeriodInSeconds = &v return s } // SetServiceType sets the ServiceType field's value. func (s *DescribeDimensionKeysInput) SetServiceType(v string) *DescribeDimensionKeysInput { s.ServiceType = &v return s } // SetStartTime sets the StartTime field's value. func (s *DescribeDimensionKeysInput) SetStartTime(v time.Time) *DescribeDimensionKeysInput { s.StartTime = &v return s } type DescribeDimensionKeysOutput struct { _ struct{} `type:"structure"` // The end time for the returned dimension keys, after alignment to a granular // boundary (as specified by PeriodInSeconds). AlignedEndTime will be greater // than or equal to the value of the user-specified Endtime. AlignedEndTime *time.Time `type:"timestamp"` // The start time for the returned dimension keys, after alignment to a granular // boundary (as specified by PeriodInSeconds). AlignedStartTime will be less // than or equal to the value of the user-specified StartTime. AlignedStartTime *time.Time `type:"timestamp"` // The dimension keys that were requested. Keys []*DimensionKeyDescription `type:"list"` // An optional pagination token provided by a previous request. If this parameter // is specified, the response includes only records beyond the token, up to // the value specified by MaxRecords. NextToken *string `type:"string"` // If PartitionBy was present in the request, PartitionKeys contains the breakdown // of dimension keys by the specified partitions. PartitionKeys []*ResponsePartitionKey `type:"list"` } // String returns the string representation func (s DescribeDimensionKeysOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeDimensionKeysOutput) GoString() string { return s.String() } // SetAlignedEndTime sets the AlignedEndTime field's value. func (s *DescribeDimensionKeysOutput) SetAlignedEndTime(v time.Time) *DescribeDimensionKeysOutput { s.AlignedEndTime = &v return s } // SetAlignedStartTime sets the AlignedStartTime field's value. func (s *DescribeDimensionKeysOutput) SetAlignedStartTime(v time.Time) *DescribeDimensionKeysOutput { s.AlignedStartTime = &v return s } // SetKeys sets the Keys field's value. func (s *DescribeDimensionKeysOutput) SetKeys(v []*DimensionKeyDescription) *DescribeDimensionKeysOutput { s.Keys = v return s } // SetNextToken sets the NextToken field's value. func (s *DescribeDimensionKeysOutput) SetNextToken(v string) *DescribeDimensionKeysOutput { s.NextToken = &v return s } // SetPartitionKeys sets the PartitionKeys field's value. func (s *DescribeDimensionKeysOutput) SetPartitionKeys(v []*ResponsePartitionKey) *DescribeDimensionKeysOutput { s.PartitionKeys = v return s } // A logical grouping of Performance Insights metrics for a related subject // area. For example, the db.sql dimension group consists of the following dimensions: // db.sql.id, db.sql.db_id, db.sql.statement, and db.sql.tokenized_id. type DimensionGroup struct { _ struct{} `type:"structure"` // A list of specific dimensions from a dimension group. If this parameter is // not present, then it signifies that all of the dimensions in the group were // requested, or are present in the response. // // Valid values for elements in the Dimensions array are: // // * db.user.id // // * db.user.name // // * db.host.id // // * db.host.name // // * db.sql.id // // * db.sql.db_id // // * db.sql.statement // // * db.sql.tokenized_id // // * db.sql_tokenized.id // // * db.sql_tokenized.db_id // // * db.sql_tokenized.statement // // * db.wait_event.name // // * db.wait_event.type // // * db.wait_event_type.name Dimensions []*string `min:"1" type:"list"` // The name of the dimension group. Valid values are: // // * db.user // // * db.host // // * db.sql // // * db.sql_tokenized // // * db.wait_event // // * db.wait_event_type // // Group is a required field Group *string `type:"string" required:"true"` // The maximum number of items to fetch for this dimension group. Limit *int64 `min:"1" type:"integer"` } // String returns the string representation func (s DimensionGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DimensionGroup) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DimensionGroup) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DimensionGroup"} if s.Dimensions != nil && len(s.Dimensions) < 1 { invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1)) } if s.Group == nil { invalidParams.Add(request.NewErrParamRequired("Group")) } if s.Limit != nil && *s.Limit < 1 { invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetDimensions sets the Dimensions field's value. func (s *DimensionGroup) SetDimensions(v []*string) *DimensionGroup { s.Dimensions = v return s } // SetGroup sets the Group field's value. func (s *DimensionGroup) SetGroup(v string) *DimensionGroup { s.Group = &v return s } // SetLimit sets the Limit field's value. func (s *DimensionGroup) SetLimit(v int64) *DimensionGroup { s.Limit = &v return s } // An array of descriptions and aggregated values for each dimension within // a dimension group. type DimensionKeyDescription struct { _ struct{} `type:"structure"` // A map of name-value pairs for the dimensions in the group. Dimensions map[string]*string `type:"map"` // If PartitionBy was specified, PartitionKeys contains the dimensions that // were. Partitions []*float64 `type:"list"` // The aggregated metric value for the dimension(s), over the requested time // range. Total *float64 `type:"double"` } // String returns the string representation func (s DimensionKeyDescription) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DimensionKeyDescription) GoString() string { return s.String() } // SetDimensions sets the Dimensions field's value. func (s *DimensionKeyDescription) SetDimensions(v map[string]*string) *DimensionKeyDescription { s.Dimensions = v return s } // SetPartitions sets the Partitions field's value. func (s *DimensionKeyDescription) SetPartitions(v []*float64) *DimensionKeyDescription { s.Partitions = v return s } // SetTotal sets the Total field's value. func (s *DimensionKeyDescription) SetTotal(v float64) *DimensionKeyDescription { s.Total = &v return s } type GetResourceMetricsInput struct { _ struct{} `type:"structure"` // The date and time specifiying the end of the requested time series data. // The value specified is exclusive - data points less than (but not equal to) // EndTime will be returned. // // The value for EndTime must be later than the value for StartTime. // // EndTime is a required field EndTime *time.Time `type:"timestamp" required:"true"` // An immutable, AWS Region-unique identifier for a data source. Performance // Insights gathers metrics from this data source. // // To use an Amazon RDS instance as a data source, you specify its DbiResourceId // value - for example: db-FAIHNTYBKTGAUSUZQYPDS2GW4A // // Identifier is a required field Identifier *string `type:"string" required:"true"` // The maximum number of items to return in the response. If more items exist // than the specified MaxRecords value, a pagination token is included in the // response so that the remaining results can be retrieved. MaxResults *int64 `type:"integer"` // An array of one or more queries to perform. Each query must specify a Performance // Insights metric, and can optionally specify aggregation and filtering criteria. // // MetricQueries is a required field MetricQueries []*MetricQuery `min:"1" type:"list" required:"true"` // An optional pagination token provided by a previous request. If this parameter // is specified, the response includes only records beyond the token, up to // the value specified by MaxRecords. NextToken *string `type:"string"` // The granularity, in seconds, of the data points returned from Performance // Insights. A period can be as short as one second, or as long as one day (86400 // seconds). Valid values are: // // * 1 (one second) // // * 60 (one minute) // // * 300 (five minutes) // // * 3600 (one hour) // // * 86400 (twenty-four hours) // // If you don't specify PeriodInSeconds, then Performance Insights will choose // a value for you, with a goal of returning roughly 100-200 data points in // the response. PeriodInSeconds *int64 `type:"integer"` // The AWS service for which Performance Insights will return metrics. The only // valid value for ServiceType is: RDS // // ServiceType is a required field ServiceType *string `type:"string" required:"true" enum:"ServiceType"` // The date and time specifying the beginning of the requested time series data. // You can't specify a StartTime that's earlier than 7 days ago. The value specified // is inclusive - data points equal to or greater than StartTime will be returned. // // The value for StartTime must be earlier than the value for EndTime. // // StartTime is a required field StartTime *time.Time `type:"timestamp" required:"true"` } // String returns the string representation func (s GetResourceMetricsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetResourceMetricsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetResourceMetricsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetResourceMetricsInput"} if s.EndTime == nil { invalidParams.Add(request.NewErrParamRequired("EndTime")) } if s.Identifier == nil { invalidParams.Add(request.NewErrParamRequired("Identifier")) } if s.MetricQueries == nil { invalidParams.Add(request.NewErrParamRequired("MetricQueries")) } if s.MetricQueries != nil && len(s.MetricQueries) < 1 { invalidParams.Add(request.NewErrParamMinLen("MetricQueries", 1)) } if s.ServiceType == nil { invalidParams.Add(request.NewErrParamRequired("ServiceType")) } if s.StartTime == nil { invalidParams.Add(request.NewErrParamRequired("StartTime")) } if s.MetricQueries != nil { for i, v := range s.MetricQueries { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricQueries", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetEndTime sets the EndTime field's value. func (s *GetResourceMetricsInput) SetEndTime(v time.Time) *GetResourceMetricsInput { s.EndTime = &v return s } // SetIdentifier sets the Identifier field's value. func (s *GetResourceMetricsInput) SetIdentifier(v string) *GetResourceMetricsInput { s.Identifier = &v return s } // SetMaxResults sets the MaxResults field's value. func (s *GetResourceMetricsInput) SetMaxResults(v int64) *GetResourceMetricsInput { s.MaxResults = &v return s } // SetMetricQueries sets the MetricQueries field's value. func (s *GetResourceMetricsInput) SetMetricQueries(v []*MetricQuery) *GetResourceMetricsInput { s.MetricQueries = v return s } // SetNextToken sets the NextToken field's value. func (s *GetResourceMetricsInput) SetNextToken(v string) *GetResourceMetricsInput { s.NextToken = &v return s } // SetPeriodInSeconds sets the PeriodInSeconds field's value. func (s *GetResourceMetricsInput) SetPeriodInSeconds(v int64) *GetResourceMetricsInput { s.PeriodInSeconds = &v return s } // SetServiceType sets the ServiceType field's value. func (s *GetResourceMetricsInput) SetServiceType(v string) *GetResourceMetricsInput { s.ServiceType = &v return s } // SetStartTime sets the StartTime field's value. func (s *GetResourceMetricsInput) SetStartTime(v time.Time) *GetResourceMetricsInput { s.StartTime = &v return s } type GetResourceMetricsOutput struct { _ struct{} `type:"structure"` // The end time for the returned metrics, after alignment to a granular boundary // (as specified by PeriodInSeconds). AlignedEndTime will be greater than or // equal to the value of the user-specified Endtime. AlignedEndTime *time.Time `type:"timestamp"` // The start time for the returned metrics, after alignment to a granular boundary // (as specified by PeriodInSeconds). AlignedStartTime will be less than or // equal to the value of the user-specified StartTime. AlignedStartTime *time.Time `type:"timestamp"` // An immutable, AWS Region-unique identifier for a data source. Performance // Insights gathers metrics from this data source. // // To use an Amazon RDS instance as a data source, you specify its DbiResourceId // value - for example: db-FAIHNTYBKTGAUSUZQYPDS2GW4A Identifier *string `type:"string"` // An array of metric results,, where each array element contains all of the // data points for a particular dimension. MetricList []*MetricKeyDataPoints `type:"list"` // An optional pagination token provided by a previous request. If this parameter // is specified, the response includes only records beyond the token, up to // the value specified by MaxRecords. NextToken *string `type:"string"` } // String returns the string representation func (s GetResourceMetricsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetResourceMetricsOutput) GoString() string { return s.String() } // SetAlignedEndTime sets the AlignedEndTime field's value. func (s *GetResourceMetricsOutput) SetAlignedEndTime(v time.Time) *GetResourceMetricsOutput { s.AlignedEndTime = &v return s } // SetAlignedStartTime sets the AlignedStartTime field's value. func (s *GetResourceMetricsOutput) SetAlignedStartTime(v time.Time) *GetResourceMetricsOutput { s.AlignedStartTime = &v return s } // SetIdentifier sets the Identifier field's value. func (s *GetResourceMetricsOutput) SetIdentifier(v string) *GetResourceMetricsOutput { s.Identifier = &v return s } // SetMetricList sets the MetricList field's value. func (s *GetResourceMetricsOutput) SetMetricList(v []*MetricKeyDataPoints) *GetResourceMetricsOutput { s.MetricList = v return s } // SetNextToken sets the NextToken field's value. func (s *GetResourceMetricsOutput) SetNextToken(v string) *GetResourceMetricsOutput { s.NextToken = &v return s } // A time-ordered series of data points, correpsonding to a dimension of a Performance // Insights metric. type MetricKeyDataPoints struct { _ struct{} `type:"structure"` // An array of timestamp-value pairs, representing measurements over a period // of time. DataPoints []*DataPoint `type:"list"` // The dimension(s) to which the data points apply. Key *ResponseResourceMetricKey `type:"structure"` } // String returns the string representation func (s MetricKeyDataPoints) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s MetricKeyDataPoints) GoString() string { return s.String() } // SetDataPoints sets the DataPoints field's value. func (s *MetricKeyDataPoints) SetDataPoints(v []*DataPoint) *MetricKeyDataPoints { s.DataPoints = v return s } // SetKey sets the Key field's value. func (s *MetricKeyDataPoints) SetKey(v *ResponseResourceMetricKey) *MetricKeyDataPoints { s.Key = v return s } // A single query to be processed. You must provide the metric to query. If // no other parameters are specified, Performance Insights returns all of the // data points for that metric. You can optionally request that the data points // be aggregated by dimension group ( GroupBy), and return only those data points // that match your criteria (Filter). type MetricQuery struct { _ struct{} `type:"structure"` // One or more filters to apply in the request. Restrictions: // // * Any number of filters by the same dimension, as specified in the GroupBy // parameter. // // * A single filter for any other dimension in this dimension group. Filter map[string]*string `type:"map"` // A specification for how to aggregate the data points from a query result. // You must specify a valid dimension group. Performance Insights will return // all of the dimensions within that group, unless you provide the names of // specific dimensions within that group. You can also request that Performance // Insights return a limited number of values for a dimension. GroupBy *DimensionGroup `type:"structure"` // The name of a Performance Insights metric to be measured. // // Valid values for Metric are: // // * db.load.avg - a scaled representation of the number of active sessions // for the database engine. // // * db.sampledload.avg - the raw number of active sessions for the database // engine. // // Metric is a required field Metric *string `type:"string" required:"true"` } // String returns the string representation func (s MetricQuery) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s MetricQuery) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *MetricQuery) Validate() error { invalidParams := request.ErrInvalidParams{Context: "MetricQuery"} if s.Metric == nil { invalidParams.Add(request.NewErrParamRequired("Metric")) } if s.GroupBy != nil { if err := s.GroupBy.Validate(); err != nil { invalidParams.AddNested("GroupBy", err.(request.ErrInvalidParams)) } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetFilter sets the Filter field's value. func (s *MetricQuery) SetFilter(v map[string]*string) *MetricQuery { s.Filter = v return s } // SetGroupBy sets the GroupBy field's value. func (s *MetricQuery) SetGroupBy(v *DimensionGroup) *MetricQuery { s.GroupBy = v return s } // SetMetric sets the Metric field's value. func (s *MetricQuery) SetMetric(v string) *MetricQuery { s.Metric = &v return s } // If PartitionBy was specified in a DescribeDimensionKeys request, the dimensions // are returned in an array. Each element in the array specifies one dimension. type ResponsePartitionKey struct { _ struct{} `type:"structure"` // A dimension map that contains the dimension(s) for this partition. // // Dimensions is a required field Dimensions map[string]*string `type:"map" required:"true"` } // String returns the string representation func (s ResponsePartitionKey) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ResponsePartitionKey) GoString() string { return s.String() } // SetDimensions sets the Dimensions field's value. func (s *ResponsePartitionKey) SetDimensions(v map[string]*string) *ResponsePartitionKey { s.Dimensions = v return s } // An object describing a Performance Insights metric and one or more dimensions // for that metric. type ResponseResourceMetricKey struct { _ struct{} `type:"structure"` // The valid dimensions for the metric. Dimensions map[string]*string `type:"map"` // The name of a Performance Insights metric to be measured. // // Valid values for Metric are: // // * db.load.avg - a scaled representation of the number of active sessions // for the database engine. // // * db.sampledload.avg - the raw number of active sessions for the database // engine. // // Metric is a required field Metric *string `type:"string" required:"true"` } // String returns the string representation func (s ResponseResourceMetricKey) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ResponseResourceMetricKey) GoString() string { return s.String() } // SetDimensions sets the Dimensions field's value. func (s *ResponseResourceMetricKey) SetDimensions(v map[string]*string) *ResponseResourceMetricKey { s.Dimensions = v return s } // SetMetric sets the Metric field's value. func (s *ResponseResourceMetricKey) SetMetric(v string) *ResponseResourceMetricKey { s.Metric = &v return s } const ( // ServiceTypeRds is a ServiceType enum value ServiceTypeRds = "RDS" )