/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the logs-2014-03-28.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CloudWatchLogs.Model
{
///
/// Container for the parameters to the StartQuery operation.
/// Schedules a query of a log group using CloudWatch Logs Insights. You specify the log
/// group and time range to query and the query string to use.
///
///
///
/// For more information, see CloudWatch
/// Logs Insights Query Syntax.
///
///
///
/// After you run a query using StartQuery
, the query results are stored
/// by CloudWatch Logs. You can use GetQueryResults
/// to retrieve the results of a query, using the queryId
that StartQuery
/// returns.
///
///
///
/// If you have associated a KMS key with the query results in this account, then StartQuery
/// uses that key to encrypt the results when it stores them. If no key is associated
/// with query results, the query results are encrypted with the default CloudWatch Logs
/// encryption method.
///
///
///
/// Queries time out after 60 minutes of runtime. If your queries are timing out, reduce
/// the time range being searched or partition your query into a number of queries.
///
///
///
/// If you are using CloudWatch cross-account observability, you can use this operation
/// in a monitoring account to start a query in a linked source account. For more information,
/// see CloudWatch
/// cross-account observability. For a cross-account StartQuery
operation,
/// the query definition must be defined in the monitoring account.
///
///
///
/// You can have up to 30 concurrent CloudWatch Logs insights queries, including queries
/// that have been added to dashboards.
///
///
public partial class StartQueryRequest : AmazonCloudWatchLogsRequest
{
private long? _endTime;
private int? _limit;
private List _logGroupIdentifiers = new List();
private string _logGroupName;
private List _logGroupNames = new List();
private string _queryString;
private long? _startTime;
///
/// Gets and sets the property EndTime.
///
/// The end of the time range to query. The range is inclusive, so the specified end time
/// is included in the query. Specified as epoch time, the number of seconds since January
/// 1, 1970, 00:00:00 UTC
.
///
///
[AWSProperty(Required=true, Min=0)]
public long EndTime
{
get { return this._endTime.GetValueOrDefault(); }
set { this._endTime = value; }
}
// Check to see if EndTime property is set
internal bool IsSetEndTime()
{
return this._endTime.HasValue;
}
///
/// Gets and sets the property Limit.
///
/// The maximum number of log events to return in the query. If the query string uses
/// the fields
command, only the specified fields and their values are returned.
/// The default is 1000.
///
///
[AWSProperty(Min=1, Max=10000)]
public int Limit
{
get { return this._limit.GetValueOrDefault(); }
set { this._limit = value; }
}
// Check to see if Limit property is set
internal bool IsSetLimit()
{
return this._limit.HasValue;
}
///
/// Gets and sets the property LogGroupIdentifiers.
///
/// The list of log groups to query. You can include up to 50 log groups.
///
///
///
/// You can specify them by the log group name or ARN. If a log group that you're querying
/// is in a source account and you're using a monitoring account, you must specify the
/// ARN of the log group here. The query definition must also be defined in the monitoring
/// account.
///
///
///
/// If you specify an ARN, the ARN can't end with an asterisk (*).
///
///
///
/// A StartQuery
operation must include exactly one of the following parameters:
/// logGroupName
, logGroupNames
, or logGroupIdentifiers
.
///
///
///
public List LogGroupIdentifiers
{
get { return this._logGroupIdentifiers; }
set { this._logGroupIdentifiers = value; }
}
// Check to see if LogGroupIdentifiers property is set
internal bool IsSetLogGroupIdentifiers()
{
return this._logGroupIdentifiers != null && this._logGroupIdentifiers.Count > 0;
}
///
/// Gets and sets the property LogGroupName.
///
/// The log group on which to perform the query.
///
///
///
/// A StartQuery
operation must include exactly one of the following parameters:
/// logGroupName
, logGroupNames
, or logGroupIdentifiers
.
///
///
///
///
[AWSProperty(Min=1, Max=512)]
public string LogGroupName
{
get { return this._logGroupName; }
set { this._logGroupName = value; }
}
// Check to see if LogGroupName property is set
internal bool IsSetLogGroupName()
{
return this._logGroupName != null;
}
///
/// Gets and sets the property LogGroupNames.
///
/// The list of log groups to be queried. You can include up to 50 log groups.
///
///
///
/// A StartQuery
operation must include exactly one of the following parameters:
/// logGroupName
, logGroupNames
, or logGroupIdentifiers
.
///
///
///
///
public List LogGroupNames
{
get { return this._logGroupNames; }
set { this._logGroupNames = value; }
}
// Check to see if LogGroupNames property is set
internal bool IsSetLogGroupNames()
{
return this._logGroupNames != null && this._logGroupNames.Count > 0;
}
///
/// Gets and sets the property QueryString.
///
/// The query string to use. For more information, see CloudWatch
/// Logs Insights Query Syntax.
///
///
[AWSProperty(Required=true, Min=0, Max=10000)]
public string QueryString
{
get { return this._queryString; }
set { this._queryString = value; }
}
// Check to see if QueryString property is set
internal bool IsSetQueryString()
{
return this._queryString != null;
}
///
/// Gets and sets the property StartTime.
///
/// The beginning of the time range to query. The range is inclusive, so the specified
/// start time is included in the query. Specified as epoch time, the number of seconds
/// since January 1, 1970, 00:00:00 UTC
.
///
///
[AWSProperty(Required=true, Min=0)]
public long StartTime
{
get { return this._startTime.GetValueOrDefault(); }
set { this._startTime = value; }
}
// Check to see if StartTime property is set
internal bool IsSetStartTime()
{
return this._startTime.HasValue;
}
}
}