/** * 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 Macie2 { namespace Model { /** *

Specifies the location of an occurrence of sensitive data in an Apache Avro * object container, Apache Parquet file, JSON file, or JSON Lines * file.

See Also:

AWS API * Reference

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

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline const Aws::String& GetJsonPath() const{ return m_jsonPath; } /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline bool JsonPathHasBeenSet() const { return m_jsonPathHasBeenSet; } /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline void SetJsonPath(const Aws::String& value) { m_jsonPathHasBeenSet = true; m_jsonPath = value; } /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline void SetJsonPath(Aws::String&& value) { m_jsonPathHasBeenSet = true; m_jsonPath = std::move(value); } /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline void SetJsonPath(const char* value) { m_jsonPathHasBeenSet = true; m_jsonPath.assign(value); } /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline Record& WithJsonPath(const Aws::String& value) { SetJsonPath(value); return *this;} /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline Record& WithJsonPath(Aws::String&& value) { SetJsonPath(std::move(value)); return *this;} /** *

The path, as a JSONPath expression, to the sensitive data. For an Avro object * container or Parquet file, this is the path to the field in the record * (recordIndex) that contains the data. For a JSON or JSON Lines file, this is the * path to the field or array that contains the data. If the data is a value in an * array, the path also indicates which value contains the data.

If Amazon * Macie detects sensitive data in the name of any element in the path, Macie omits * this field. If the name of an element exceeds 20 characters, Macie truncates the * name by removing characters from the beginning of the name. If the resulting * full path exceeds 250 characters, Macie also truncates the path, starting with * the first element in the path, until the path contains 250 or fewer * characters.

*/ inline Record& WithJsonPath(const char* value) { SetJsonPath(value); return *this;} /** *

For an Avro object container or Parquet file, the record index, starting from * 0, for the record that contains the sensitive data. For a JSON Lines file, the * line index, starting from 0, for the line that contains the sensitive data. This * value is always 0 for JSON files.

*/ inline long long GetRecordIndex() const{ return m_recordIndex; } /** *

For an Avro object container or Parquet file, the record index, starting from * 0, for the record that contains the sensitive data. For a JSON Lines file, the * line index, starting from 0, for the line that contains the sensitive data. This * value is always 0 for JSON files.

*/ inline bool RecordIndexHasBeenSet() const { return m_recordIndexHasBeenSet; } /** *

For an Avro object container or Parquet file, the record index, starting from * 0, for the record that contains the sensitive data. For a JSON Lines file, the * line index, starting from 0, for the line that contains the sensitive data. This * value is always 0 for JSON files.

*/ inline void SetRecordIndex(long long value) { m_recordIndexHasBeenSet = true; m_recordIndex = value; } /** *

For an Avro object container or Parquet file, the record index, starting from * 0, for the record that contains the sensitive data. For a JSON Lines file, the * line index, starting from 0, for the line that contains the sensitive data. This * value is always 0 for JSON files.

*/ inline Record& WithRecordIndex(long long value) { SetRecordIndex(value); return *this;} private: Aws::String m_jsonPath; bool m_jsonPathHasBeenSet = false; long long m_recordIndex; bool m_recordIndexHasBeenSet = false; }; } // namespace Model } // namespace Macie2 } // namespace Aws