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