1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package forecast 4 5import ( 6 "context" 7 "fmt" 8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 9 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 10 "github.com/aws/aws-sdk-go-v2/service/forecast/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Returns a list of dataset import jobs created using the CreateDatasetImportJob 16// operation. For each import job, this operation returns a summary of its 17// properties, including its Amazon Resource Name (ARN). You can retrieve the 18// complete set of properties by using the ARN with the DescribeDatasetImportJob 19// operation. You can filter the list by providing an array of Filter objects. 20func (c *Client) ListDatasetImportJobs(ctx context.Context, params *ListDatasetImportJobsInput, optFns ...func(*Options)) (*ListDatasetImportJobsOutput, error) { 21 if params == nil { 22 params = &ListDatasetImportJobsInput{} 23 } 24 25 result, metadata, err := c.invokeOperation(ctx, "ListDatasetImportJobs", params, optFns, addOperationListDatasetImportJobsMiddlewares) 26 if err != nil { 27 return nil, err 28 } 29 30 out := result.(*ListDatasetImportJobsOutput) 31 out.ResultMetadata = metadata 32 return out, nil 33} 34 35type ListDatasetImportJobsInput struct { 36 37 // An array of filters. For each filter, you provide a condition and a match 38 // statement. The condition is either IS or IS_NOT, which specifies whether to 39 // include or exclude the datasets that match the statement from the list, 40 // respectively. The match statement consists of a key and a value. Filter 41 // properties 42 // 43 // * Condition - The condition to apply. Valid values are IS and 44 // IS_NOT. To include the datasets that match the statement, specify IS. To exclude 45 // matching datasets, specify IS_NOT. 46 // 47 // * Key - The name of the parameter to filter 48 // on. Valid values are DatasetArn and Status. 49 // 50 // * Value - The value to match. 51 // 52 // For 53 // example, to list all dataset import jobs whose status is ACTIVE, you specify the 54 // following filter: "Filters": [ { "Condition": "IS", "Key": "Status", "Value": 55 // "ACTIVE" } ] 56 Filters []types.Filter 57 58 // The number of items to return in the response. 59 MaxResults *int32 60 61 // If the result of the previous request was truncated, the response includes a 62 // NextToken. To retrieve the next set of results, use the token in the next 63 // request. Tokens expire after 24 hours. 64 NextToken *string 65} 66 67type ListDatasetImportJobsOutput struct { 68 69 // An array of objects that summarize each dataset import job's properties. 70 DatasetImportJobs []types.DatasetImportJobSummary 71 72 // If the response is truncated, Amazon Forecast returns this token. To retrieve 73 // the next set of results, use the token in the next request. 74 NextToken *string 75 76 // Metadata pertaining to the operation's result. 77 ResultMetadata middleware.Metadata 78} 79 80func addOperationListDatasetImportJobsMiddlewares(stack *middleware.Stack, options Options) (err error) { 81 err = stack.Serialize.Add(&awsAwsjson11_serializeOpListDatasetImportJobs{}, middleware.After) 82 if err != nil { 83 return err 84 } 85 err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpListDatasetImportJobs{}, middleware.After) 86 if err != nil { 87 return err 88 } 89 if err = addSetLoggerMiddleware(stack, options); err != nil { 90 return err 91 } 92 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 93 return err 94 } 95 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 96 return err 97 } 98 if err = addResolveEndpointMiddleware(stack, options); err != nil { 99 return err 100 } 101 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 102 return err 103 } 104 if err = addRetryMiddlewares(stack, options); err != nil { 105 return err 106 } 107 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 108 return err 109 } 110 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 111 return err 112 } 113 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 114 return err 115 } 116 if err = addClientUserAgent(stack); err != nil { 117 return err 118 } 119 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 120 return err 121 } 122 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 123 return err 124 } 125 if err = addOpListDatasetImportJobsValidationMiddleware(stack); err != nil { 126 return err 127 } 128 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListDatasetImportJobs(options.Region), middleware.Before); err != nil { 129 return err 130 } 131 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 132 return err 133 } 134 if err = addResponseErrorMiddleware(stack); err != nil { 135 return err 136 } 137 if err = addRequestResponseLogging(stack, options); err != nil { 138 return err 139 } 140 return nil 141} 142 143// ListDatasetImportJobsAPIClient is a client that implements the 144// ListDatasetImportJobs operation. 145type ListDatasetImportJobsAPIClient interface { 146 ListDatasetImportJobs(context.Context, *ListDatasetImportJobsInput, ...func(*Options)) (*ListDatasetImportJobsOutput, error) 147} 148 149var _ ListDatasetImportJobsAPIClient = (*Client)(nil) 150 151// ListDatasetImportJobsPaginatorOptions is the paginator options for 152// ListDatasetImportJobs 153type ListDatasetImportJobsPaginatorOptions struct { 154 // The number of items to return in the response. 155 Limit int32 156 157 // Set to true if pagination should stop if the service returns a pagination token 158 // that matches the most recent token provided to the service. 159 StopOnDuplicateToken bool 160} 161 162// ListDatasetImportJobsPaginator is a paginator for ListDatasetImportJobs 163type ListDatasetImportJobsPaginator struct { 164 options ListDatasetImportJobsPaginatorOptions 165 client ListDatasetImportJobsAPIClient 166 params *ListDatasetImportJobsInput 167 nextToken *string 168 firstPage bool 169} 170 171// NewListDatasetImportJobsPaginator returns a new ListDatasetImportJobsPaginator 172func NewListDatasetImportJobsPaginator(client ListDatasetImportJobsAPIClient, params *ListDatasetImportJobsInput, optFns ...func(*ListDatasetImportJobsPaginatorOptions)) *ListDatasetImportJobsPaginator { 173 if params == nil { 174 params = &ListDatasetImportJobsInput{} 175 } 176 177 options := ListDatasetImportJobsPaginatorOptions{} 178 if params.MaxResults != nil { 179 options.Limit = *params.MaxResults 180 } 181 182 for _, fn := range optFns { 183 fn(&options) 184 } 185 186 return &ListDatasetImportJobsPaginator{ 187 options: options, 188 client: client, 189 params: params, 190 firstPage: true, 191 } 192} 193 194// HasMorePages returns a boolean indicating whether more pages are available 195func (p *ListDatasetImportJobsPaginator) HasMorePages() bool { 196 return p.firstPage || p.nextToken != nil 197} 198 199// NextPage retrieves the next ListDatasetImportJobs page. 200func (p *ListDatasetImportJobsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListDatasetImportJobsOutput, error) { 201 if !p.HasMorePages() { 202 return nil, fmt.Errorf("no more pages available") 203 } 204 205 params := *p.params 206 params.NextToken = p.nextToken 207 208 var limit *int32 209 if p.options.Limit > 0 { 210 limit = &p.options.Limit 211 } 212 params.MaxResults = limit 213 214 result, err := p.client.ListDatasetImportJobs(ctx, ¶ms, optFns...) 215 if err != nil { 216 return nil, err 217 } 218 p.firstPage = false 219 220 prevToken := p.nextToken 221 p.nextToken = result.NextToken 222 223 if p.options.StopOnDuplicateToken && prevToken != nil && p.nextToken != nil && *prevToken == *p.nextToken { 224 p.nextToken = nil 225 } 226 227 return result, nil 228} 229 230func newServiceMetadataMiddleware_opListDatasetImportJobs(region string) *awsmiddleware.RegisterServiceMetadata { 231 return &awsmiddleware.RegisterServiceMetadata{ 232 Region: region, 233 ServiceID: ServiceID, 234 SigningName: "forecast", 235 OperationName: "ListDatasetImportJobs", 236 } 237} 238