/*
* 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 iot-2015-05-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.IoT.Model
{
///
/// Container for the parameters to the ListJobs operation.
/// Lists jobs.
///
///
///
/// Requires permission to access the ListJobs
/// action.
///
///
public partial class ListJobsRequest : AmazonIoTRequest
{
private int? _maxResults;
private string _namespaceId;
private string _nextToken;
private JobStatus _status;
private TargetSelection _targetSelection;
private string _thingGroupId;
private string _thingGroupName;
///
/// Gets and sets the property MaxResults.
///
/// The maximum number of results to return per request.
///
///
[AWSProperty(Min=1, Max=250)]
public int MaxResults
{
get { return this._maxResults.GetValueOrDefault(); }
set { this._maxResults = value; }
}
// Check to see if MaxResults property is set
internal bool IsSetMaxResults()
{
return this._maxResults.HasValue;
}
///
/// Gets and sets the property NamespaceId.
///
/// The namespace used to indicate that a job is a customer-managed job.
///
///
///
/// When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs
/// notifications to MQTT topics that contain the value in the following format.
///
///
///
/// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
///
///
///
///
/// The namespaceId
feature is in public preview.
///
///
///
public string NamespaceId
{
get { return this._namespaceId; }
set { this._namespaceId = value; }
}
// Check to see if NamespaceId property is set
internal bool IsSetNamespaceId()
{
return this._namespaceId != null;
}
///
/// Gets and sets the property NextToken.
///
/// The token to retrieve the next set of results.
///
///
public string NextToken
{
get { return this._nextToken; }
set { this._nextToken = value; }
}
// Check to see if NextToken property is set
internal bool IsSetNextToken()
{
return this._nextToken != null;
}
///
/// Gets and sets the property Status.
///
/// An optional filter that lets you search for jobs that have the specified status.
///
///
public JobStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property TargetSelection.
///
/// Specifies whether the job will continue to run (CONTINUOUS), or will be complete after
/// all those things specified as targets have completed the job (SNAPSHOT). If continuous,
/// the job may also be run on a thing when a change is detected in a target. For example,
/// a job will run on a thing when the thing is added to a target group, even after the
/// job was completed by all things originally in the group.
///
///
///
/// We recommend that you use continuous jobs instead of snapshot jobs for dynamic thing
/// group targets. By using continuous jobs, devices that join the group receive the job
/// execution even after the job has been created.
///
///
///
public TargetSelection TargetSelection
{
get { return this._targetSelection; }
set { this._targetSelection = value; }
}
// Check to see if TargetSelection property is set
internal bool IsSetTargetSelection()
{
return this._targetSelection != null;
}
///
/// Gets and sets the property ThingGroupId.
///
/// A filter that limits the returned jobs to those for the specified group.
///
///
[AWSProperty(Min=1, Max=128)]
public string ThingGroupId
{
get { return this._thingGroupId; }
set { this._thingGroupId = value; }
}
// Check to see if ThingGroupId property is set
internal bool IsSetThingGroupId()
{
return this._thingGroupId != null;
}
///
/// Gets and sets the property ThingGroupName.
///
/// A filter that limits the returned jobs to those for the specified group.
///
///
[AWSProperty(Min=1, Max=128)]
public string ThingGroupName
{
get { return this._thingGroupName; }
set { this._thingGroupName = value; }
}
// Check to see if ThingGroupName property is set
internal bool IsSetThingGroupName()
{
return this._thingGroupName != null;
}
}
}