/*
* 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 ec2-2016-11-15.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.EC2.Model
{
///
/// Container for the parameters to the CreateVerifiedAccessTrustProvider operation.
/// A trust provider is a third-party entity that creates, maintains, and manages identity
/// information for users and devices. When an application request is made, the identity
/// information sent by the trust provider is evaluated by Verified Access before allowing
/// or denying the application request.
///
public partial class CreateVerifiedAccessTrustProviderRequest : AmazonEC2Request
{
private string _clientToken;
private string _description;
private CreateVerifiedAccessTrustProviderDeviceOptions _deviceOptions;
private DeviceTrustProviderType _deviceTrustProviderType;
private CreateVerifiedAccessTrustProviderOidcOptions _oidcOptions;
private string _policyReferenceName;
private List _tagSpecifications = new List();
private TrustProviderType _trustProviderType;
private UserTrustProviderType _userTrustProviderType;
///
/// Gets and sets the property ClientToken.
///
/// A unique, case-sensitive token that you provide to ensure idempotency of your modification
/// request. For more information, see Ensuring
/// Idempotency.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property Description.
///
/// A description for the Verified Access trust provider.
///
///
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 DeviceOptions.
///
/// The options for a device-based trust provider. This parameter is required when the
/// provider type is device
.
///
///
public CreateVerifiedAccessTrustProviderDeviceOptions DeviceOptions
{
get { return this._deviceOptions; }
set { this._deviceOptions = value; }
}
// Check to see if DeviceOptions property is set
internal bool IsSetDeviceOptions()
{
return this._deviceOptions != null;
}
///
/// Gets and sets the property DeviceTrustProviderType.
///
/// The type of device-based trust provider. This parameter is required when the provider
/// type is device
.
///
///
public DeviceTrustProviderType DeviceTrustProviderType
{
get { return this._deviceTrustProviderType; }
set { this._deviceTrustProviderType = value; }
}
// Check to see if DeviceTrustProviderType property is set
internal bool IsSetDeviceTrustProviderType()
{
return this._deviceTrustProviderType != null;
}
///
/// Gets and sets the property OidcOptions.
///
/// The options for a OpenID Connect-compatible user-identity trust provider. This parameter
/// is required when the provider type is user
.
///
///
public CreateVerifiedAccessTrustProviderOidcOptions OidcOptions
{
get { return this._oidcOptions; }
set { this._oidcOptions = value; }
}
// Check to see if OidcOptions property is set
internal bool IsSetOidcOptions()
{
return this._oidcOptions != null;
}
///
/// Gets and sets the property PolicyReferenceName.
///
/// The identifier to be used when working with policy rules.
///
///
[AWSProperty(Required=true)]
public string PolicyReferenceName
{
get { return this._policyReferenceName; }
set { this._policyReferenceName = value; }
}
// Check to see if PolicyReferenceName property is set
internal bool IsSetPolicyReferenceName()
{
return this._policyReferenceName != null;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to assign to the Verified Access trust provider.
///
///
public List TagSpecifications
{
get { return this._tagSpecifications; }
set { this._tagSpecifications = value; }
}
// Check to see if TagSpecifications property is set
internal bool IsSetTagSpecifications()
{
return this._tagSpecifications != null && this._tagSpecifications.Count > 0;
}
///
/// Gets and sets the property TrustProviderType.
///
/// The type of trust provider.
///
///
[AWSProperty(Required=true)]
public TrustProviderType TrustProviderType
{
get { return this._trustProviderType; }
set { this._trustProviderType = value; }
}
// Check to see if TrustProviderType property is set
internal bool IsSetTrustProviderType()
{
return this._trustProviderType != null;
}
///
/// Gets and sets the property UserTrustProviderType.
///
/// The type of user-based trust provider. This parameter is required when the provider
/// type is user
.
///
///
public UserTrustProviderType UserTrustProviderType
{
get { return this._userTrustProviderType; }
set { this._userTrustProviderType = value; }
}
// Check to see if UserTrustProviderType property is set
internal bool IsSetUserTrustProviderType()
{
return this._userTrustProviderType != null;
}
}
}