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

The structure representing the getProfileRequest.

See Also:

* AWS * API Reference

*/ class GetProfileRequest : public CodeGuruProfilerRequest { public: AWS_CODEGURUPROFILER_API GetProfileRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "GetProfile"; } AWS_CODEGURUPROFILER_API Aws::String SerializePayload() const override; AWS_CODEGURUPROFILER_API void AddQueryStringParameters(Aws::Http::URI& uri) const override; AWS_CODEGURUPROFILER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline const Aws::String& GetAccept() const{ return m_accept; } /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline bool AcceptHasBeenSet() const { return m_acceptHasBeenSet; } /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline void SetAccept(const Aws::String& value) { m_acceptHasBeenSet = true; m_accept = value; } /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline void SetAccept(Aws::String&& value) { m_acceptHasBeenSet = true; m_accept = std::move(value); } /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline void SetAccept(const char* value) { m_acceptHasBeenSet = true; m_accept.assign(value); } /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline GetProfileRequest& WithAccept(const Aws::String& value) { SetAccept(value); return *this;} /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline GetProfileRequest& WithAccept(Aws::String&& value) { SetAccept(std::move(value)); return *this;} /** *

The format of the returned profiling data. The format maps to the * Accept and Content-Type headers of the HTTP request. * You can specify one of the following: or the default .


     * <ul> <li> <p> <code>application/json</code> —
     * standard JSON format </p> </li> <li> <p>
     * <code>application/x-amzn-ion</code> — the Amazon Ion data format.
     * For more information, see <a
     * href="http://amzn.github.io/ion-docs/">Amazon Ion</a>.
     * </p> </li> </ul> 
*/ inline GetProfileRequest& WithAccept(const char* value) { SetAccept(value); return *this;} /** *

The end time of the requested profile. Specify using the ISO 8601 format. * For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

If you specify endTime, then you must also * specify period or startTime, but not both.

*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } /** *

The end time of the requested profile. Specify using the ISO 8601 format. * For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

If you specify endTime, then you must also * specify period or startTime, but not both.

*/ inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *

The end time of the requested profile. Specify using the ISO 8601 format. * For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

If you specify endTime, then you must also * specify period or startTime, but not both.

*/ inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *

The end time of the requested profile. Specify using the ISO 8601 format. * For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

If you specify endTime, then you must also * specify period or startTime, but not both.

*/ inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *

The end time of the requested profile. Specify using the ISO 8601 format. * For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

If you specify endTime, then you must also * specify period or startTime, but not both.

*/ inline GetProfileRequest& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

The end time of the requested profile. Specify using the ISO 8601 format. * For example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

If you specify endTime, then you must also * specify period or startTime, but not both.

*/ inline GetProfileRequest& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} /** *

The maximum depth of the stacks in the code that is represented in the * aggregated profile. For example, if CodeGuru Profiler finds a method * A, which calls method B, which calls method * C, which calls method D, then the depth is 4. If the * maxDepth is set to 2, then the aggregated profile contains * representations of methods A and B.

*/ inline int GetMaxDepth() const{ return m_maxDepth; } /** *

The maximum depth of the stacks in the code that is represented in the * aggregated profile. For example, if CodeGuru Profiler finds a method * A, which calls method B, which calls method * C, which calls method D, then the depth is 4. If the * maxDepth is set to 2, then the aggregated profile contains * representations of methods A and B.

*/ inline bool MaxDepthHasBeenSet() const { return m_maxDepthHasBeenSet; } /** *

The maximum depth of the stacks in the code that is represented in the * aggregated profile. For example, if CodeGuru Profiler finds a method * A, which calls method B, which calls method * C, which calls method D, then the depth is 4. If the * maxDepth is set to 2, then the aggregated profile contains * representations of methods A and B.

*/ inline void SetMaxDepth(int value) { m_maxDepthHasBeenSet = true; m_maxDepth = value; } /** *

The maximum depth of the stacks in the code that is represented in the * aggregated profile. For example, if CodeGuru Profiler finds a method * A, which calls method B, which calls method * C, which calls method D, then the depth is 4. If the * maxDepth is set to 2, then the aggregated profile contains * representations of methods A and B.

*/ inline GetProfileRequest& WithMaxDepth(int value) { SetMaxDepth(value); return *this;} /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline const Aws::String& GetPeriod() const{ return m_period; } /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; } /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline void SetPeriod(const Aws::String& value) { m_periodHasBeenSet = true; m_period = value; } /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline void SetPeriod(Aws::String&& value) { m_periodHasBeenSet = true; m_period = std::move(value); } /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline void SetPeriod(const char* value) { m_periodHasBeenSet = true; m_period.assign(value); } /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline GetProfileRequest& WithPeriod(const Aws::String& value) { SetPeriod(value); return *this;} /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline GetProfileRequest& WithPeriod(Aws::String&& value) { SetPeriod(std::move(value)); return *this;} /** *

Used with startTime or endTime to specify the time * range for the returned aggregated profile. Specify using the ISO 8601 format. * For example, P1DT1H1M1S.

 <p> To get the
     * latest aggregated profile, specify only <code>period</code>.
     * </p> 
*/ inline GetProfileRequest& WithPeriod(const char* value) { SetPeriod(value); return *this;} /** *

The name of the profiling group to get.

*/ inline const Aws::String& GetProfilingGroupName() const{ return m_profilingGroupName; } /** *

The name of the profiling group to get.

*/ inline bool ProfilingGroupNameHasBeenSet() const { return m_profilingGroupNameHasBeenSet; } /** *

The name of the profiling group to get.

*/ inline void SetProfilingGroupName(const Aws::String& value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName = value; } /** *

The name of the profiling group to get.

*/ inline void SetProfilingGroupName(Aws::String&& value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName = std::move(value); } /** *

The name of the profiling group to get.

*/ inline void SetProfilingGroupName(const char* value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName.assign(value); } /** *

The name of the profiling group to get.

*/ inline GetProfileRequest& WithProfilingGroupName(const Aws::String& value) { SetProfilingGroupName(value); return *this;} /** *

The name of the profiling group to get.

*/ inline GetProfileRequest& WithProfilingGroupName(Aws::String&& value) { SetProfilingGroupName(std::move(value)); return *this;} /** *

The name of the profiling group to get.

*/ inline GetProfileRequest& WithProfilingGroupName(const char* value) { SetProfilingGroupName(value); return *this;} /** *

The start time of the profile to get. Specify using the ISO 8601 format. For * example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

 <p> If you specify
     * <code>startTime</code>, then you must also specify
     * <code>period</code> or <code>endTime</code>, but not
     * both. </p> 
*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The start time of the profile to get. Specify using the ISO 8601 format. For * example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

 <p> If you specify
     * <code>startTime</code>, then you must also specify
     * <code>period</code> or <code>endTime</code>, but not
     * both. </p> 
*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The start time of the profile to get. Specify using the ISO 8601 format. For * example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

 <p> If you specify
     * <code>startTime</code>, then you must also specify
     * <code>period</code> or <code>endTime</code>, but not
     * both. </p> 
*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The start time of the profile to get. Specify using the ISO 8601 format. For * example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

 <p> If you specify
     * <code>startTime</code>, then you must also specify
     * <code>period</code> or <code>endTime</code>, but not
     * both. </p> 
*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The start time of the profile to get. Specify using the ISO 8601 format. For * example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

 <p> If you specify
     * <code>startTime</code>, then you must also specify
     * <code>period</code> or <code>endTime</code>, but not
     * both. </p> 
*/ inline GetProfileRequest& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The start time of the profile to get. Specify using the ISO 8601 format. For * example, 2020-06-01T13:15:02.001Z represents 1 millisecond past June 1, 2020 * 1:15:02 PM UTC.

 <p> If you specify
     * <code>startTime</code>, then you must also specify
     * <code>period</code> or <code>endTime</code>, but not
     * both. </p> 
*/ inline GetProfileRequest& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} private: Aws::String m_accept; bool m_acceptHasBeenSet = false; Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet = false; int m_maxDepth; bool m_maxDepthHasBeenSet = false; Aws::String m_period; bool m_periodHasBeenSet = false; Aws::String m_profilingGroupName; bool m_profilingGroupNameHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; }; } // namespace Model } // namespace CodeGuruProfiler } // namespace Aws