/*
* 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 appsync-2017-07-25.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.AppSync.Model
{
///
/// Container for the parameters to the CreateGraphqlApi operation.
/// Creates a GraphqlApi
object.
///
public partial class CreateGraphqlApiRequest : AmazonAppSyncRequest
{
private List _additionalAuthenticationProviders = new List();
private GraphQLApiType _apiType;
private AuthenticationType _authenticationType;
private LambdaAuthorizerConfig _lambdaAuthorizerConfig;
private LogConfig _logConfig;
private string _mergedApiExecutionRoleArn;
private string _name;
private OpenIDConnectConfig _openidConnectConfig;
private string _ownerContact;
private Dictionary _tags = new Dictionary();
private UserPoolConfig _userPoolConfig;
private GraphQLApiVisibility _visibility;
private bool? _xrayEnabled;
///
/// Gets and sets the property AdditionalAuthenticationProviders.
///
/// A list of additional authentication providers for the GraphqlApi
API.
///
///
public List AdditionalAuthenticationProviders
{
get { return this._additionalAuthenticationProviders; }
set { this._additionalAuthenticationProviders = value; }
}
// Check to see if AdditionalAuthenticationProviders property is set
internal bool IsSetAdditionalAuthenticationProviders()
{
return this._additionalAuthenticationProviders != null && this._additionalAuthenticationProviders.Count > 0;
}
///
/// Gets and sets the property ApiType.
///
/// The value that indicates whether the GraphQL API is a standard API (GRAPHQL
)
/// or merged API (MERGED
).
///
///
public GraphQLApiType ApiType
{
get { return this._apiType; }
set { this._apiType = value; }
}
// Check to see if ApiType property is set
internal bool IsSetApiType()
{
return this._apiType != null;
}
///
/// Gets and sets the property AuthenticationType.
///
/// The authentication type: API key, Identity and Access Management (IAM), OpenID Connect
/// (OIDC), Amazon Cognito user pools, or Lambda.
///
///
[AWSProperty(Required=true)]
public AuthenticationType AuthenticationType
{
get { return this._authenticationType; }
set { this._authenticationType = value; }
}
// Check to see if AuthenticationType property is set
internal bool IsSetAuthenticationType()
{
return this._authenticationType != null;
}
///
/// Gets and sets the property LambdaAuthorizerConfig.
///
/// Configuration for Lambda function authorization.
///
///
public LambdaAuthorizerConfig LambdaAuthorizerConfig
{
get { return this._lambdaAuthorizerConfig; }
set { this._lambdaAuthorizerConfig = value; }
}
// Check to see if LambdaAuthorizerConfig property is set
internal bool IsSetLambdaAuthorizerConfig()
{
return this._lambdaAuthorizerConfig != null;
}
///
/// Gets and sets the property LogConfig.
///
/// The Amazon CloudWatch Logs configuration.
///
///
public LogConfig LogConfig
{
get { return this._logConfig; }
set { this._logConfig = value; }
}
// Check to see if LogConfig property is set
internal bool IsSetLogConfig()
{
return this._logConfig != null;
}
///
/// Gets and sets the property MergedApiExecutionRoleArn.
///
/// The Identity and Access Management service role ARN for a merged API. The AppSync
/// service assumes this role on behalf of the Merged API to validate access to source
/// APIs at runtime and to prompt the AUTO_MERGE
to update the merged API
/// endpoint with the source API changes automatically.
///
///
public string MergedApiExecutionRoleArn
{
get { return this._mergedApiExecutionRoleArn; }
set { this._mergedApiExecutionRoleArn = value; }
}
// Check to see if MergedApiExecutionRoleArn property is set
internal bool IsSetMergedApiExecutionRoleArn()
{
return this._mergedApiExecutionRoleArn != null;
}
///
/// Gets and sets the property Name.
///
/// A user-supplied name for the GraphqlApi
.
///
///
[AWSProperty(Required=true)]
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 OpenIDConnectConfig.
///
/// The OIDC configuration.
///
///
public OpenIDConnectConfig OpenIDConnectConfig
{
get { return this._openidConnectConfig; }
set { this._openidConnectConfig = value; }
}
// Check to see if OpenIDConnectConfig property is set
internal bool IsSetOpenIDConnectConfig()
{
return this._openidConnectConfig != null;
}
///
/// Gets and sets the property OwnerContact.
///
/// The owner contact information for an API resource.
///
///
///
/// This field accepts any string input with a length of 0 - 256 characters.
///
///
public string OwnerContact
{
get { return this._ownerContact; }
set { this._ownerContact = value; }
}
// Check to see if OwnerContact property is set
internal bool IsSetOwnerContact()
{
return this._ownerContact != null;
}
///
/// Gets and sets the property Tags.
///
/// A TagMap
object.
///
///
[AWSProperty(Min=1, Max=50)]
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;
}
///
/// Gets and sets the property UserPoolConfig.
///
/// The Amazon Cognito user pool configuration.
///
///
public UserPoolConfig UserPoolConfig
{
get { return this._userPoolConfig; }
set { this._userPoolConfig = value; }
}
// Check to see if UserPoolConfig property is set
internal bool IsSetUserPoolConfig()
{
return this._userPoolConfig != null;
}
///
/// Gets and sets the property Visibility.
///
/// Sets the value of the GraphQL API to public (GLOBAL
) or private (PRIVATE
).
/// If no value is provided, the visibility will be set to GLOBAL
by default.
/// This value cannot be changed once the API has been created.
///
///
public GraphQLApiVisibility Visibility
{
get { return this._visibility; }
set { this._visibility = value; }
}
// Check to see if Visibility property is set
internal bool IsSetVisibility()
{
return this._visibility != null;
}
///
/// Gets and sets the property XrayEnabled.
///
/// A flag indicating whether to use X-Ray tracing for the GraphqlApi
.
///
///
public bool XrayEnabled
{
get { return this._xrayEnabled.GetValueOrDefault(); }
set { this._xrayEnabled = value; }
}
// Check to see if XrayEnabled property is set
internal bool IsSetXrayEnabled()
{
return this._xrayEnabled.HasValue;
}
}
}