1package contentmoderator 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// 6// Code generated by Microsoft (R) AutoRest Code Generator. 7// Changes may cause incorrect behavior and will be lost if the code is regenerated. 8 9import ( 10 "context" 11 "github.com/Azure/go-autorest/autorest" 12 "github.com/Azure/go-autorest/autorest/azure" 13 "github.com/Azure/go-autorest/tracing" 14 "io" 15 "net/http" 16) 17 18// ListManagementImageClient is the you use the API to scan your content as it is generated. Content Moderator then 19// processes your content and sends the results along with relevant information either back to your systems or to the 20// built-in review tool. You can use this information to take decisions e.g. take it down, send to human judge, etc. 21// 22// When using the API, images need to have a minimum of 128 pixels and a maximum file size of 4MB. 23// Text can be at most 1024 characters long. 24// If the content passed to the text API or the image API exceeds the size limits, the API will return an error code 25// that informs about the issue. 26type ListManagementImageClient struct { 27 BaseClient 28} 29 30// NewListManagementImageClient creates an instance of the ListManagementImageClient client. 31func NewListManagementImageClient(endpoint string) ListManagementImageClient { 32 return ListManagementImageClient{New(endpoint)} 33} 34 35// AddImage add an image to the list with list Id equal to list Id passed. 36// Parameters: 37// listID - list Id of the image list. 38// tag - tag for the image. 39// label - the image label. 40func (client ListManagementImageClient) AddImage(ctx context.Context, listID string, tag *int32, label string) (result Image, err error) { 41 if tracing.IsEnabled() { 42 ctx = tracing.StartSpan(ctx, fqdn+"/ListManagementImageClient.AddImage") 43 defer func() { 44 sc := -1 45 if result.Response.Response != nil { 46 sc = result.Response.Response.StatusCode 47 } 48 tracing.EndSpan(ctx, sc, err) 49 }() 50 } 51 req, err := client.AddImagePreparer(ctx, listID, tag, label) 52 if err != nil { 53 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImage", nil, "Failure preparing request") 54 return 55 } 56 57 resp, err := client.AddImageSender(req) 58 if err != nil { 59 result.Response = autorest.Response{Response: resp} 60 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImage", resp, "Failure sending request") 61 return 62 } 63 64 result, err = client.AddImageResponder(resp) 65 if err != nil { 66 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImage", resp, "Failure responding to request") 67 return 68 } 69 70 return 71} 72 73// AddImagePreparer prepares the AddImage request. 74func (client ListManagementImageClient) AddImagePreparer(ctx context.Context, listID string, tag *int32, label string) (*http.Request, error) { 75 urlParameters := map[string]interface{}{ 76 "Endpoint": client.Endpoint, 77 } 78 79 pathParameters := map[string]interface{}{ 80 "listId": autorest.Encode("path", listID), 81 } 82 83 queryParameters := map[string]interface{}{} 84 if tag != nil { 85 queryParameters["tag"] = autorest.Encode("query", *tag) 86 } 87 if len(label) > 0 { 88 queryParameters["label"] = autorest.Encode("query", label) 89 } 90 91 preparer := autorest.CreatePreparer( 92 autorest.AsPost(), 93 autorest.WithCustomBaseURL("{Endpoint}", urlParameters), 94 autorest.WithPathParameters("/contentmoderator/lists/v1.0/imagelists/{listId}/images", pathParameters), 95 autorest.WithQueryParameters(queryParameters)) 96 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 97} 98 99// AddImageSender sends the AddImage request. The method will close the 100// http.Response Body if it receives an error. 101func (client ListManagementImageClient) AddImageSender(req *http.Request) (*http.Response, error) { 102 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 103} 104 105// AddImageResponder handles the response to the AddImage request. The method always 106// closes the http.Response Body. 107func (client ListManagementImageClient) AddImageResponder(resp *http.Response) (result Image, err error) { 108 err = autorest.Respond( 109 resp, 110 azure.WithErrorUnlessStatusCode(http.StatusOK), 111 autorest.ByUnmarshallingJSON(&result), 112 autorest.ByClosing()) 113 result.Response = autorest.Response{Response: resp} 114 return 115} 116 117// AddImageFileInput add an image to the list with list Id equal to list Id passed. 118// Parameters: 119// listID - list Id of the image list. 120// imageStream - the image file. 121// tag - tag for the image. 122// label - the image label. 123func (client ListManagementImageClient) AddImageFileInput(ctx context.Context, listID string, imageStream io.ReadCloser, tag *int32, label string) (result Image, err error) { 124 if tracing.IsEnabled() { 125 ctx = tracing.StartSpan(ctx, fqdn+"/ListManagementImageClient.AddImageFileInput") 126 defer func() { 127 sc := -1 128 if result.Response.Response != nil { 129 sc = result.Response.Response.StatusCode 130 } 131 tracing.EndSpan(ctx, sc, err) 132 }() 133 } 134 req, err := client.AddImageFileInputPreparer(ctx, listID, imageStream, tag, label) 135 if err != nil { 136 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImageFileInput", nil, "Failure preparing request") 137 return 138 } 139 140 resp, err := client.AddImageFileInputSender(req) 141 if err != nil { 142 result.Response = autorest.Response{Response: resp} 143 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImageFileInput", resp, "Failure sending request") 144 return 145 } 146 147 result, err = client.AddImageFileInputResponder(resp) 148 if err != nil { 149 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImageFileInput", resp, "Failure responding to request") 150 return 151 } 152 153 return 154} 155 156// AddImageFileInputPreparer prepares the AddImageFileInput request. 157func (client ListManagementImageClient) AddImageFileInputPreparer(ctx context.Context, listID string, imageStream io.ReadCloser, tag *int32, label string) (*http.Request, error) { 158 urlParameters := map[string]interface{}{ 159 "Endpoint": client.Endpoint, 160 } 161 162 pathParameters := map[string]interface{}{ 163 "listId": autorest.Encode("path", listID), 164 } 165 166 queryParameters := map[string]interface{}{} 167 if tag != nil { 168 queryParameters["tag"] = autorest.Encode("query", *tag) 169 } 170 if len(label) > 0 { 171 queryParameters["label"] = autorest.Encode("query", label) 172 } 173 174 preparer := autorest.CreatePreparer( 175 autorest.AsContentType("image/gif"), 176 autorest.AsPost(), 177 autorest.WithCustomBaseURL("{Endpoint}", urlParameters), 178 autorest.WithPathParameters("/contentmoderator/lists/v1.0/imagelists/{listId}/images", pathParameters), 179 autorest.WithFile(imageStream), 180 autorest.WithQueryParameters(queryParameters)) 181 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 182} 183 184// AddImageFileInputSender sends the AddImageFileInput request. The method will close the 185// http.Response Body if it receives an error. 186func (client ListManagementImageClient) AddImageFileInputSender(req *http.Request) (*http.Response, error) { 187 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 188} 189 190// AddImageFileInputResponder handles the response to the AddImageFileInput request. The method always 191// closes the http.Response Body. 192func (client ListManagementImageClient) AddImageFileInputResponder(resp *http.Response) (result Image, err error) { 193 err = autorest.Respond( 194 resp, 195 azure.WithErrorUnlessStatusCode(http.StatusOK), 196 autorest.ByUnmarshallingJSON(&result), 197 autorest.ByClosing()) 198 result.Response = autorest.Response{Response: resp} 199 return 200} 201 202// AddImageURLInput add an image to the list with list Id equal to list Id passed. 203// Parameters: 204// listID - list Id of the image list. 205// contentType - the content type. 206// imageURL - the image url. 207// tag - tag for the image. 208// label - the image label. 209func (client ListManagementImageClient) AddImageURLInput(ctx context.Context, listID string, contentType string, imageURL ImageURL, tag *int32, label string) (result Image, err error) { 210 if tracing.IsEnabled() { 211 ctx = tracing.StartSpan(ctx, fqdn+"/ListManagementImageClient.AddImageURLInput") 212 defer func() { 213 sc := -1 214 if result.Response.Response != nil { 215 sc = result.Response.Response.StatusCode 216 } 217 tracing.EndSpan(ctx, sc, err) 218 }() 219 } 220 req, err := client.AddImageURLInputPreparer(ctx, listID, contentType, imageURL, tag, label) 221 if err != nil { 222 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImageURLInput", nil, "Failure preparing request") 223 return 224 } 225 226 resp, err := client.AddImageURLInputSender(req) 227 if err != nil { 228 result.Response = autorest.Response{Response: resp} 229 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImageURLInput", resp, "Failure sending request") 230 return 231 } 232 233 result, err = client.AddImageURLInputResponder(resp) 234 if err != nil { 235 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "AddImageURLInput", resp, "Failure responding to request") 236 return 237 } 238 239 return 240} 241 242// AddImageURLInputPreparer prepares the AddImageURLInput request. 243func (client ListManagementImageClient) AddImageURLInputPreparer(ctx context.Context, listID string, contentType string, imageURL ImageURL, tag *int32, label string) (*http.Request, error) { 244 urlParameters := map[string]interface{}{ 245 "Endpoint": client.Endpoint, 246 } 247 248 pathParameters := map[string]interface{}{ 249 "listId": autorest.Encode("path", listID), 250 } 251 252 queryParameters := map[string]interface{}{} 253 if tag != nil { 254 queryParameters["tag"] = autorest.Encode("query", *tag) 255 } 256 if len(label) > 0 { 257 queryParameters["label"] = autorest.Encode("query", label) 258 } 259 260 preparer := autorest.CreatePreparer( 261 autorest.AsContentType("application/json; charset=utf-8"), 262 autorest.AsPost(), 263 autorest.WithCustomBaseURL("{Endpoint}", urlParameters), 264 autorest.WithPathParameters("/contentmoderator/lists/v1.0/imagelists/{listId}/images", pathParameters), 265 autorest.WithJSON(imageURL), 266 autorest.WithQueryParameters(queryParameters), 267 autorest.WithHeader("Content-Type", autorest.String(contentType))) 268 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 269} 270 271// AddImageURLInputSender sends the AddImageURLInput request. The method will close the 272// http.Response Body if it receives an error. 273func (client ListManagementImageClient) AddImageURLInputSender(req *http.Request) (*http.Response, error) { 274 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 275} 276 277// AddImageURLInputResponder handles the response to the AddImageURLInput request. The method always 278// closes the http.Response Body. 279func (client ListManagementImageClient) AddImageURLInputResponder(resp *http.Response) (result Image, err error) { 280 err = autorest.Respond( 281 resp, 282 azure.WithErrorUnlessStatusCode(http.StatusOK), 283 autorest.ByUnmarshallingJSON(&result), 284 autorest.ByClosing()) 285 result.Response = autorest.Response{Response: resp} 286 return 287} 288 289// DeleteAllImages deletes all images from the list with list Id equal to list Id passed. 290// Parameters: 291// listID - list Id of the image list. 292func (client ListManagementImageClient) DeleteAllImages(ctx context.Context, listID string) (result String, err error) { 293 if tracing.IsEnabled() { 294 ctx = tracing.StartSpan(ctx, fqdn+"/ListManagementImageClient.DeleteAllImages") 295 defer func() { 296 sc := -1 297 if result.Response.Response != nil { 298 sc = result.Response.Response.StatusCode 299 } 300 tracing.EndSpan(ctx, sc, err) 301 }() 302 } 303 req, err := client.DeleteAllImagesPreparer(ctx, listID) 304 if err != nil { 305 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "DeleteAllImages", nil, "Failure preparing request") 306 return 307 } 308 309 resp, err := client.DeleteAllImagesSender(req) 310 if err != nil { 311 result.Response = autorest.Response{Response: resp} 312 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "DeleteAllImages", resp, "Failure sending request") 313 return 314 } 315 316 result, err = client.DeleteAllImagesResponder(resp) 317 if err != nil { 318 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "DeleteAllImages", resp, "Failure responding to request") 319 return 320 } 321 322 return 323} 324 325// DeleteAllImagesPreparer prepares the DeleteAllImages request. 326func (client ListManagementImageClient) DeleteAllImagesPreparer(ctx context.Context, listID string) (*http.Request, error) { 327 urlParameters := map[string]interface{}{ 328 "Endpoint": client.Endpoint, 329 } 330 331 pathParameters := map[string]interface{}{ 332 "listId": autorest.Encode("path", listID), 333 } 334 335 preparer := autorest.CreatePreparer( 336 autorest.AsDelete(), 337 autorest.WithCustomBaseURL("{Endpoint}", urlParameters), 338 autorest.WithPathParameters("/contentmoderator/lists/v1.0/imagelists/{listId}/images", pathParameters)) 339 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 340} 341 342// DeleteAllImagesSender sends the DeleteAllImages request. The method will close the 343// http.Response Body if it receives an error. 344func (client ListManagementImageClient) DeleteAllImagesSender(req *http.Request) (*http.Response, error) { 345 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 346} 347 348// DeleteAllImagesResponder handles the response to the DeleteAllImages request. The method always 349// closes the http.Response Body. 350func (client ListManagementImageClient) DeleteAllImagesResponder(resp *http.Response) (result String, err error) { 351 err = autorest.Respond( 352 resp, 353 azure.WithErrorUnlessStatusCode(http.StatusOK), 354 autorest.ByUnmarshallingJSON(&result.Value), 355 autorest.ByClosing()) 356 result.Response = autorest.Response{Response: resp} 357 return 358} 359 360// DeleteImage deletes an image from the list with list Id and image Id passed. 361// Parameters: 362// listID - list Id of the image list. 363// imageID - id of the image. 364func (client ListManagementImageClient) DeleteImage(ctx context.Context, listID string, imageID string) (result String, err error) { 365 if tracing.IsEnabled() { 366 ctx = tracing.StartSpan(ctx, fqdn+"/ListManagementImageClient.DeleteImage") 367 defer func() { 368 sc := -1 369 if result.Response.Response != nil { 370 sc = result.Response.Response.StatusCode 371 } 372 tracing.EndSpan(ctx, sc, err) 373 }() 374 } 375 req, err := client.DeleteImagePreparer(ctx, listID, imageID) 376 if err != nil { 377 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "DeleteImage", nil, "Failure preparing request") 378 return 379 } 380 381 resp, err := client.DeleteImageSender(req) 382 if err != nil { 383 result.Response = autorest.Response{Response: resp} 384 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "DeleteImage", resp, "Failure sending request") 385 return 386 } 387 388 result, err = client.DeleteImageResponder(resp) 389 if err != nil { 390 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "DeleteImage", resp, "Failure responding to request") 391 return 392 } 393 394 return 395} 396 397// DeleteImagePreparer prepares the DeleteImage request. 398func (client ListManagementImageClient) DeleteImagePreparer(ctx context.Context, listID string, imageID string) (*http.Request, error) { 399 urlParameters := map[string]interface{}{ 400 "Endpoint": client.Endpoint, 401 } 402 403 pathParameters := map[string]interface{}{ 404 "ImageId": autorest.Encode("path", imageID), 405 "listId": autorest.Encode("path", listID), 406 } 407 408 preparer := autorest.CreatePreparer( 409 autorest.AsDelete(), 410 autorest.WithCustomBaseURL("{Endpoint}", urlParameters), 411 autorest.WithPathParameters("/contentmoderator/lists/v1.0/imagelists/{listId}/images/{ImageId}", pathParameters)) 412 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 413} 414 415// DeleteImageSender sends the DeleteImage request. The method will close the 416// http.Response Body if it receives an error. 417func (client ListManagementImageClient) DeleteImageSender(req *http.Request) (*http.Response, error) { 418 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 419} 420 421// DeleteImageResponder handles the response to the DeleteImage request. The method always 422// closes the http.Response Body. 423func (client ListManagementImageClient) DeleteImageResponder(resp *http.Response) (result String, err error) { 424 err = autorest.Respond( 425 resp, 426 azure.WithErrorUnlessStatusCode(http.StatusOK), 427 autorest.ByUnmarshallingJSON(&result.Value), 428 autorest.ByClosing()) 429 result.Response = autorest.Response{Response: resp} 430 return 431} 432 433// GetAllImageIds gets all image Ids from the list with list Id equal to list Id passed. 434// Parameters: 435// listID - list Id of the image list. 436func (client ListManagementImageClient) GetAllImageIds(ctx context.Context, listID string) (result ImageIds, err error) { 437 if tracing.IsEnabled() { 438 ctx = tracing.StartSpan(ctx, fqdn+"/ListManagementImageClient.GetAllImageIds") 439 defer func() { 440 sc := -1 441 if result.Response.Response != nil { 442 sc = result.Response.Response.StatusCode 443 } 444 tracing.EndSpan(ctx, sc, err) 445 }() 446 } 447 req, err := client.GetAllImageIdsPreparer(ctx, listID) 448 if err != nil { 449 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "GetAllImageIds", nil, "Failure preparing request") 450 return 451 } 452 453 resp, err := client.GetAllImageIdsSender(req) 454 if err != nil { 455 result.Response = autorest.Response{Response: resp} 456 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "GetAllImageIds", resp, "Failure sending request") 457 return 458 } 459 460 result, err = client.GetAllImageIdsResponder(resp) 461 if err != nil { 462 err = autorest.NewErrorWithError(err, "contentmoderator.ListManagementImageClient", "GetAllImageIds", resp, "Failure responding to request") 463 return 464 } 465 466 return 467} 468 469// GetAllImageIdsPreparer prepares the GetAllImageIds request. 470func (client ListManagementImageClient) GetAllImageIdsPreparer(ctx context.Context, listID string) (*http.Request, error) { 471 urlParameters := map[string]interface{}{ 472 "Endpoint": client.Endpoint, 473 } 474 475 pathParameters := map[string]interface{}{ 476 "listId": autorest.Encode("path", listID), 477 } 478 479 preparer := autorest.CreatePreparer( 480 autorest.AsGet(), 481 autorest.WithCustomBaseURL("{Endpoint}", urlParameters), 482 autorest.WithPathParameters("/contentmoderator/lists/v1.0/imagelists/{listId}/images", pathParameters)) 483 return preparer.Prepare((&http.Request{}).WithContext(ctx)) 484} 485 486// GetAllImageIdsSender sends the GetAllImageIds request. The method will close the 487// http.Response Body if it receives an error. 488func (client ListManagementImageClient) GetAllImageIdsSender(req *http.Request) (*http.Response, error) { 489 return client.Send(req, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 490} 491 492// GetAllImageIdsResponder handles the response to the GetAllImageIds request. The method always 493// closes the http.Response Body. 494func (client ListManagementImageClient) GetAllImageIdsResponder(resp *http.Response) (result ImageIds, err error) { 495 err = autorest.Respond( 496 resp, 497 azure.WithErrorUnlessStatusCode(http.StatusOK), 498 autorest.ByUnmarshallingJSON(&result), 499 autorest.ByClosing()) 500 result.Response = autorest.Response{Response: resp} 501 return 502} 503