/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the internetmonitor-2021-06-03.normal.json service model.
*/
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.InternetMonitor.Model;
namespace Amazon.InternetMonitor
{
///
/// Interface for accessing InternetMonitor
///
/// Amazon CloudWatch Internet Monitor provides visibility into how internet issues impact
/// the performance and availability between your applications hosted on Amazon Web Services
/// and your end users. It reduces the time it takes for you to diagnose internet issues
/// from days to minutes. Internet Monitor uses the connectivity data that Amazon Web
/// Services captures from its global networking footprint to calculate a baseline of
/// performance and availability for internet traffic. This is the same data that Amazon
/// Web Services uses to monitor internet uptime and availability. With those measurements
/// as a baseline, Internet Monitor raises awareness for you when there are significant
/// problems for your end users in the different geographic locations where your application
/// runs.
///
///
///
/// Internet Monitor publishes internet measurements to CloudWatch Logs and CloudWatch
/// Metrics, to easily support using CloudWatch tools with health information for geographies
/// and networks specific to your application. Internet Monitor sends health events to
/// Amazon EventBridge so that you can set up notifications. If an issue is caused by
/// the Amazon Web Services network, you also automatically receive an Amazon Web Services
/// Health Dashboard notification with the steps that Amazon Web Services is taking to
/// mitigate the problem.
///
///
///
/// To use Internet Monitor, you create a monitor and associate your application's
/// resources with it, VPCs, CloudFront distributions, or WorkSpaces directories, to enable
/// Internet Monitor to know where your application's internet traffic is. Internet Monitor
/// then provides internet measurements from Amazon Web Services that are specific to
/// the locations and networks that communicate with your application.
///
///
///
/// For more information, see Using
/// Amazon CloudWatch Internet Monitor in the Amazon CloudWatch User Guide.
///
///
public partial interface IAmazonInternetMonitor : IAmazonService, IDisposable
{
#if AWS_ASYNC_ENUMERABLES_API
///
/// Paginators for the service
///
IInternetMonitorPaginatorFactory Paginators { get; }
#endif
#region CreateMonitor
///
/// Creates a monitor in Amazon CloudWatch Internet Monitor. A monitor is built based
/// on information from the application resources that you add: Amazon Virtual Private
/// Clouds (VPCs), Amazon CloudFront distributions, and WorkSpaces directories. Internet
/// Monitor then publishes internet measurements from Amazon Web Services that are specific
/// to the city-networks, that is, the locations and ASNs (typically internet service
/// providers or ISPs), where clients access your application. For more information, see
/// Using
/// Amazon CloudWatch Internet Monitor in the Amazon CloudWatch User Guide.
///
///
///
/// When you create a monitor, you set a maximum limit for the number of city-networks
/// where client traffic is monitored. The city-network maximum that you choose is the
/// limit, but you only pay for the number of city-networks that are actually monitored.
/// You can change the maximum at any time by updating your monitor. For more information,
/// see Choosing
/// a city-network maximum value in the Amazon CloudWatch User Guide.
///
///
/// Container for the necessary parameters to execute the CreateMonitor service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the CreateMonitor service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// The requested resource is in use.
///
///
/// An internal error occurred.
///
///
/// The request exceeded a service quota.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for CreateMonitor Operation
Task CreateMonitorAsync(CreateMonitorRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region DeleteMonitor
///
/// Deletes a monitor in Amazon CloudWatch Internet Monitor.
///
/// Container for the necessary parameters to execute the DeleteMonitor service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the DeleteMonitor service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// An internal error occurred.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for DeleteMonitor Operation
Task DeleteMonitorAsync(DeleteMonitorRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region GetHealthEvent
///
/// Gets information the Amazon CloudWatch Internet Monitor has created and stored about
/// a health event for a specified monitor. This information includes the impacted locations,
/// and all of the information related to the event by location.
///
///
///
/// The information returned includes the performance, availability, and round-trip time
/// impact, information about the network providers, the event type, and so on.
///
///
///
/// Information rolled up at the global traffic level is also returned, including the
/// impact type and total traffic impact.
///
///
/// Container for the necessary parameters to execute the GetHealthEvent service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the GetHealthEvent service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// An internal error occurred.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for GetHealthEvent Operation
Task GetHealthEventAsync(GetHealthEventRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region GetMonitor
///
/// Gets information about a monitor in Amazon CloudWatch Internet Monitor based on a
/// monitor name. The information returned includes the Amazon Resource Name (ARN), create
/// time, modified time, resources included in the monitor, and status information.
///
/// Container for the necessary parameters to execute the GetMonitor service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the GetMonitor service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// An internal error occurred.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for GetMonitor Operation
Task GetMonitorAsync(GetMonitorRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region ListHealthEvents
///
/// Lists all health events for a monitor in Amazon CloudWatch Internet Monitor. Returns
/// all information for health events including the client location information the network
/// cause and status, event start and end time, percentage of total traffic impacted,
/// and status.
///
///
///
/// Health events that have start times during the time frame that is requested are not
/// included in the list of health events.
///
///
///
/// Container for the necessary parameters to execute the ListHealthEvents service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListHealthEvents service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// An internal error occurred.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for ListHealthEvents Operation
Task ListHealthEventsAsync(ListHealthEventsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region ListMonitors
///
/// Lists all of your monitors for Amazon CloudWatch Internet Monitor and their statuses,
/// along with the Amazon Resource Name (ARN) and name of each monitor.
///
/// Container for the necessary parameters to execute the ListMonitors service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListMonitors service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// An internal error occurred.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for ListMonitors Operation
Task ListMonitorsAsync(ListMonitorsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region ListTagsForResource
///
/// Lists the tags for a resource. Tags are supported only for monitors in Amazon CloudWatch
/// Internet Monitor.
///
/// Container for the necessary parameters to execute the ListTagsForResource service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListTagsForResource service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// A bad request was received.
///
///
/// There was an internal server error.
///
///
/// The request specifies something that doesn't exist.
///
///
/// There were too many requests.
///
/// REST API Reference for ListTagsForResource Operation
Task ListTagsForResourceAsync(ListTagsForResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region TagResource
///
/// Adds a tag to a resource. Tags are supported only for monitors in Amazon CloudWatch
/// Internet Monitor. You can add a maximum of 50 tags in Internet Monitor.
///
///
///
/// A minimum of one tag is required for this call. It returns an error if you use the
/// TagResource
request with 0 tags.
///
///
/// Container for the necessary parameters to execute the TagResource service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the TagResource service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// A bad request was received.
///
///
/// There was an internal server error.
///
///
/// The request specifies something that doesn't exist.
///
///
/// There were too many requests.
///
/// REST API Reference for TagResource Operation
Task TagResourceAsync(TagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region UntagResource
///
/// Removes a tag from a resource.
///
/// Container for the necessary parameters to execute the UntagResource service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UntagResource service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// A bad request was received.
///
///
/// There was an internal server error.
///
///
/// The request specifies something that doesn't exist.
///
///
/// There were too many requests.
///
/// REST API Reference for UntagResource Operation
Task UntagResourceAsync(UntagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region UpdateMonitor
///
/// Updates a monitor. You can update a monitor to change the maximum number of city-networks
/// (locations and ASNs or internet service providers), to add or remove resources, or
/// to change the status of the monitor. Note that you can't change the name of a monitor.
///
///
///
/// The city-network maximum that you choose is the limit, but you only pay for the number
/// of city-networks that are actually monitored. For more information, see Choosing
/// a city-network maximum value in the Amazon CloudWatch User Guide.
///
///
/// Container for the necessary parameters to execute the UpdateMonitor service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UpdateMonitor service method, as returned by InternetMonitor.
///
/// You don't have sufficient permission to perform this action.
///
///
/// An internal error occurred.
///
///
/// The request exceeded a service quota.
///
///
/// The request specifies a resource that doesn't exist.
///
///
/// The request was denied due to request throttling.
///
///
/// Invalid request.
///
/// REST API Reference for UpdateMonitor Operation
Task UpdateMonitorAsync(UpdateMonitorRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
}
}