@Generated(value="OracleSDKGenerator", comments="API Version: 20210630") public class DevopsPaginators extends Object
Collection of helper methods that can be used to provide an Iterable
interface
to any list operations of Devops where multiple pages of data may be fetched. Two styles of
iteration are supported:
These iterables abstract away the need to write code to manually handle pagination via looping and using the page tokens. They will automatically fetch more data from the service when required.
As an example, if we were using the ListUsers operation in IdentityService, then the Iterable
returned by calling a ResponseIterator method would iterate over the
ListUsersResponse objects returned by each ListUsers call, whereas the Iterable
returned by calling a RecordIterator method would iterate over the User records and we don't have
to deal with ListUsersResponse objects at all. In either case, pagination will be automatically
handled so we can iterate until there are no more responses or no more resources/records
available.
Constructor and Description |
---|
DevopsPaginators(Devops client) |
Modifier and Type | Method and Description |
---|---|
Iterable<RepositoryAuthorSummary> |
listAuthorsRecordIterator(ListAuthorsRequest request)
Creates a new iterable which will iterate over the
RepositoryAuthorSummary objects contained in responses from the
listAuthors operation. |
Iterable<ListAuthorsResponse> |
listAuthorsResponseIterator(ListAuthorsRequest request)
Creates a new iterable which will iterate over the responses received from the listAuthors
operation.
|
Iterable<BuildPipelineSummary> |
listBuildPipelinesRecordIterator(ListBuildPipelinesRequest request)
Creates a new iterable which will iterate over the
BuildPipelineSummary objects contained in responses from the
listBuildPipelines operation. |
Iterable<ListBuildPipelinesResponse> |
listBuildPipelinesResponseIterator(ListBuildPipelinesRequest request)
Creates a new iterable which will iterate over the responses received from the
listBuildPipelines operation.
|
Iterable<BuildPipelineStageSummary> |
listBuildPipelineStagesRecordIterator(ListBuildPipelineStagesRequest request)
Creates a new iterable which will iterate over the
BuildPipelineStageSummary objects contained in responses from
the listBuildPipelineStages operation. |
Iterable<ListBuildPipelineStagesResponse> |
listBuildPipelineStagesResponseIterator(ListBuildPipelineStagesRequest request)
Creates a new iterable which will iterate over the responses received from the
listBuildPipelineStages operation.
|
Iterable<BuildRunSummary> |
listBuildRunsRecordIterator(ListBuildRunsRequest request)
Creates a new iterable which will iterate over the
BuildRunSummary objects contained in responses from the
listBuildRuns operation. |
Iterable<ListBuildRunsResponse> |
listBuildRunsResponseIterator(ListBuildRunsRequest request)
Creates a new iterable which will iterate over the responses received from the listBuildRuns
operation.
|
Iterable<DiffSummary> |
listCommitDiffsRecordIterator(ListCommitDiffsRequest request)
Creates a new iterable which will iterate over the
DiffSummary objects contained in responses from the
listCommitDiffs operation. |
Iterable<ListCommitDiffsResponse> |
listCommitDiffsResponseIterator(ListCommitDiffsRequest request)
Creates a new iterable which will iterate over the responses received from the
listCommitDiffs operation.
|
Iterable<RepositoryCommitSummary> |
listCommitsRecordIterator(ListCommitsRequest request)
Creates a new iterable which will iterate over the
RepositoryCommitSummary objects contained in responses from the
listCommits operation. |
Iterable<ListCommitsResponse> |
listCommitsResponseIterator(ListCommitsRequest request)
Creates a new iterable which will iterate over the responses received from the listCommits
operation.
|
Iterable<ConnectionSummary> |
listConnectionsRecordIterator(ListConnectionsRequest request)
Creates a new iterable which will iterate over the
ConnectionSummary objects contained in responses from the
listConnections operation. |
Iterable<ListConnectionsResponse> |
listConnectionsResponseIterator(ListConnectionsRequest request)
Creates a new iterable which will iterate over the responses received from the
listConnections operation.
|
Iterable<DeployArtifactSummary> |
listDeployArtifactsRecordIterator(ListDeployArtifactsRequest request)
Creates a new iterable which will iterate over the
DeployArtifactSummary objects contained in responses from the
listDeployArtifacts operation. |
Iterable<ListDeployArtifactsResponse> |
listDeployArtifactsResponseIterator(ListDeployArtifactsRequest request)
Creates a new iterable which will iterate over the responses received from the
listDeployArtifacts operation.
|
Iterable<DeployEnvironmentSummary> |
listDeployEnvironmentsRecordIterator(ListDeployEnvironmentsRequest request)
Creates a new iterable which will iterate over the
DeployEnvironmentSummary objects contained in responses from the
listDeployEnvironments operation. |
Iterable<ListDeployEnvironmentsResponse> |
listDeployEnvironmentsResponseIterator(ListDeployEnvironmentsRequest request)
Creates a new iterable which will iterate over the responses received from the
listDeployEnvironments operation.
|
Iterable<DeploymentSummary> |
listDeploymentsRecordIterator(ListDeploymentsRequest request)
Creates a new iterable which will iterate over the
DeploymentSummary objects contained in responses from the
listDeployments operation. |
Iterable<ListDeploymentsResponse> |
listDeploymentsResponseIterator(ListDeploymentsRequest request)
Creates a new iterable which will iterate over the responses received from the
listDeployments operation.
|
Iterable<DeployPipelineSummary> |
listDeployPipelinesRecordIterator(ListDeployPipelinesRequest request)
Creates a new iterable which will iterate over the
DeployPipelineSummary objects contained in responses from the
listDeployPipelines operation. |
Iterable<ListDeployPipelinesResponse> |
listDeployPipelinesResponseIterator(ListDeployPipelinesRequest request)
Creates a new iterable which will iterate over the responses received from the
listDeployPipelines operation.
|
Iterable<DeployStageSummary> |
listDeployStagesRecordIterator(ListDeployStagesRequest request)
Creates a new iterable which will iterate over the
DeployStageSummary objects contained in responses from the
listDeployStages operation. |
Iterable<ListDeployStagesResponse> |
listDeployStagesResponseIterator(ListDeployStagesRequest request)
Creates a new iterable which will iterate over the responses received from the
listDeployStages operation.
|
Iterable<RepositoryMirrorRecordSummary> |
listMirrorRecordsRecordIterator(ListMirrorRecordsRequest request)
Creates a new iterable which will iterate over the
RepositoryMirrorRecordSummary objects contained in responses
from the listMirrorRecords operation. |
Iterable<ListMirrorRecordsResponse> |
listMirrorRecordsResponseIterator(ListMirrorRecordsRequest request)
Creates a new iterable which will iterate over the responses received from the
listMirrorRecords operation.
|
Iterable<RepositoryPathSummary> |
listPathsRecordIterator(ListPathsRequest request)
Creates a new iterable which will iterate over the
RepositoryPathSummary objects contained in responses from the
listPaths operation. |
Iterable<ListPathsResponse> |
listPathsResponseIterator(ListPathsRequest request)
Creates a new iterable which will iterate over the responses received from the listPaths
operation.
|
Iterable<ProjectSummary> |
listProjectsRecordIterator(ListProjectsRequest request)
Creates a new iterable which will iterate over the
ProjectSummary objects contained in responses from the
listProjects operation. |
Iterable<ListProjectsResponse> |
listProjectsResponseIterator(ListProjectsRequest request)
Creates a new iterable which will iterate over the responses received from the listProjects
operation.
|
Iterable<RepositoryRefSummary> |
listRefsRecordIterator(ListRefsRequest request)
Creates a new iterable which will iterate over the
RepositoryRefSummary objects contained in responses from the
listRefs operation. |
Iterable<ListRefsResponse> |
listRefsResponseIterator(ListRefsRequest request)
Creates a new iterable which will iterate over the responses received from the listRefs
operation.
|
Iterable<RepositorySummary> |
listRepositoriesRecordIterator(ListRepositoriesRequest request)
Creates a new iterable which will iterate over the
RepositorySummary objects contained in responses from the
listRepositories operation. |
Iterable<ListRepositoriesResponse> |
listRepositoriesResponseIterator(ListRepositoriesRequest request)
Creates a new iterable which will iterate over the responses received from the
listRepositories operation.
|
Iterable<TriggerSummary> |
listTriggersRecordIterator(ListTriggersRequest request)
Creates a new iterable which will iterate over the
TriggerSummary objects contained in responses from the
listTriggers operation. |
Iterable<ListTriggersResponse> |
listTriggersResponseIterator(ListTriggersRequest request)
Creates a new iterable which will iterate over the responses received from the listTriggers
operation.
|
Iterable<WorkRequestError> |
listWorkRequestErrorsRecordIterator(ListWorkRequestErrorsRequest request)
Creates a new iterable which will iterate over the
WorkRequestError objects contained in responses from the
listWorkRequestErrors operation. |
Iterable<ListWorkRequestErrorsResponse> |
listWorkRequestErrorsResponseIterator(ListWorkRequestErrorsRequest request)
Creates a new iterable which will iterate over the responses received from the
listWorkRequestErrors operation.
|
Iterable<WorkRequestLogEntry> |
listWorkRequestLogsRecordIterator(ListWorkRequestLogsRequest request)
Creates a new iterable which will iterate over the
WorkRequestLogEntry objects contained in responses from the
listWorkRequestLogs operation. |
Iterable<ListWorkRequestLogsResponse> |
listWorkRequestLogsResponseIterator(ListWorkRequestLogsRequest request)
Creates a new iterable which will iterate over the responses received from the
listWorkRequestLogs operation.
|
Iterable<WorkRequestSummary> |
listWorkRequestsRecordIterator(ListWorkRequestsRequest request)
Creates a new iterable which will iterate over the
WorkRequestSummary objects contained in responses from the
listWorkRequests operation. |
Iterable<ListWorkRequestsResponse> |
listWorkRequestsResponseIterator(ListWorkRequestsRequest request)
Creates a new iterable which will iterate over the responses received from the
listWorkRequests operation.
|
public DevopsPaginators(Devops client)
public Iterable<ListAuthorsResponse> listAuthorsResponseIterator(ListAuthorsRequest request)
Creates a new iterable which will iterate over the responses received from the listAuthors operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<RepositoryAuthorSummary> listAuthorsRecordIterator(ListAuthorsRequest request)
Creates a new iterable which will iterate over the RepositoryAuthorSummary
objects contained in responses from the
listAuthors operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the RepositoryAuthorSummary
objects contained in responses
received from the service.public Iterable<ListBuildPipelineStagesResponse> listBuildPipelineStagesResponseIterator(ListBuildPipelineStagesRequest request)
Creates a new iterable which will iterate over the responses received from the listBuildPipelineStages operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<BuildPipelineStageSummary> listBuildPipelineStagesRecordIterator(ListBuildPipelineStagesRequest request)
Creates a new iterable which will iterate over the BuildPipelineStageSummary
objects contained in responses from
the listBuildPipelineStages operation. This iterable will fetch more data from the server as
needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the BuildPipelineStageSummary
objects contained in responses
received from the service.public Iterable<ListBuildPipelinesResponse> listBuildPipelinesResponseIterator(ListBuildPipelinesRequest request)
Creates a new iterable which will iterate over the responses received from the listBuildPipelines operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<BuildPipelineSummary> listBuildPipelinesRecordIterator(ListBuildPipelinesRequest request)
Creates a new iterable which will iterate over the BuildPipelineSummary
objects contained in responses from the
listBuildPipelines operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the BuildPipelineSummary
objects contained in responses received
from the service.public Iterable<ListBuildRunsResponse> listBuildRunsResponseIterator(ListBuildRunsRequest request)
Creates a new iterable which will iterate over the responses received from the listBuildRuns operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<BuildRunSummary> listBuildRunsRecordIterator(ListBuildRunsRequest request)
Creates a new iterable which will iterate over the BuildRunSummary
objects contained in responses from the
listBuildRuns operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the BuildRunSummary
objects contained in responses received from
the service.public Iterable<ListCommitDiffsResponse> listCommitDiffsResponseIterator(ListCommitDiffsRequest request)
Creates a new iterable which will iterate over the responses received from the listCommitDiffs operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<DiffSummary> listCommitDiffsRecordIterator(ListCommitDiffsRequest request)
Creates a new iterable which will iterate over the DiffSummary
objects contained in responses from the
listCommitDiffs operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the DiffSummary
objects contained in responses received from the
service.public Iterable<ListCommitsResponse> listCommitsResponseIterator(ListCommitsRequest request)
Creates a new iterable which will iterate over the responses received from the listCommits operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<RepositoryCommitSummary> listCommitsRecordIterator(ListCommitsRequest request)
Creates a new iterable which will iterate over the RepositoryCommitSummary
objects contained in responses from the
listCommits operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the RepositoryCommitSummary
objects contained in responses
received from the service.public Iterable<ListConnectionsResponse> listConnectionsResponseIterator(ListConnectionsRequest request)
Creates a new iterable which will iterate over the responses received from the listConnections operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<ConnectionSummary> listConnectionsRecordIterator(ListConnectionsRequest request)
Creates a new iterable which will iterate over the ConnectionSummary
objects contained in responses from the
listConnections operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the ConnectionSummary
objects contained in responses received
from the service.public Iterable<ListDeployArtifactsResponse> listDeployArtifactsResponseIterator(ListDeployArtifactsRequest request)
Creates a new iterable which will iterate over the responses received from the listDeployArtifacts operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<DeployArtifactSummary> listDeployArtifactsRecordIterator(ListDeployArtifactsRequest request)
Creates a new iterable which will iterate over the DeployArtifactSummary
objects contained in responses from the
listDeployArtifacts operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the DeployArtifactSummary
objects contained in responses
received from the service.public Iterable<ListDeployEnvironmentsResponse> listDeployEnvironmentsResponseIterator(ListDeployEnvironmentsRequest request)
Creates a new iterable which will iterate over the responses received from the listDeployEnvironments operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<DeployEnvironmentSummary> listDeployEnvironmentsRecordIterator(ListDeployEnvironmentsRequest request)
Creates a new iterable which will iterate over the DeployEnvironmentSummary
objects contained in responses from the
listDeployEnvironments operation. This iterable will fetch more data from the server as
needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the DeployEnvironmentSummary
objects contained in responses
received from the service.public Iterable<ListDeployPipelinesResponse> listDeployPipelinesResponseIterator(ListDeployPipelinesRequest request)
Creates a new iterable which will iterate over the responses received from the listDeployPipelines operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<DeployPipelineSummary> listDeployPipelinesRecordIterator(ListDeployPipelinesRequest request)
Creates a new iterable which will iterate over the DeployPipelineSummary
objects contained in responses from the
listDeployPipelines operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the DeployPipelineSummary
objects contained in responses
received from the service.public Iterable<ListDeployStagesResponse> listDeployStagesResponseIterator(ListDeployStagesRequest request)
Creates a new iterable which will iterate over the responses received from the listDeployStages operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<DeployStageSummary> listDeployStagesRecordIterator(ListDeployStagesRequest request)
Creates a new iterable which will iterate over the DeployStageSummary
objects contained in responses from the
listDeployStages operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the DeployStageSummary
objects contained in responses received
from the service.public Iterable<ListDeploymentsResponse> listDeploymentsResponseIterator(ListDeploymentsRequest request)
Creates a new iterable which will iterate over the responses received from the listDeployments operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<DeploymentSummary> listDeploymentsRecordIterator(ListDeploymentsRequest request)
Creates a new iterable which will iterate over the DeploymentSummary
objects contained in responses from the
listDeployments operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the DeploymentSummary
objects contained in responses received
from the service.public Iterable<ListMirrorRecordsResponse> listMirrorRecordsResponseIterator(ListMirrorRecordsRequest request)
Creates a new iterable which will iterate over the responses received from the listMirrorRecords operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<RepositoryMirrorRecordSummary> listMirrorRecordsRecordIterator(ListMirrorRecordsRequest request)
Creates a new iterable which will iterate over the RepositoryMirrorRecordSummary
objects contained in responses
from the listMirrorRecords operation. This iterable will fetch more data from the server as
needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the RepositoryMirrorRecordSummary
objects contained in responses
received from the service.public Iterable<ListPathsResponse> listPathsResponseIterator(ListPathsRequest request)
Creates a new iterable which will iterate over the responses received from the listPaths operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<RepositoryPathSummary> listPathsRecordIterator(ListPathsRequest request)
Creates a new iterable which will iterate over the RepositoryPathSummary
objects contained in responses from the
listPaths operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the RepositoryPathSummary
objects contained in responses
received from the service.public Iterable<ListProjectsResponse> listProjectsResponseIterator(ListProjectsRequest request)
Creates a new iterable which will iterate over the responses received from the listProjects operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<ProjectSummary> listProjectsRecordIterator(ListProjectsRequest request)
Creates a new iterable which will iterate over the ProjectSummary
objects contained in responses from the
listProjects operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the ProjectSummary
objects contained in responses received from
the service.public Iterable<ListRefsResponse> listRefsResponseIterator(ListRefsRequest request)
Creates a new iterable which will iterate over the responses received from the listRefs operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<RepositoryRefSummary> listRefsRecordIterator(ListRefsRequest request)
Creates a new iterable which will iterate over the RepositoryRefSummary
objects contained in responses from the
listRefs operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the RepositoryRefSummary
objects contained in responses received
from the service.public Iterable<ListRepositoriesResponse> listRepositoriesResponseIterator(ListRepositoriesRequest request)
Creates a new iterable which will iterate over the responses received from the listRepositories operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<RepositorySummary> listRepositoriesRecordIterator(ListRepositoriesRequest request)
Creates a new iterable which will iterate over the RepositorySummary
objects contained in responses from the
listRepositories operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the RepositorySummary
objects contained in responses received
from the service.public Iterable<ListTriggersResponse> listTriggersResponseIterator(ListTriggersRequest request)
Creates a new iterable which will iterate over the responses received from the listTriggers operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<TriggerSummary> listTriggersRecordIterator(ListTriggersRequest request)
Creates a new iterable which will iterate over the TriggerSummary
objects contained in responses from the
listTriggers operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the TriggerSummary
objects contained in responses received from
the service.public Iterable<ListWorkRequestErrorsResponse> listWorkRequestErrorsResponseIterator(ListWorkRequestErrorsRequest request)
Creates a new iterable which will iterate over the responses received from the listWorkRequestErrors operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<WorkRequestError> listWorkRequestErrorsRecordIterator(ListWorkRequestErrorsRequest request)
Creates a new iterable which will iterate over the WorkRequestError
objects contained in responses from the
listWorkRequestErrors operation. This iterable will fetch more data from the server as
needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the WorkRequestError
objects contained in responses received
from the service.public Iterable<ListWorkRequestLogsResponse> listWorkRequestLogsResponseIterator(ListWorkRequestLogsRequest request)
Creates a new iterable which will iterate over the responses received from the listWorkRequestLogs operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<WorkRequestLogEntry> listWorkRequestLogsRecordIterator(ListWorkRequestLogsRequest request)
Creates a new iterable which will iterate over the WorkRequestLogEntry
objects contained in responses from the
listWorkRequestLogs operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the WorkRequestLogEntry
objects contained in responses received
from the service.public Iterable<ListWorkRequestsResponse> listWorkRequestsResponseIterator(ListWorkRequestsRequest request)
Creates a new iterable which will iterate over the responses received from the listWorkRequests operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the responses
received from the service.public Iterable<WorkRequestSummary> listWorkRequestsRecordIterator(ListWorkRequestsRequest request)
Creates a new iterable which will iterate over the WorkRequestSummary
objects contained in responses from the
listWorkRequests operation. This iterable will fetch more data from the server as needed.
request
- a request which can be sent to the service operationIterable
which can be used to iterate over the WorkRequestSummary
objects contained in responses received
from the service.Copyright © 2016–2023. All rights reserved.