/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace ACMPCA
{
namespace Model
{
/**
* Specifies additional purposes for which the certified public key may be used
* other than basic purposes indicated in the KeyUsage
* extension.
See Also:
AWS
* API Reference
*/
class ExtendedKeyUsage
{
public:
AWS_ACMPCA_API ExtendedKeyUsage();
AWS_ACMPCA_API ExtendedKeyUsage(Aws::Utils::Json::JsonView jsonValue);
AWS_ACMPCA_API ExtendedKeyUsage& operator=(Aws::Utils::Json::JsonView jsonValue);
AWS_ACMPCA_API Aws::Utils::Json::JsonValue Jsonize() const;
/**
* Specifies a standard ExtendedKeyUsage
as defined as in RFC
* 5280.
*/
inline const ExtendedKeyUsageType& GetExtendedKeyUsageType() const{ return m_extendedKeyUsageType; }
/**
* Specifies a standard ExtendedKeyUsage
as defined as in RFC
* 5280.
*/
inline bool ExtendedKeyUsageTypeHasBeenSet() const { return m_extendedKeyUsageTypeHasBeenSet; }
/**
* Specifies a standard ExtendedKeyUsage
as defined as in RFC
* 5280.
*/
inline void SetExtendedKeyUsageType(const ExtendedKeyUsageType& value) { m_extendedKeyUsageTypeHasBeenSet = true; m_extendedKeyUsageType = value; }
/**
* Specifies a standard ExtendedKeyUsage
as defined as in RFC
* 5280.
*/
inline void SetExtendedKeyUsageType(ExtendedKeyUsageType&& value) { m_extendedKeyUsageTypeHasBeenSet = true; m_extendedKeyUsageType = std::move(value); }
/**
* Specifies a standard ExtendedKeyUsage
as defined as in RFC
* 5280.
*/
inline ExtendedKeyUsage& WithExtendedKeyUsageType(const ExtendedKeyUsageType& value) { SetExtendedKeyUsageType(value); return *this;}
/**
* Specifies a standard ExtendedKeyUsage
as defined as in RFC
* 5280.
*/
inline ExtendedKeyUsage& WithExtendedKeyUsageType(ExtendedKeyUsageType&& value) { SetExtendedKeyUsageType(std::move(value)); return *this;}
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline const Aws::String& GetExtendedKeyUsageObjectIdentifier() const{ return m_extendedKeyUsageObjectIdentifier; }
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline bool ExtendedKeyUsageObjectIdentifierHasBeenSet() const { return m_extendedKeyUsageObjectIdentifierHasBeenSet; }
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline void SetExtendedKeyUsageObjectIdentifier(const Aws::String& value) { m_extendedKeyUsageObjectIdentifierHasBeenSet = true; m_extendedKeyUsageObjectIdentifier = value; }
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline void SetExtendedKeyUsageObjectIdentifier(Aws::String&& value) { m_extendedKeyUsageObjectIdentifierHasBeenSet = true; m_extendedKeyUsageObjectIdentifier = std::move(value); }
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline void SetExtendedKeyUsageObjectIdentifier(const char* value) { m_extendedKeyUsageObjectIdentifierHasBeenSet = true; m_extendedKeyUsageObjectIdentifier.assign(value); }
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline ExtendedKeyUsage& WithExtendedKeyUsageObjectIdentifier(const Aws::String& value) { SetExtendedKeyUsageObjectIdentifier(value); return *this;}
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline ExtendedKeyUsage& WithExtendedKeyUsageObjectIdentifier(Aws::String&& value) { SetExtendedKeyUsageObjectIdentifier(std::move(value)); return *this;}
/**
* Specifies a custom ExtendedKeyUsage
with an object identifier
* (OID).
*/
inline ExtendedKeyUsage& WithExtendedKeyUsageObjectIdentifier(const char* value) { SetExtendedKeyUsageObjectIdentifier(value); return *this;}
private:
ExtendedKeyUsageType m_extendedKeyUsageType;
bool m_extendedKeyUsageTypeHasBeenSet = false;
Aws::String m_extendedKeyUsageObjectIdentifier;
bool m_extendedKeyUsageObjectIdentifierHasBeenSet = false;
};
} // namespace Model
} // namespace ACMPCA
} // namespace Aws