Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/boto/support/layer1.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:18:57 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d30785e31577 |
---|---|
1 # Copyright (c) 2014 Amazon.com, Inc. or its affiliates. All Rights Reserved | |
2 # | |
3 # Permission is hereby granted, free of charge, to any person obtaining a | |
4 # copy of this software and associated documentation files (the | |
5 # "Software"), to deal in the Software without restriction, including | |
6 # without limitation the rights to use, copy, modify, merge, publish, dis- | |
7 # tribute, sublicense, and/or sell copies of the Software, and to permit | |
8 # persons to whom the Software is furnished to do so, subject to the fol- | |
9 # lowing conditions: | |
10 # | |
11 # The above copyright notice and this permission notice shall be included | |
12 # in all copies or substantial portions of the Software. | |
13 # | |
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
15 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- | |
16 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | |
17 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
18 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
19 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
20 # IN THE SOFTWARE. | |
21 # | |
22 | |
23 import boto | |
24 from boto.compat import json | |
25 from boto.connection import AWSQueryConnection | |
26 from boto.regioninfo import RegionInfo | |
27 from boto.exception import JSONResponseError | |
28 from boto.support import exceptions | |
29 | |
30 | |
31 class SupportConnection(AWSQueryConnection): | |
32 """ | |
33 AWS Support | |
34 The AWS Support API reference is intended for programmers who need | |
35 detailed information about the AWS Support operations and data | |
36 types. This service enables you to manage your AWS Support cases | |
37 programmatically. It uses HTTP methods that return results in JSON | |
38 format. | |
39 | |
40 The AWS Support service also exposes a set of `Trusted Advisor`_ | |
41 features. You can retrieve a list of checks and their | |
42 descriptions, get check results, specify checks to refresh, and | |
43 get the refresh status of checks. | |
44 | |
45 The following list describes the AWS Support case management | |
46 operations: | |
47 | |
48 | |
49 + **Service names, issue categories, and available severity | |
50 levels. **The DescribeServices and DescribeSeverityLevels | |
51 operations return AWS service names, service codes, service | |
52 categories, and problem severity levels. You use these values when | |
53 you call the CreateCase operation. | |
54 + **Case creation, case details, and case resolution.** The | |
55 CreateCase, DescribeCases, DescribeAttachment, and ResolveCase | |
56 operations create AWS Support cases, retrieve information about | |
57 cases, and resolve cases. | |
58 + **Case communication.** The DescribeCommunications, | |
59 AddCommunicationToCase, and AddAttachmentsToSet operations | |
60 retrieve and add communications and attachments to AWS Support | |
61 cases. | |
62 | |
63 | |
64 The following list describes the operations available from the AWS | |
65 Support service for Trusted Advisor: | |
66 | |
67 | |
68 + DescribeTrustedAdvisorChecks returns the list of checks that run | |
69 against your AWS resources. | |
70 + Using the `CheckId` for a specific check returned by | |
71 DescribeTrustedAdvisorChecks, you can call | |
72 DescribeTrustedAdvisorCheckResult to obtain the results for the | |
73 check you specified. | |
74 + DescribeTrustedAdvisorCheckSummaries returns summarized results | |
75 for one or more Trusted Advisor checks. | |
76 + RefreshTrustedAdvisorCheck requests that Trusted Advisor rerun a | |
77 specified check. | |
78 + DescribeTrustedAdvisorCheckRefreshStatuses reports the refresh | |
79 status of one or more checks. | |
80 | |
81 | |
82 For authentication of requests, AWS Support uses `Signature | |
83 Version 4 Signing Process`_. | |
84 | |
85 See `About the AWS Support API`_ in the AWS Support User Guide for | |
86 information about how to use this service to create and manage | |
87 your support cases, and how to call Trusted Advisor for results of | |
88 checks on your resources. | |
89 """ | |
90 APIVersion = "2013-04-15" | |
91 DefaultRegionName = "us-east-1" | |
92 DefaultRegionEndpoint = "support.us-east-1.amazonaws.com" | |
93 ServiceName = "Support" | |
94 TargetPrefix = "AWSSupport_20130415" | |
95 ResponseError = JSONResponseError | |
96 | |
97 _faults = { | |
98 "CaseCreationLimitExceeded": exceptions.CaseCreationLimitExceeded, | |
99 "AttachmentLimitExceeded": exceptions.AttachmentLimitExceeded, | |
100 "CaseIdNotFound": exceptions.CaseIdNotFound, | |
101 "DescribeAttachmentLimitExceeded": exceptions.DescribeAttachmentLimitExceeded, | |
102 "AttachmentSetIdNotFound": exceptions.AttachmentSetIdNotFound, | |
103 "InternalServerError": exceptions.InternalServerError, | |
104 "AttachmentSetExpired": exceptions.AttachmentSetExpired, | |
105 "AttachmentIdNotFound": exceptions.AttachmentIdNotFound, | |
106 "AttachmentSetSizeLimitExceeded": exceptions.AttachmentSetSizeLimitExceeded, | |
107 } | |
108 | |
109 | |
110 def __init__(self, **kwargs): | |
111 region = kwargs.pop('region', None) | |
112 if not region: | |
113 region = RegionInfo(self, self.DefaultRegionName, | |
114 self.DefaultRegionEndpoint) | |
115 | |
116 if 'host' not in kwargs or kwargs['host'] is None: | |
117 kwargs['host'] = region.endpoint | |
118 | |
119 super(SupportConnection, self).__init__(**kwargs) | |
120 self.region = region | |
121 | |
122 def _required_auth_capability(self): | |
123 return ['hmac-v4'] | |
124 | |
125 def add_attachments_to_set(self, attachments, attachment_set_id=None): | |
126 """ | |
127 Adds one or more attachments to an attachment set. If an | |
128 `AttachmentSetId` is not specified, a new attachment set is | |
129 created, and the ID of the set is returned in the response. If | |
130 an `AttachmentSetId` is specified, the attachments are added | |
131 to the specified set, if it exists. | |
132 | |
133 An attachment set is a temporary container for attachments | |
134 that are to be added to a case or case communication. The set | |
135 is available for one hour after it is created; the | |
136 `ExpiryTime` returned in the response indicates when the set | |
137 expires. The maximum number of attachments in a set is 3, and | |
138 the maximum size of any attachment in the set is 5 MB. | |
139 | |
140 :type attachment_set_id: string | |
141 :param attachment_set_id: The ID of the attachment set. If an | |
142 `AttachmentSetId` is not specified, a new attachment set is | |
143 created, and the ID of the set is returned in the response. If an | |
144 `AttachmentSetId` is specified, the attachments are added to the | |
145 specified set, if it exists. | |
146 | |
147 :type attachments: list | |
148 :param attachments: One or more attachments to add to the set. The | |
149 limit is 3 attachments per set, and the size limit is 5 MB per | |
150 attachment. | |
151 | |
152 """ | |
153 params = {'attachments': attachments, } | |
154 if attachment_set_id is not None: | |
155 params['attachmentSetId'] = attachment_set_id | |
156 return self.make_request(action='AddAttachmentsToSet', | |
157 body=json.dumps(params)) | |
158 | |
159 def add_communication_to_case(self, communication_body, case_id=None, | |
160 cc_email_addresses=None, | |
161 attachment_set_id=None): | |
162 """ | |
163 Adds additional customer communication to an AWS Support case. | |
164 You use the `CaseId` value to identify the case to add | |
165 communication to. You can list a set of email addresses to | |
166 copy on the communication using the `CcEmailAddresses` value. | |
167 The `CommunicationBody` value contains the text of the | |
168 communication. | |
169 | |
170 The response indicates the success or failure of the request. | |
171 | |
172 This operation implements a subset of the behavior on the AWS | |
173 Support `Your Support Cases`_ web form. | |
174 | |
175 :type case_id: string | |
176 :param case_id: The AWS Support case ID requested or returned in the | |
177 call. The case ID is an alphanumeric string formatted as shown in | |
178 this example: case- 12345678910-2013-c4c1d2bf33c5cf47 | |
179 | |
180 :type communication_body: string | |
181 :param communication_body: The body of an email communication to add to | |
182 the support case. | |
183 | |
184 :type cc_email_addresses: list | |
185 :param cc_email_addresses: The email addresses in the CC line of an | |
186 email to be added to the support case. | |
187 | |
188 :type attachment_set_id: string | |
189 :param attachment_set_id: The ID of a set of one or more attachments | |
190 for the communication to add to the case. Create the set by calling | |
191 AddAttachmentsToSet | |
192 | |
193 """ | |
194 params = {'communicationBody': communication_body, } | |
195 if case_id is not None: | |
196 params['caseId'] = case_id | |
197 if cc_email_addresses is not None: | |
198 params['ccEmailAddresses'] = cc_email_addresses | |
199 if attachment_set_id is not None: | |
200 params['attachmentSetId'] = attachment_set_id | |
201 return self.make_request(action='AddCommunicationToCase', | |
202 body=json.dumps(params)) | |
203 | |
204 def create_case(self, subject, communication_body, service_code=None, | |
205 severity_code=None, category_code=None, | |
206 cc_email_addresses=None, language=None, issue_type=None, | |
207 attachment_set_id=None): | |
208 """ | |
209 Creates a new case in the AWS Support Center. This operation | |
210 is modeled on the behavior of the AWS Support Center `Open a | |
211 new case`_ page. Its parameters require you to specify the | |
212 following information: | |
213 | |
214 | |
215 #. **IssueType.** The type of issue for the case. You can | |
216 specify either "customer-service" or "technical." If you do | |
217 not indicate a value, the default is "technical." | |
218 #. **ServiceCode.** The code for an AWS service. You obtain | |
219 the `ServiceCode` by calling DescribeServices. | |
220 #. **CategoryCode.** The category for the service defined for | |
221 the `ServiceCode` value. You also obtain the category code for | |
222 a service by calling DescribeServices. Each AWS service | |
223 defines its own set of category codes. | |
224 #. **SeverityCode.** A value that indicates the urgency of the | |
225 case, which in turn determines the response time according to | |
226 your service level agreement with AWS Support. You obtain the | |
227 SeverityCode by calling DescribeSeverityLevels. | |
228 #. **Subject.** The **Subject** field on the AWS Support | |
229 Center `Open a new case`_ page. | |
230 #. **CommunicationBody.** The **Description** field on the AWS | |
231 Support Center `Open a new case`_ page. | |
232 #. **AttachmentSetId.** The ID of a set of attachments that | |
233 has been created by using AddAttachmentsToSet. | |
234 #. **Language.** The human language in which AWS Support | |
235 handles the case. English and Japanese are currently | |
236 supported. | |
237 #. **CcEmailAddresses.** The AWS Support Center **CC** field | |
238 on the `Open a new case`_ page. You can list email addresses | |
239 to be copied on any correspondence about the case. The account | |
240 that opens the case is already identified by passing the AWS | |
241 Credentials in the HTTP POST method or in a method or function | |
242 call from one of the programming languages supported by an | |
243 `AWS SDK`_. | |
244 | |
245 | |
246 A successful CreateCase request returns an AWS Support case | |
247 number. Case numbers are used by the DescribeCases operation | |
248 to retrieve existing AWS Support cases. | |
249 | |
250 :type subject: string | |
251 :param subject: The title of the AWS Support case. | |
252 | |
253 :type service_code: string | |
254 :param service_code: The code for the AWS service returned by the call | |
255 to DescribeServices. | |
256 | |
257 :type severity_code: string | |
258 :param severity_code: The code for the severity level returned by the | |
259 call to DescribeSeverityLevels. | |
260 | |
261 :type category_code: string | |
262 :param category_code: The category of problem for the AWS Support case. | |
263 | |
264 :type communication_body: string | |
265 :param communication_body: The communication body text when you create | |
266 an AWS Support case by calling CreateCase. | |
267 | |
268 :type cc_email_addresses: list | |
269 :param cc_email_addresses: A list of email addresses that AWS Support | |
270 copies on case correspondence. | |
271 | |
272 :type language: string | |
273 :param language: The ISO 639-1 code for the language in which AWS | |
274 provides support. AWS Support currently supports English ("en") and | |
275 Japanese ("ja"). Language parameters must be passed explicitly for | |
276 operations that take them. | |
277 | |
278 :type issue_type: string | |
279 :param issue_type: The type of issue for the case. You can specify | |
280 either "customer-service" or "technical." If you do not indicate a | |
281 value, the default is "technical." | |
282 | |
283 :type attachment_set_id: string | |
284 :param attachment_set_id: The ID of a set of one or more attachments | |
285 for the case. Create the set by using AddAttachmentsToSet. | |
286 | |
287 """ | |
288 params = { | |
289 'subject': subject, | |
290 'communicationBody': communication_body, | |
291 } | |
292 if service_code is not None: | |
293 params['serviceCode'] = service_code | |
294 if severity_code is not None: | |
295 params['severityCode'] = severity_code | |
296 if category_code is not None: | |
297 params['categoryCode'] = category_code | |
298 if cc_email_addresses is not None: | |
299 params['ccEmailAddresses'] = cc_email_addresses | |
300 if language is not None: | |
301 params['language'] = language | |
302 if issue_type is not None: | |
303 params['issueType'] = issue_type | |
304 if attachment_set_id is not None: | |
305 params['attachmentSetId'] = attachment_set_id | |
306 return self.make_request(action='CreateCase', | |
307 body=json.dumps(params)) | |
308 | |
309 def describe_attachment(self, attachment_id): | |
310 """ | |
311 Returns the attachment that has the specified ID. Attachment | |
312 IDs are generated by the case management system when you add | |
313 an attachment to a case or case communication. Attachment IDs | |
314 are returned in the AttachmentDetails objects that are | |
315 returned by the DescribeCommunications operation. | |
316 | |
317 :type attachment_id: string | |
318 :param attachment_id: The ID of the attachment to return. Attachment | |
319 IDs are returned by the DescribeCommunications operation. | |
320 | |
321 """ | |
322 params = {'attachmentId': attachment_id, } | |
323 return self.make_request(action='DescribeAttachment', | |
324 body=json.dumps(params)) | |
325 | |
326 def describe_cases(self, case_id_list=None, display_id=None, | |
327 after_time=None, before_time=None, | |
328 include_resolved_cases=None, next_token=None, | |
329 max_results=None, language=None, | |
330 include_communications=None): | |
331 """ | |
332 Returns a list of cases that you specify by passing one or | |
333 more case IDs. In addition, you can filter the cases by date | |
334 by setting values for the `AfterTime` and `BeforeTime` request | |
335 parameters. | |
336 | |
337 Case data is available for 12 months after creation. If a case | |
338 was created more than 12 months ago, a request for data might | |
339 cause an error. | |
340 | |
341 The response returns the following in JSON format: | |
342 | |
343 | |
344 #. One or more CaseDetails data types. | |
345 #. One or more `NextToken` values, which specify where to | |
346 paginate the returned records represented by the `CaseDetails` | |
347 objects. | |
348 | |
349 :type case_id_list: list | |
350 :param case_id_list: A list of ID numbers of the support cases you want | |
351 returned. The maximum number of cases is 100. | |
352 | |
353 :type display_id: string | |
354 :param display_id: The ID displayed for a case in the AWS Support | |
355 Center user interface. | |
356 | |
357 :type after_time: string | |
358 :param after_time: The start date for a filtered date search on support | |
359 case communications. Case communications are available for 12 | |
360 months after creation. | |
361 | |
362 :type before_time: string | |
363 :param before_time: The end date for a filtered date search on support | |
364 case communications. Case communications are available for 12 | |
365 months after creation. | |
366 | |
367 :type include_resolved_cases: boolean | |
368 :param include_resolved_cases: Specifies whether resolved support cases | |
369 should be included in the DescribeCases results. The default is | |
370 false . | |
371 | |
372 :type next_token: string | |
373 :param next_token: A resumption point for pagination. | |
374 | |
375 :type max_results: integer | |
376 :param max_results: The maximum number of results to return before | |
377 paginating. | |
378 | |
379 :type language: string | |
380 :param language: The ISO 639-1 code for the language in which AWS | |
381 provides support. AWS Support currently supports English ("en") and | |
382 Japanese ("ja"). Language parameters must be passed explicitly for | |
383 operations that take them. | |
384 | |
385 :type include_communications: boolean | |
386 :param include_communications: Specifies whether communications should | |
387 be included in the DescribeCases results. The default is true . | |
388 | |
389 """ | |
390 params = {} | |
391 if case_id_list is not None: | |
392 params['caseIdList'] = case_id_list | |
393 if display_id is not None: | |
394 params['displayId'] = display_id | |
395 if after_time is not None: | |
396 params['afterTime'] = after_time | |
397 if before_time is not None: | |
398 params['beforeTime'] = before_time | |
399 if include_resolved_cases is not None: | |
400 params['includeResolvedCases'] = include_resolved_cases | |
401 if next_token is not None: | |
402 params['nextToken'] = next_token | |
403 if max_results is not None: | |
404 params['maxResults'] = max_results | |
405 if language is not None: | |
406 params['language'] = language | |
407 if include_communications is not None: | |
408 params['includeCommunications'] = include_communications | |
409 return self.make_request(action='DescribeCases', | |
410 body=json.dumps(params)) | |
411 | |
412 def describe_communications(self, case_id, before_time=None, | |
413 after_time=None, next_token=None, | |
414 max_results=None): | |
415 """ | |
416 Returns communications (and attachments) for one or more | |
417 support cases. You can use the `AfterTime` and `BeforeTime` | |
418 parameters to filter by date. You can use the `CaseId` | |
419 parameter to restrict the results to a particular case. | |
420 | |
421 Case data is available for 12 months after creation. If a case | |
422 was created more than 12 months ago, a request for data might | |
423 cause an error. | |
424 | |
425 You can use the `MaxResults` and `NextToken` parameters to | |
426 control the pagination of the result set. Set `MaxResults` to | |
427 the number of cases you want displayed on each page, and use | |
428 `NextToken` to specify the resumption of pagination. | |
429 | |
430 :type case_id: string | |
431 :param case_id: The AWS Support case ID requested or returned in the | |
432 call. The case ID is an alphanumeric string formatted as shown in | |
433 this example: case- 12345678910-2013-c4c1d2bf33c5cf47 | |
434 | |
435 :type before_time: string | |
436 :param before_time: The end date for a filtered date search on support | |
437 case communications. Case communications are available for 12 | |
438 months after creation. | |
439 | |
440 :type after_time: string | |
441 :param after_time: The start date for a filtered date search on support | |
442 case communications. Case communications are available for 12 | |
443 months after creation. | |
444 | |
445 :type next_token: string | |
446 :param next_token: A resumption point for pagination. | |
447 | |
448 :type max_results: integer | |
449 :param max_results: The maximum number of results to return before | |
450 paginating. | |
451 | |
452 """ | |
453 params = {'caseId': case_id, } | |
454 if before_time is not None: | |
455 params['beforeTime'] = before_time | |
456 if after_time is not None: | |
457 params['afterTime'] = after_time | |
458 if next_token is not None: | |
459 params['nextToken'] = next_token | |
460 if max_results is not None: | |
461 params['maxResults'] = max_results | |
462 return self.make_request(action='DescribeCommunications', | |
463 body=json.dumps(params)) | |
464 | |
465 def describe_services(self, service_code_list=None, language=None): | |
466 """ | |
467 Returns the current list of AWS services and a list of service | |
468 categories that applies to each one. You then use service | |
469 names and categories in your CreateCase requests. Each AWS | |
470 service has its own set of categories. | |
471 | |
472 The service codes and category codes correspond to the values | |
473 that are displayed in the **Service** and **Category** drop- | |
474 down lists on the AWS Support Center `Open a new case`_ page. | |
475 The values in those fields, however, do not necessarily match | |
476 the service codes and categories returned by the | |
477 `DescribeServices` request. Always use the service codes and | |
478 categories obtained programmatically. This practice ensures | |
479 that you always have the most recent set of service and | |
480 category codes. | |
481 | |
482 :type service_code_list: list | |
483 :param service_code_list: A JSON-formatted list of service codes | |
484 available for AWS services. | |
485 | |
486 :type language: string | |
487 :param language: The ISO 639-1 code for the language in which AWS | |
488 provides support. AWS Support currently supports English ("en") and | |
489 Japanese ("ja"). Language parameters must be passed explicitly for | |
490 operations that take them. | |
491 | |
492 """ | |
493 params = {} | |
494 if service_code_list is not None: | |
495 params['serviceCodeList'] = service_code_list | |
496 if language is not None: | |
497 params['language'] = language | |
498 return self.make_request(action='DescribeServices', | |
499 body=json.dumps(params)) | |
500 | |
501 def describe_severity_levels(self, language=None): | |
502 """ | |
503 Returns the list of severity levels that you can assign to an | |
504 AWS Support case. The severity level for a case is also a | |
505 field in the CaseDetails data type included in any CreateCase | |
506 request. | |
507 | |
508 :type language: string | |
509 :param language: The ISO 639-1 code for the language in which AWS | |
510 provides support. AWS Support currently supports English ("en") and | |
511 Japanese ("ja"). Language parameters must be passed explicitly for | |
512 operations that take them. | |
513 | |
514 """ | |
515 params = {} | |
516 if language is not None: | |
517 params['language'] = language | |
518 return self.make_request(action='DescribeSeverityLevels', | |
519 body=json.dumps(params)) | |
520 | |
521 def describe_trusted_advisor_check_refresh_statuses(self, check_ids): | |
522 """ | |
523 Returns the refresh status of the Trusted Advisor checks that | |
524 have the specified check IDs. Check IDs can be obtained by | |
525 calling DescribeTrustedAdvisorChecks. | |
526 | |
527 :type check_ids: list | |
528 :param check_ids: The IDs of the Trusted Advisor checks. | |
529 | |
530 """ | |
531 params = {'checkIds': check_ids, } | |
532 return self.make_request(action='DescribeTrustedAdvisorCheckRefreshStatuses', | |
533 body=json.dumps(params)) | |
534 | |
535 def describe_trusted_advisor_check_result(self, check_id, language=None): | |
536 """ | |
537 Returns the results of the Trusted Advisor check that has the | |
538 specified check ID. Check IDs can be obtained by calling | |
539 DescribeTrustedAdvisorChecks. | |
540 | |
541 The response contains a TrustedAdvisorCheckResult object, | |
542 which contains these three objects: | |
543 | |
544 | |
545 + TrustedAdvisorCategorySpecificSummary | |
546 + TrustedAdvisorResourceDetail | |
547 + TrustedAdvisorResourcesSummary | |
548 | |
549 | |
550 In addition, the response contains these fields: | |
551 | |
552 | |
553 + **Status.** The alert status of the check: "ok" (green), | |
554 "warning" (yellow), "error" (red), or "not_available". | |
555 + **Timestamp.** The time of the last refresh of the check. | |
556 + **CheckId.** The unique identifier for the check. | |
557 | |
558 :type check_id: string | |
559 :param check_id: The unique identifier for the Trusted Advisor check. | |
560 | |
561 :type language: string | |
562 :param language: The ISO 639-1 code for the language in which AWS | |
563 provides support. AWS Support currently supports English ("en") and | |
564 Japanese ("ja"). Language parameters must be passed explicitly for | |
565 operations that take them. | |
566 | |
567 """ | |
568 params = {'checkId': check_id, } | |
569 if language is not None: | |
570 params['language'] = language | |
571 return self.make_request(action='DescribeTrustedAdvisorCheckResult', | |
572 body=json.dumps(params)) | |
573 | |
574 def describe_trusted_advisor_check_summaries(self, check_ids): | |
575 """ | |
576 Returns the summaries of the results of the Trusted Advisor | |
577 checks that have the specified check IDs. Check IDs can be | |
578 obtained by calling DescribeTrustedAdvisorChecks. | |
579 | |
580 The response contains an array of TrustedAdvisorCheckSummary | |
581 objects. | |
582 | |
583 :type check_ids: list | |
584 :param check_ids: The IDs of the Trusted Advisor checks. | |
585 | |
586 """ | |
587 params = {'checkIds': check_ids, } | |
588 return self.make_request(action='DescribeTrustedAdvisorCheckSummaries', | |
589 body=json.dumps(params)) | |
590 | |
591 def describe_trusted_advisor_checks(self, language): | |
592 """ | |
593 Returns information about all available Trusted Advisor | |
594 checks, including name, ID, category, description, and | |
595 metadata. You must specify a language code; English ("en") and | |
596 Japanese ("ja") are currently supported. The response contains | |
597 a TrustedAdvisorCheckDescription for each check. | |
598 | |
599 :type language: string | |
600 :param language: The ISO 639-1 code for the language in which AWS | |
601 provides support. AWS Support currently supports English ("en") and | |
602 Japanese ("ja"). Language parameters must be passed explicitly for | |
603 operations that take them. | |
604 | |
605 """ | |
606 params = {'language': language, } | |
607 return self.make_request(action='DescribeTrustedAdvisorChecks', | |
608 body=json.dumps(params)) | |
609 | |
610 def refresh_trusted_advisor_check(self, check_id): | |
611 """ | |
612 Requests a refresh of the Trusted Advisor check that has the | |
613 specified check ID. Check IDs can be obtained by calling | |
614 DescribeTrustedAdvisorChecks. | |
615 | |
616 The response contains a RefreshTrustedAdvisorCheckResult | |
617 object, which contains these fields: | |
618 | |
619 | |
620 + **Status.** The refresh status of the check: "none", | |
621 "enqueued", "processing", "success", or "abandoned". | |
622 + **MillisUntilNextRefreshable.** The amount of time, in | |
623 milliseconds, until the check is eligible for refresh. | |
624 + **CheckId.** The unique identifier for the check. | |
625 | |
626 :type check_id: string | |
627 :param check_id: The unique identifier for the Trusted Advisor check. | |
628 | |
629 """ | |
630 params = {'checkId': check_id, } | |
631 return self.make_request(action='RefreshTrustedAdvisorCheck', | |
632 body=json.dumps(params)) | |
633 | |
634 def resolve_case(self, case_id=None): | |
635 """ | |
636 Takes a `CaseId` and returns the initial state of the case | |
637 along with the state of the case after the call to ResolveCase | |
638 completed. | |
639 | |
640 :type case_id: string | |
641 :param case_id: The AWS Support case ID requested or returned in the | |
642 call. The case ID is an alphanumeric string formatted as shown in | |
643 this example: case- 12345678910-2013-c4c1d2bf33c5cf47 | |
644 | |
645 """ | |
646 params = {} | |
647 if case_id is not None: | |
648 params['caseId'] = case_id | |
649 return self.make_request(action='ResolveCase', | |
650 body=json.dumps(params)) | |
651 | |
652 def make_request(self, action, body): | |
653 headers = { | |
654 'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action), | |
655 'Host': self.region.endpoint, | |
656 'Content-Type': 'application/x-amz-json-1.1', | |
657 'Content-Length': str(len(body)), | |
658 } | |
659 http_request = self.build_base_http_request( | |
660 method='POST', path='/', auth_path='/', params={}, | |
661 headers=headers, data=body) | |
662 response = self._mexe(http_request, sender=None, | |
663 override_num_retries=10) | |
664 response_body = response.read().decode('utf-8') | |
665 boto.log.debug(response_body) | |
666 if response.status == 200: | |
667 if response_body: | |
668 return json.loads(response_body) | |
669 else: | |
670 json_body = json.loads(response_body) | |
671 fault_name = json_body.get('__type', None) | |
672 exception_class = self._faults.get(fault_name, self.ResponseError) | |
673 raise exception_class(response.status, response.reason, | |
674 body=json_body) |