/*
* 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 resource-groups-2017-11-27.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.ResourceGroups.Model
{
///
/// Container for the parameters to the CreateGroup operation.
/// Creates a resource group with the specified name and description. You can optionally
/// include either a resource query or a service configuration. For more information about
/// constructing a resource query, see Build
/// queries and groups in Resource Groups in the Resource Groups User Guide.
/// For more information about service-linked groups and service configurations, see Service
/// configurations for Resource Groups.
///
///
///
/// Minimum permissions
///
///
///
/// To run this command, you must have the following permissions:
///
/// -
///
///
resource-groups:CreateGroup
///
///
///
public partial class CreateGroupRequest : AmazonResourceGroupsRequest
{
private List _configuration = new List();
private string _description;
private string _name;
private ResourceQuery _resourceQuery;
private Dictionary _tags = new Dictionary();
///
/// Gets and sets the property Configuration.
///
/// A configuration associates the resource group with an Amazon Web Services service
/// and specifies how the service can interact with the resources in the group. A configuration
/// is an array of GroupConfigurationItem elements. For details about the syntax
/// of service configurations, see Service
/// configurations for Resource Groups.
///
///
///
/// A resource group can contain either a Configuration
or a ResourceQuery
,
/// but not both.
///
///
///
[AWSProperty(Max=2)]
public List Configuration
{
get { return this._configuration; }
set { this._configuration = value; }
}
// Check to see if Configuration property is set
internal bool IsSetConfiguration()
{
return this._configuration != null && this._configuration.Count > 0;
}
///
/// Gets and sets the property Description.
///
/// The description of the resource group. Descriptions can consist of letters, numbers,
/// hyphens, underscores, periods, and spaces.
///
///
[AWSProperty(Max=1024)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the group, which is the identifier of the group in other operations. You
/// can't change the name of a resource group after you create it. A resource group name
/// can consist of letters, numbers, hyphens, periods, and underscores. The name cannot
/// start with AWS
or aws
; these are reserved. A resource group
/// name must be unique within each Amazon Web Services Region in your Amazon Web Services
/// account.
///
///
[AWSProperty(Required=true, Min=1, Max=300)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property ResourceQuery.
///
/// The resource query that determines which Amazon Web Services resources are members
/// of this group. For more information about resource queries, see Create
/// a tag-based group in Resource Groups.
///
///
///
/// A resource group can contain either a ResourceQuery
or a Configuration
,
/// but not both.
///
///
///
public ResourceQuery ResourceQuery
{
get { return this._resourceQuery; }
set { this._resourceQuery = value; }
}
// Check to see if ResourceQuery property is set
internal bool IsSetResourceQuery()
{
return this._resourceQuery != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags to add to the group. A tag is key-value pair string.
///
///
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}