public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonECSConfig config = new AmazonECSConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonECSClient client = new AmazonECSClient(creds, config);

            ListTaskDefinitionsResponse resp = new ListTaskDefinitionsResponse();

            do
            {
                ListTaskDefinitionsRequest req = new ListTaskDefinitionsRequest
                {
                    NextToken = resp.NextToken
                    ,
                    MaxResults = maxItems
                };

                resp = client.ListTaskDefinitions(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.TaskDefinitionArns)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
        internal ListTaskDefinitionsResponse ListTaskDefinitions(ListTaskDefinitionsRequest request)
        {
            var marshaller   = new ListTaskDefinitionsRequestMarshaller();
            var unmarshaller = ListTaskDefinitionsResponseUnmarshaller.Instance;

            return(Invoke <ListTaskDefinitionsRequest, ListTaskDefinitionsResponse>(request, marshaller, unmarshaller));
        }
        public async Task <ListTaskDefinitionsResponse> ListTaskDefinitionsAsync()
        {
            var request  = new ListTaskDefinitionsRequest();
            var response = await _containerServiceClient.ListTaskDefinitionsAsync(request);

            return(response);
        }
        /// <summary>
        /// Initiates the asynchronous execution of the ListTaskDefinitions operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the ListTaskDefinitions operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <ListTaskDefinitionsResponse> ListTaskDefinitionsAsync(ListTaskDefinitionsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new ListTaskDefinitionsRequestMarshaller();
            var unmarshaller = ListTaskDefinitionsResponseUnmarshaller.Instance;

            return(InvokeAsync <ListTaskDefinitionsRequest, ListTaskDefinitionsResponse>(request, marshaller,
                                                                                         unmarshaller, cancellationToken));
        }
        private async Task <string> GetTaskDefinition(string clusterName)
        {
            var request = new ListTaskDefinitionsRequest();

            var response = await _client.ListTaskDefinitionsAsync(request);

            return(response.TaskDefinitionArns.First(taskDefinitionArn =>
            {
                // Example: arn:aws:ecs:us-west-2:727033484140:task-definition/ConsoleAppServiceTaskDefinition6663F6FD:1
                var taskDefinitionName = taskDefinitionArn.Split('/')[1];
                return taskDefinitionName.StartsWith(clusterName);
            }));
        }