/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace AppSync { namespace Model { /** *

Describes an API key.

Customers invoke AWS AppSync GraphQL API * operations with API keys as an identity mechanism. There are two key * versions:

da1: This version was introduced at launch in November * 2017. These keys always expire after 7 days. Key expiration is managed by Amazon * DynamoDB TTL. The keys ceased to be valid after February 21, 2018 and should not * be used after that date.

  • ListApiKeys returns the * expiration time in milliseconds.

  • CreateApiKey * returns the expiration time in milliseconds.

  • * UpdateApiKey is not available for this key version.

  • *

    DeleteApiKey deletes the item from the table.

  • *

    Expiration is stored in Amazon DynamoDB as milliseconds. This results in a * bug where keys are not automatically deleted because DynamoDB expects the TTL to * be stored in seconds. As a one-time action, we will delete these keys from the * table after February 21, 2018.

da2: This version was * introduced in February 2018 when AppSync added support to extend key * expiration.

  • ListApiKeys returns the expiration * time in seconds.

  • CreateApiKey returns the * expiration time in seconds and accepts a user-provided expiration time in * seconds.

  • UpdateApiKey returns the expiration * time in seconds and accepts a user-provided expiration time in seconds. Key * expiration can only be updated while the key has not expired.

  • * DeleteApiKey deletes the item from the table.

  • *

    Expiration is stored in Amazon DynamoDB as seconds.

See * Also:

AWS API * Reference

*/ class AWS_APPSYNC_API ApiKey { public: ApiKey(); ApiKey(Aws::Utils::Json::JsonView jsonValue); ApiKey& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

The API key ID.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The API key ID.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The API key ID.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The API key ID.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The API key ID.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The API key ID.

*/ inline ApiKey& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The API key ID.

*/ inline ApiKey& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The API key ID.

*/ inline ApiKey& WithId(const char* value) { SetId(value); return *this;} /** *

A description of the purpose of the API key.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description of the purpose of the API key.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description of the purpose of the API key.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description of the purpose of the API key.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description of the purpose of the API key.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description of the purpose of the API key.

*/ inline ApiKey& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the purpose of the API key.

*/ inline ApiKey& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description of the purpose of the API key.

*/ inline ApiKey& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The time after which the API key expires. The date is represented as seconds * since the epoch, rounded down to the nearest hour.

*/ inline long long GetExpires() const{ return m_expires; } /** *

The time after which the API key expires. The date is represented as seconds * since the epoch, rounded down to the nearest hour.

*/ inline bool ExpiresHasBeenSet() const { return m_expiresHasBeenSet; } /** *

The time after which the API key expires. The date is represented as seconds * since the epoch, rounded down to the nearest hour.

*/ inline void SetExpires(long long value) { m_expiresHasBeenSet = true; m_expires = value; } /** *

The time after which the API key expires. The date is represented as seconds * since the epoch, rounded down to the nearest hour.

*/ inline ApiKey& WithExpires(long long value) { SetExpires(value); return *this;} private: Aws::String m_id; bool m_idHasBeenSet; Aws::String m_description; bool m_descriptionHasBeenSet; long long m_expires; bool m_expiresHasBeenSet; }; } // namespace Model } // namespace AppSync } // namespace Aws