rusoto_codecommit/
generated.rs

1// =================================================================
2//
3//                           * WARNING *
4//
5//                    This file is generated!
6//
7//  Changes made to this file will be overwritten. If changes are
8//  required to the generated code, the service_crategen project
9//  must be updated to generate the changes.
10//
11// =================================================================
12
13use std::error::Error;
14use std::fmt;
15
16use async_trait::async_trait;
17use rusoto_core::credential::ProvideAwsCredentials;
18use rusoto_core::region;
19use rusoto_core::request::{BufferedHttpResponse, DispatchSignedRequest};
20use rusoto_core::{Client, RusotoError};
21
22use rusoto_core::proto;
23use rusoto_core::request::HttpResponse;
24use rusoto_core::signature::SignedRequest;
25#[allow(unused_imports)]
26use serde::{Deserialize, Serialize};
27
28impl CodeCommitClient {
29    fn new_signed_request(&self, http_method: &str, request_uri: &str) -> SignedRequest {
30        let mut request = SignedRequest::new(http_method, "codecommit", &self.region, request_uri);
31
32        request.set_content_type("application/x-amz-json-1.1".to_owned());
33
34        request
35    }
36
37    async fn sign_and_dispatch<E>(
38        &self,
39        request: SignedRequest,
40        from_response: fn(BufferedHttpResponse) -> RusotoError<E>,
41    ) -> Result<HttpResponse, RusotoError<E>> {
42        let mut response = self.client.sign_and_dispatch(request).await?;
43        if !response.status.is_success() {
44            let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
45            return Err(from_response(response));
46        }
47
48        Ok(response)
49    }
50}
51
52use serde_json;
53/// <p>Returns information about a specific approval on a pull request.</p>
54#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
55#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
56pub struct Approval {
57    /// <p>The state of the approval, APPROVE or REVOKE. REVOKE states are not stored.</p>
58    #[serde(rename = "approvalState")]
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub approval_state: Option<String>,
61    /// <p>The Amazon Resource Name (ARN) of the user.</p>
62    #[serde(rename = "userArn")]
63    #[serde(skip_serializing_if = "Option::is_none")]
64    pub user_arn: Option<String>,
65}
66
67/// <p>Returns information about an approval rule.</p>
68#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
69#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
70pub struct ApprovalRule {
71    /// <p>The content of the approval rule.</p>
72    #[serde(rename = "approvalRuleContent")]
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub approval_rule_content: Option<String>,
75    /// <p>The system-generated ID of the approval rule.</p>
76    #[serde(rename = "approvalRuleId")]
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub approval_rule_id: Option<String>,
79    /// <p>The name of the approval rule.</p>
80    #[serde(rename = "approvalRuleName")]
81    #[serde(skip_serializing_if = "Option::is_none")]
82    pub approval_rule_name: Option<String>,
83    /// <p>The date the approval rule was created, in timestamp format.</p>
84    #[serde(rename = "creationDate")]
85    #[serde(skip_serializing_if = "Option::is_none")]
86    pub creation_date: Option<f64>,
87    /// <p>The date the approval rule was most recently changed, in timestamp format.</p>
88    #[serde(rename = "lastModifiedDate")]
89    #[serde(skip_serializing_if = "Option::is_none")]
90    pub last_modified_date: Option<f64>,
91    /// <p>The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule.</p>
92    #[serde(rename = "lastModifiedUser")]
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub last_modified_user: Option<String>,
95    /// <p>The approval rule template used to create the rule.</p>
96    #[serde(rename = "originApprovalRuleTemplate")]
97    #[serde(skip_serializing_if = "Option::is_none")]
98    pub origin_approval_rule_template: Option<OriginApprovalRuleTemplate>,
99    /// <p>The SHA-256 hash signature for the content of the approval rule.</p>
100    #[serde(rename = "ruleContentSha256")]
101    #[serde(skip_serializing_if = "Option::is_none")]
102    pub rule_content_sha_256: Option<String>,
103}
104
105/// <p>Returns information about an event for an approval rule.</p>
106#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
107#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
108pub struct ApprovalRuleEventMetadata {
109    /// <p>The content of the approval rule.</p>
110    #[serde(rename = "approvalRuleContent")]
111    #[serde(skip_serializing_if = "Option::is_none")]
112    pub approval_rule_content: Option<String>,
113    /// <p>The system-generated ID of the approval rule.</p>
114    #[serde(rename = "approvalRuleId")]
115    #[serde(skip_serializing_if = "Option::is_none")]
116    pub approval_rule_id: Option<String>,
117    /// <p>The name of the approval rule.</p>
118    #[serde(rename = "approvalRuleName")]
119    #[serde(skip_serializing_if = "Option::is_none")]
120    pub approval_rule_name: Option<String>,
121}
122
123/// <p>Returns information about an override event for approval rules for a pull request.</p>
124#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
125#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
126pub struct ApprovalRuleOverriddenEventMetadata {
127    /// <p>The status of the override event.</p>
128    #[serde(rename = "overrideStatus")]
129    #[serde(skip_serializing_if = "Option::is_none")]
130    pub override_status: Option<String>,
131    /// <p>The revision ID of the pull request when the override event occurred.</p>
132    #[serde(rename = "revisionId")]
133    #[serde(skip_serializing_if = "Option::is_none")]
134    pub revision_id: Option<String>,
135}
136
137/// <p>Returns information about an approval rule template.</p>
138#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
139#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
140pub struct ApprovalRuleTemplate {
141    /// <p>The content of the approval rule template.</p>
142    #[serde(rename = "approvalRuleTemplateContent")]
143    #[serde(skip_serializing_if = "Option::is_none")]
144    pub approval_rule_template_content: Option<String>,
145    /// <p>The description of the approval rule template.</p>
146    #[serde(rename = "approvalRuleTemplateDescription")]
147    #[serde(skip_serializing_if = "Option::is_none")]
148    pub approval_rule_template_description: Option<String>,
149    /// <p>The system-generated ID of the approval rule template.</p>
150    #[serde(rename = "approvalRuleTemplateId")]
151    #[serde(skip_serializing_if = "Option::is_none")]
152    pub approval_rule_template_id: Option<String>,
153    /// <p>The name of the approval rule template.</p>
154    #[serde(rename = "approvalRuleTemplateName")]
155    #[serde(skip_serializing_if = "Option::is_none")]
156    pub approval_rule_template_name: Option<String>,
157    /// <p>The date the approval rule template was created, in timestamp format.</p>
158    #[serde(rename = "creationDate")]
159    #[serde(skip_serializing_if = "Option::is_none")]
160    pub creation_date: Option<f64>,
161    /// <p>The date the approval rule template was most recently changed, in timestamp format.</p>
162    #[serde(rename = "lastModifiedDate")]
163    #[serde(skip_serializing_if = "Option::is_none")]
164    pub last_modified_date: Option<f64>,
165    /// <p>The Amazon Resource Name (ARN) of the user who made the most recent changes to the approval rule template.</p>
166    #[serde(rename = "lastModifiedUser")]
167    #[serde(skip_serializing_if = "Option::is_none")]
168    pub last_modified_user: Option<String>,
169    /// <p>The SHA-256 hash signature for the content of the approval rule template.</p>
170    #[serde(rename = "ruleContentSha256")]
171    #[serde(skip_serializing_if = "Option::is_none")]
172    pub rule_content_sha_256: Option<String>,
173}
174
175/// <p>Returns information about a change in the approval state for a pull request.</p>
176#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
177#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
178pub struct ApprovalStateChangedEventMetadata {
179    /// <p>The approval status for the pull request.</p>
180    #[serde(rename = "approvalStatus")]
181    #[serde(skip_serializing_if = "Option::is_none")]
182    pub approval_status: Option<String>,
183    /// <p>The revision ID of the pull request when the approval state changed.</p>
184    #[serde(rename = "revisionId")]
185    #[serde(skip_serializing_if = "Option::is_none")]
186    pub revision_id: Option<String>,
187}
188
189#[derive(Clone, Debug, Default, PartialEq, Serialize)]
190#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
191pub struct AssociateApprovalRuleTemplateWithRepositoryInput {
192    /// <p>The name for the approval rule template. </p>
193    #[serde(rename = "approvalRuleTemplateName")]
194    pub approval_rule_template_name: String,
195    /// <p>The name of the repository that you want to associate with the template.</p>
196    #[serde(rename = "repositoryName")]
197    pub repository_name: String,
198}
199
200/// <p>Returns information about errors in a BatchAssociateApprovalRuleTemplateWithRepositories operation.</p>
201#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
202#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
203pub struct CodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesError {
204    /// <p>An error code that specifies whether the repository name was not valid or not found.</p>
205    #[serde(rename = "errorCode")]
206    #[serde(skip_serializing_if = "Option::is_none")]
207    pub error_code: Option<String>,
208    /// <p>An error message that provides details about why the repository name was not found or not valid.</p>
209    #[serde(rename = "errorMessage")]
210    #[serde(skip_serializing_if = "Option::is_none")]
211    pub error_message: Option<String>,
212    /// <p>The name of the repository where the association was not made.</p>
213    #[serde(rename = "repositoryName")]
214    #[serde(skip_serializing_if = "Option::is_none")]
215    pub repository_name: Option<String>,
216}
217
218#[derive(Clone, Debug, Default, PartialEq, Serialize)]
219#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
220pub struct BatchAssociateApprovalRuleTemplateWithRepositoriesInput {
221    /// <p>The name of the template you want to associate with one or more repositories.</p>
222    #[serde(rename = "approvalRuleTemplateName")]
223    pub approval_rule_template_name: String,
224    /// <p><p>The names of the repositories you want to associate with the template.</p> <note> <p>The length constraint limit is for each string in the array. The array itself can be empty.</p> </note></p>
225    #[serde(rename = "repositoryNames")]
226    pub repository_names: Vec<String>,
227}
228
229#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
230#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
231pub struct BatchAssociateApprovalRuleTemplateWithRepositoriesOutput {
232    /// <p>A list of names of the repositories that have been associated with the template.</p>
233    #[serde(rename = "associatedRepositoryNames")]
234    pub associated_repository_names: Vec<String>,
235    /// <p>A list of any errors that might have occurred while attempting to create the association between the template and the repositories.</p>
236    #[serde(rename = "errors")]
237    pub errors: Vec<CodeCommitBatchAssociateApprovalRuleTemplateWithRepositoriesError>,
238}
239
240/// <p>Returns information about errors in a BatchDescribeMergeConflicts operation.</p>
241#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
242#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
243pub struct CodeCommitBatchDescribeMergeConflictsError {
244    /// <p>The name of the exception.</p>
245    #[serde(rename = "exceptionName")]
246    pub exception_name: String,
247    /// <p>The path to the file.</p>
248    #[serde(rename = "filePath")]
249    pub file_path: String,
250    /// <p>The message provided by the exception.</p>
251    #[serde(rename = "message")]
252    pub message: String,
253}
254
255#[derive(Clone, Debug, Default, PartialEq, Serialize)]
256#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
257pub struct BatchDescribeMergeConflictsInput {
258    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
259    #[serde(rename = "conflictDetailLevel")]
260    #[serde(skip_serializing_if = "Option::is_none")]
261    pub conflict_detail_level: Option<String>,
262    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
263    #[serde(rename = "conflictResolutionStrategy")]
264    #[serde(skip_serializing_if = "Option::is_none")]
265    pub conflict_resolution_strategy: Option<String>,
266    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
267    #[serde(rename = "destinationCommitSpecifier")]
268    pub destination_commit_specifier: String,
269    /// <p>The path of the target files used to describe the conflicts. If not specified, the default is all conflict files.</p>
270    #[serde(rename = "filePaths")]
271    #[serde(skip_serializing_if = "Option::is_none")]
272    pub file_paths: Option<Vec<String>>,
273    /// <p>The maximum number of files to include in the output.</p>
274    #[serde(rename = "maxConflictFiles")]
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub max_conflict_files: Option<i64>,
277    /// <p>The maximum number of merge hunks to include in the output.</p>
278    #[serde(rename = "maxMergeHunks")]
279    #[serde(skip_serializing_if = "Option::is_none")]
280    pub max_merge_hunks: Option<i64>,
281    /// <p>The merge option or strategy you want to use to merge the code.</p>
282    #[serde(rename = "mergeOption")]
283    pub merge_option: String,
284    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
285    #[serde(rename = "nextToken")]
286    #[serde(skip_serializing_if = "Option::is_none")]
287    pub next_token: Option<String>,
288    /// <p>The name of the repository that contains the merge conflicts you want to review.</p>
289    #[serde(rename = "repositoryName")]
290    pub repository_name: String,
291    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
292    #[serde(rename = "sourceCommitSpecifier")]
293    pub source_commit_specifier: String,
294}
295
296#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
297#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
298pub struct BatchDescribeMergeConflictsOutput {
299    /// <p>The commit ID of the merge base.</p>
300    #[serde(rename = "baseCommitId")]
301    #[serde(skip_serializing_if = "Option::is_none")]
302    pub base_commit_id: Option<String>,
303    /// <p>A list of conflicts for each file, including the conflict metadata and the hunks of the differences between the files.</p>
304    #[serde(rename = "conflicts")]
305    pub conflicts: Vec<Conflict>,
306    /// <p>The commit ID of the destination commit specifier that was used in the merge evaluation.</p>
307    #[serde(rename = "destinationCommitId")]
308    pub destination_commit_id: String,
309    /// <p>A list of any errors returned while describing the merge conflicts for each file.</p>
310    #[serde(rename = "errors")]
311    #[serde(skip_serializing_if = "Option::is_none")]
312    pub errors: Option<Vec<CodeCommitBatchDescribeMergeConflictsError>>,
313    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
314    #[serde(rename = "nextToken")]
315    #[serde(skip_serializing_if = "Option::is_none")]
316    pub next_token: Option<String>,
317    /// <p>The commit ID of the source commit specifier that was used in the merge evaluation.</p>
318    #[serde(rename = "sourceCommitId")]
319    pub source_commit_id: String,
320}
321
322/// <p>Returns information about errors in a BatchDisassociateApprovalRuleTemplateFromRepositories operation.</p>
323#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
324#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
325pub struct CodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesError {
326    /// <p>An error code that specifies whether the repository name was not valid or not found.</p>
327    #[serde(rename = "errorCode")]
328    #[serde(skip_serializing_if = "Option::is_none")]
329    pub error_code: Option<String>,
330    /// <p>An error message that provides details about why the repository name was either not found or not valid.</p>
331    #[serde(rename = "errorMessage")]
332    #[serde(skip_serializing_if = "Option::is_none")]
333    pub error_message: Option<String>,
334    /// <p>The name of the repository where the association with the template was not able to be removed.</p>
335    #[serde(rename = "repositoryName")]
336    #[serde(skip_serializing_if = "Option::is_none")]
337    pub repository_name: Option<String>,
338}
339
340#[derive(Clone, Debug, Default, PartialEq, Serialize)]
341#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
342pub struct BatchDisassociateApprovalRuleTemplateFromRepositoriesInput {
343    /// <p>The name of the template that you want to disassociate from one or more repositories.</p>
344    #[serde(rename = "approvalRuleTemplateName")]
345    pub approval_rule_template_name: String,
346    /// <p><p>The repository names that you want to disassociate from the approval rule template.</p> <note> <p>The length constraint limit is for each string in the array. The array itself can be empty.</p> </note></p>
347    #[serde(rename = "repositoryNames")]
348    pub repository_names: Vec<String>,
349}
350
351#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
352#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
353pub struct BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput {
354    /// <p>A list of repository names that have had their association with the template removed.</p>
355    #[serde(rename = "disassociatedRepositoryNames")]
356    pub disassociated_repository_names: Vec<String>,
357    /// <p>A list of any errors that might have occurred while attempting to remove the association between the template and the repositories.</p>
358    #[serde(rename = "errors")]
359    pub errors: Vec<CodeCommitBatchDisassociateApprovalRuleTemplateFromRepositoriesError>,
360}
361
362/// <p>Returns information about errors in a BatchGetCommits operation.</p>
363#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
364#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
365pub struct CodeCommitBatchGetCommitsError {
366    /// <p>A commit ID that either could not be found or was not in a valid format.</p>
367    #[serde(rename = "commitId")]
368    #[serde(skip_serializing_if = "Option::is_none")]
369    pub commit_id: Option<String>,
370    /// <p>An error code that specifies whether the commit ID was not valid or not found.</p>
371    #[serde(rename = "errorCode")]
372    #[serde(skip_serializing_if = "Option::is_none")]
373    pub error_code: Option<String>,
374    /// <p>An error message that provides detail about why the commit ID either was not found or was not valid.</p>
375    #[serde(rename = "errorMessage")]
376    #[serde(skip_serializing_if = "Option::is_none")]
377    pub error_message: Option<String>,
378}
379
380#[derive(Clone, Debug, Default, PartialEq, Serialize)]
381#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
382pub struct BatchGetCommitsInput {
383    /// <p><p>The full commit IDs of the commits to get information about.</p> <note> <p>You must supply the full SHA IDs of each commit. You cannot use shortened SHA IDs.</p> </note></p>
384    #[serde(rename = "commitIds")]
385    pub commit_ids: Vec<String>,
386    /// <p>The name of the repository that contains the commits.</p>
387    #[serde(rename = "repositoryName")]
388    pub repository_name: String,
389}
390
391#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
392#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
393pub struct BatchGetCommitsOutput {
394    /// <p>An array of commit data type objects, each of which contains information about a specified commit.</p>
395    #[serde(rename = "commits")]
396    #[serde(skip_serializing_if = "Option::is_none")]
397    pub commits: Option<Vec<Commit>>,
398    /// <p>Returns any commit IDs for which information could not be found. For example, if one of the commit IDs was a shortened SHA ID or that commit was not found in the specified repository, the ID returns an error object with more information.</p>
399    #[serde(rename = "errors")]
400    #[serde(skip_serializing_if = "Option::is_none")]
401    pub errors: Option<Vec<CodeCommitBatchGetCommitsError>>,
402}
403
404/// <p>Represents the input of a batch get repositories operation.</p>
405#[derive(Clone, Debug, Default, PartialEq, Serialize)]
406#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
407pub struct BatchGetRepositoriesInput {
408    /// <p><p>The names of the repositories to get information about.</p> <note> <p>The length constraint limit is for each string in the array. The array itself can be empty.</p> </note></p>
409    #[serde(rename = "repositoryNames")]
410    pub repository_names: Vec<String>,
411}
412
413/// <p>Represents the output of a batch get repositories operation.</p>
414#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
415#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
416pub struct BatchGetRepositoriesOutput {
417    /// <p>A list of repositories returned by the batch get repositories operation.</p>
418    #[serde(rename = "repositories")]
419    #[serde(skip_serializing_if = "Option::is_none")]
420    pub repositories: Option<Vec<RepositoryMetadata>>,
421    /// <p>Returns a list of repository names for which information could not be found.</p>
422    #[serde(rename = "repositoriesNotFound")]
423    #[serde(skip_serializing_if = "Option::is_none")]
424    pub repositories_not_found: Option<Vec<String>>,
425}
426
427/// <p>Returns information about a specific Git blob object.</p>
428#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
429#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
430pub struct BlobMetadata {
431    /// <p>The full ID of the blob.</p>
432    #[serde(rename = "blobId")]
433    #[serde(skip_serializing_if = "Option::is_none")]
434    pub blob_id: Option<String>,
435    /// <p><p>The file mode permissions of the blob. File mode permission codes include:</p> <ul> <li> <p> <code>100644</code> indicates read/write</p> </li> <li> <p> <code>100755</code> indicates read/write/execute</p> </li> <li> <p> <code>160000</code> indicates a submodule</p> </li> <li> <p> <code>120000</code> indicates a symlink</p> </li> </ul></p>
436    #[serde(rename = "mode")]
437    #[serde(skip_serializing_if = "Option::is_none")]
438    pub mode: Option<String>,
439    /// <p>The path to the blob and associated file name, if any.</p>
440    #[serde(rename = "path")]
441    #[serde(skip_serializing_if = "Option::is_none")]
442    pub path: Option<String>,
443}
444
445/// <p>Returns information about a branch.</p>
446#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
447#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
448pub struct BranchInfo {
449    /// <p>The name of the branch.</p>
450    #[serde(rename = "branchName")]
451    #[serde(skip_serializing_if = "Option::is_none")]
452    pub branch_name: Option<String>,
453    /// <p>The ID of the last commit made to the branch.</p>
454    #[serde(rename = "commitId")]
455    #[serde(skip_serializing_if = "Option::is_none")]
456    pub commit_id: Option<String>,
457}
458
459/// <p>Returns information about a specific comment.</p>
460#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
461#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
462pub struct Comment {
463    /// <p>The Amazon Resource Name (ARN) of the person who posted the comment.</p>
464    #[serde(rename = "authorArn")]
465    #[serde(skip_serializing_if = "Option::is_none")]
466    pub author_arn: Option<String>,
467    /// <p>The emoji reactions to a comment, if any, submitted by the user whose credentials are associated with the call to the API.</p>
468    #[serde(rename = "callerReactions")]
469    #[serde(skip_serializing_if = "Option::is_none")]
470    pub caller_reactions: Option<Vec<String>>,
471    /// <p>A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
472    #[serde(rename = "clientRequestToken")]
473    #[serde(skip_serializing_if = "Option::is_none")]
474    pub client_request_token: Option<String>,
475    /// <p>The system-generated comment ID.</p>
476    #[serde(rename = "commentId")]
477    #[serde(skip_serializing_if = "Option::is_none")]
478    pub comment_id: Option<String>,
479    /// <p>The content of the comment.</p>
480    #[serde(rename = "content")]
481    #[serde(skip_serializing_if = "Option::is_none")]
482    pub content: Option<String>,
483    /// <p>The date and time the comment was created, in timestamp format.</p>
484    #[serde(rename = "creationDate")]
485    #[serde(skip_serializing_if = "Option::is_none")]
486    pub creation_date: Option<f64>,
487    /// <p>A Boolean value indicating whether the comment has been deleted.</p>
488    #[serde(rename = "deleted")]
489    #[serde(skip_serializing_if = "Option::is_none")]
490    pub deleted: Option<bool>,
491    /// <p>The ID of the comment for which this comment is a reply, if any.</p>
492    #[serde(rename = "inReplyTo")]
493    #[serde(skip_serializing_if = "Option::is_none")]
494    pub in_reply_to: Option<String>,
495    /// <p>The date and time the comment was most recently modified, in timestamp format.</p>
496    #[serde(rename = "lastModifiedDate")]
497    #[serde(skip_serializing_if = "Option::is_none")]
498    pub last_modified_date: Option<f64>,
499    /// <p>A string to integer map that represents the number of individual users who have responded to a comment with the specified reactions.</p>
500    #[serde(rename = "reactionCounts")]
501    #[serde(skip_serializing_if = "Option::is_none")]
502    pub reaction_counts: Option<::std::collections::HashMap<String, i64>>,
503}
504
505/// <p>Returns information about comments on the comparison between two commits.</p>
506#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
507#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
508pub struct CommentsForComparedCommit {
509    /// <p>The full blob ID of the commit used to establish the after of the comparison.</p>
510    #[serde(rename = "afterBlobId")]
511    #[serde(skip_serializing_if = "Option::is_none")]
512    pub after_blob_id: Option<String>,
513    /// <p>The full commit ID of the commit used to establish the after of the comparison.</p>
514    #[serde(rename = "afterCommitId")]
515    #[serde(skip_serializing_if = "Option::is_none")]
516    pub after_commit_id: Option<String>,
517    /// <p>The full blob ID of the commit used to establish the before of the comparison.</p>
518    #[serde(rename = "beforeBlobId")]
519    #[serde(skip_serializing_if = "Option::is_none")]
520    pub before_blob_id: Option<String>,
521    /// <p>The full commit ID of the commit used to establish the before of the comparison.</p>
522    #[serde(rename = "beforeCommitId")]
523    #[serde(skip_serializing_if = "Option::is_none")]
524    pub before_commit_id: Option<String>,
525    /// <p>An array of comment objects. Each comment object contains information about a comment on the comparison between commits.</p>
526    #[serde(rename = "comments")]
527    #[serde(skip_serializing_if = "Option::is_none")]
528    pub comments: Option<Vec<Comment>>,
529    /// <p>Location information about the comment on the comparison, including the file name, line number, and whether the version of the file where the comment was made is BEFORE or AFTER.</p>
530    #[serde(rename = "location")]
531    #[serde(skip_serializing_if = "Option::is_none")]
532    pub location: Option<Location>,
533    /// <p>The name of the repository that contains the compared commits.</p>
534    #[serde(rename = "repositoryName")]
535    #[serde(skip_serializing_if = "Option::is_none")]
536    pub repository_name: Option<String>,
537}
538
539/// <p>Returns information about comments on a pull request.</p>
540#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
541#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
542pub struct CommentsForPullRequest {
543    /// <p>The full blob ID of the file on which you want to comment on the source commit.</p>
544    #[serde(rename = "afterBlobId")]
545    #[serde(skip_serializing_if = "Option::is_none")]
546    pub after_blob_id: Option<String>,
547    /// <p>The full commit ID of the commit that was the tip of the source branch at the time the comment was made. </p>
548    #[serde(rename = "afterCommitId")]
549    #[serde(skip_serializing_if = "Option::is_none")]
550    pub after_commit_id: Option<String>,
551    /// <p>The full blob ID of the file on which you want to comment on the destination commit.</p>
552    #[serde(rename = "beforeBlobId")]
553    #[serde(skip_serializing_if = "Option::is_none")]
554    pub before_blob_id: Option<String>,
555    /// <p>The full commit ID of the commit that was the tip of the destination branch when the pull request was created. This commit is superceded by the after commit in the source branch when and if you merge the source branch into the destination branch.</p>
556    #[serde(rename = "beforeCommitId")]
557    #[serde(skip_serializing_if = "Option::is_none")]
558    pub before_commit_id: Option<String>,
559    /// <p>An array of comment objects. Each comment object contains information about a comment on the pull request.</p>
560    #[serde(rename = "comments")]
561    #[serde(skip_serializing_if = "Option::is_none")]
562    pub comments: Option<Vec<Comment>>,
563    /// <p>Location information about the comment on the pull request, including the file name, line number, and whether the version of the file where the comment was made is BEFORE (destination branch) or AFTER (source branch).</p>
564    #[serde(rename = "location")]
565    #[serde(skip_serializing_if = "Option::is_none")]
566    pub location: Option<Location>,
567    /// <p>The system-generated ID of the pull request.</p>
568    #[serde(rename = "pullRequestId")]
569    #[serde(skip_serializing_if = "Option::is_none")]
570    pub pull_request_id: Option<String>,
571    /// <p>The name of the repository that contains the pull request.</p>
572    #[serde(rename = "repositoryName")]
573    #[serde(skip_serializing_if = "Option::is_none")]
574    pub repository_name: Option<String>,
575}
576
577/// <p>Returns information about a specific commit.</p>
578#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
579#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
580pub struct Commit {
581    /// <p>Any other data associated with the specified commit.</p>
582    #[serde(rename = "additionalData")]
583    #[serde(skip_serializing_if = "Option::is_none")]
584    pub additional_data: Option<String>,
585    /// <p>Information about the author of the specified commit. Information includes the date in timestamp format with GMT offset, the name of the author, and the email address for the author, as configured in Git.</p>
586    #[serde(rename = "author")]
587    #[serde(skip_serializing_if = "Option::is_none")]
588    pub author: Option<UserInfo>,
589    /// <p>The full SHA ID of the specified commit. </p>
590    #[serde(rename = "commitId")]
591    #[serde(skip_serializing_if = "Option::is_none")]
592    pub commit_id: Option<String>,
593    /// <p>Information about the person who committed the specified commit, also known as the committer. Information includes the date in timestamp format with GMT offset, the name of the committer, and the email address for the committer, as configured in Git.</p> <p>For more information about the difference between an author and a committer in Git, see <a href="http://git-scm.com/book/ch2-3.html">Viewing the Commit History</a> in Pro Git by Scott Chacon and Ben Straub.</p>
594    #[serde(rename = "committer")]
595    #[serde(skip_serializing_if = "Option::is_none")]
596    pub committer: Option<UserInfo>,
597    /// <p>The commit message associated with the specified commit.</p>
598    #[serde(rename = "message")]
599    #[serde(skip_serializing_if = "Option::is_none")]
600    pub message: Option<String>,
601    /// <p>A list of parent commits for the specified commit. Each parent commit ID is the full commit ID.</p>
602    #[serde(rename = "parents")]
603    #[serde(skip_serializing_if = "Option::is_none")]
604    pub parents: Option<Vec<String>>,
605    /// <p>Tree information for the specified commit.</p>
606    #[serde(rename = "treeId")]
607    #[serde(skip_serializing_if = "Option::is_none")]
608    pub tree_id: Option<String>,
609}
610
611/// <p>Information about conflicts in a merge operation.</p>
612#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
613#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
614pub struct Conflict {
615    /// <p>Metadata about a conflict in a merge operation.</p>
616    #[serde(rename = "conflictMetadata")]
617    #[serde(skip_serializing_if = "Option::is_none")]
618    pub conflict_metadata: Option<ConflictMetadata>,
619    /// <p>A list of hunks that contain the differences between files or lines causing the conflict.</p>
620    #[serde(rename = "mergeHunks")]
621    #[serde(skip_serializing_if = "Option::is_none")]
622    pub merge_hunks: Option<Vec<MergeHunk>>,
623}
624
625/// <p>Information about the metadata for a conflict in a merge operation.</p>
626#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
627#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
628pub struct ConflictMetadata {
629    /// <p>A boolean value indicating whether there are conflicts in the content of a file.</p>
630    #[serde(rename = "contentConflict")]
631    #[serde(skip_serializing_if = "Option::is_none")]
632    pub content_conflict: Option<bool>,
633    /// <p>A boolean value indicating whether there are conflicts in the file mode of a file.</p>
634    #[serde(rename = "fileModeConflict")]
635    #[serde(skip_serializing_if = "Option::is_none")]
636    pub file_mode_conflict: Option<bool>,
637    /// <p>The file modes of the file in the source, destination, and base of the merge.</p>
638    #[serde(rename = "fileModes")]
639    #[serde(skip_serializing_if = "Option::is_none")]
640    pub file_modes: Option<FileModes>,
641    /// <p>The path of the file that contains conflicts.</p>
642    #[serde(rename = "filePath")]
643    #[serde(skip_serializing_if = "Option::is_none")]
644    pub file_path: Option<String>,
645    /// <p>The file sizes of the file in the source, destination, and base of the merge.</p>
646    #[serde(rename = "fileSizes")]
647    #[serde(skip_serializing_if = "Option::is_none")]
648    pub file_sizes: Option<FileSizes>,
649    /// <p>A boolean value (true or false) indicating whether the file is binary or textual in the source, destination, and base of the merge.</p>
650    #[serde(rename = "isBinaryFile")]
651    #[serde(skip_serializing_if = "Option::is_none")]
652    pub is_binary_file: Option<IsBinaryFile>,
653    /// <p>Whether an add, modify, or delete operation caused the conflict between the source and destination of the merge.</p>
654    #[serde(rename = "mergeOperations")]
655    #[serde(skip_serializing_if = "Option::is_none")]
656    pub merge_operations: Option<MergeOperations>,
657    /// <p>The number of conflicts, including both hunk conflicts and metadata conflicts.</p>
658    #[serde(rename = "numberOfConflicts")]
659    #[serde(skip_serializing_if = "Option::is_none")]
660    pub number_of_conflicts: Option<i64>,
661    /// <p>A boolean value (true or false) indicating whether there are conflicts between the branches in the object type of a file, folder, or submodule.</p>
662    #[serde(rename = "objectTypeConflict")]
663    #[serde(skip_serializing_if = "Option::is_none")]
664    pub object_type_conflict: Option<bool>,
665    /// <p>Information about any object type conflicts in a merge operation.</p>
666    #[serde(rename = "objectTypes")]
667    #[serde(skip_serializing_if = "Option::is_none")]
668    pub object_types: Option<ObjectTypes>,
669}
670
671/// <p>If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.</p>
672#[derive(Clone, Debug, Default, PartialEq, Serialize)]
673#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
674pub struct ConflictResolution {
675    /// <p>Files to be deleted as part of the merge conflict resolution.</p>
676    #[serde(rename = "deleteFiles")]
677    #[serde(skip_serializing_if = "Option::is_none")]
678    pub delete_files: Option<Vec<DeleteFileEntry>>,
679    /// <p>Files to have content replaced as part of the merge conflict resolution.</p>
680    #[serde(rename = "replaceContents")]
681    #[serde(skip_serializing_if = "Option::is_none")]
682    pub replace_contents: Option<Vec<ReplaceContentEntry>>,
683    /// <p>File modes that are set as part of the merge conflict resolution.</p>
684    #[serde(rename = "setFileModes")]
685    #[serde(skip_serializing_if = "Option::is_none")]
686    pub set_file_modes: Option<Vec<SetFileModeEntry>>,
687}
688
689#[derive(Clone, Debug, Default, PartialEq, Serialize)]
690#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
691pub struct CreateApprovalRuleTemplateInput {
692    /// <p><p>The content of the approval rule that is created on pull requests in associated repositories. If you specify one or more destination references (branches), approval rules are created in an associated repository only if their destination references (branches) match those specified in the template.</p> <note> <p>When you create the content of the approval rule template, you can specify approvers in an approval pool in one of two ways:</p> <ul> <li> <p> <b>CodeCommitApprovers</b>: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account <i>123456789012</i> and <i>Mary<em>Major</i>, all of the following are counted as approvals coming from that user:</p> <ul> <li> <p>An IAM user in the account (arn:aws:iam::<i>123456789012</i>:user/<i>Mary</em>Major</i>)</p> </li> <li> <p>A federated user identified in IAM as Mary<em>Major (arn:aws:sts::<i>123456789012</i>:federated-user/<i>Mary</em>Major</i>)</p> </li> </ul> <p>This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of <i>Mary<em>Major</i> (arn:aws:sts::<i>123456789012</i>:assumed-role/CodeCommitReview/<i>Mary</em>Major</i>) unless you include a wildcard (*Mary<em>Major).</p> </li> <li> <p> <b>Fully qualified ARN</b>: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role. </p> </li> </ul> <p>For more information about IAM ARNs, wildcards, and formats, see &lt;a href=&quot;https://docs.aws.amazon.com/IAM/latest/UserGuide/reference</em>identifiers.html&quot;&gt;IAM Identifiers</a> in the <i>IAM User Guide</i>.</p> </note></p>
693    #[serde(rename = "approvalRuleTemplateContent")]
694    pub approval_rule_template_content: String,
695    /// <p>The description of the approval rule template. Consider providing a description that explains what this template does and when it might be appropriate to associate it with repositories.</p>
696    #[serde(rename = "approvalRuleTemplateDescription")]
697    #[serde(skip_serializing_if = "Option::is_none")]
698    pub approval_rule_template_description: Option<String>,
699    /// <p>The name of the approval rule template. Provide descriptive names, because this name is applied to the approval rules created automatically in associated repositories.</p>
700    #[serde(rename = "approvalRuleTemplateName")]
701    pub approval_rule_template_name: String,
702}
703
704#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
705#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
706pub struct CreateApprovalRuleTemplateOutput {
707    /// <p>The content and structure of the created approval rule template.</p>
708    #[serde(rename = "approvalRuleTemplate")]
709    pub approval_rule_template: ApprovalRuleTemplate,
710}
711
712/// <p>Represents the input of a create branch operation.</p>
713#[derive(Clone, Debug, Default, PartialEq, Serialize)]
714#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
715pub struct CreateBranchInput {
716    /// <p>The name of the new branch to create.</p>
717    #[serde(rename = "branchName")]
718    pub branch_name: String,
719    /// <p>The ID of the commit to point the new branch to.</p>
720    #[serde(rename = "commitId")]
721    pub commit_id: String,
722    /// <p>The name of the repository in which you want to create the new branch.</p>
723    #[serde(rename = "repositoryName")]
724    pub repository_name: String,
725}
726
727#[derive(Clone, Debug, Default, PartialEq, Serialize)]
728#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
729pub struct CreateCommitInput {
730    /// <p>The name of the author who created the commit. This information is used as both the author and committer for the commit.</p>
731    #[serde(rename = "authorName")]
732    #[serde(skip_serializing_if = "Option::is_none")]
733    pub author_name: Option<String>,
734    /// <p>The name of the branch where you create the commit.</p>
735    #[serde(rename = "branchName")]
736    pub branch_name: String,
737    /// <p>The commit message you want to include in the commit. Commit messages are limited to 256 KB. If no message is specified, a default message is used.</p>
738    #[serde(rename = "commitMessage")]
739    #[serde(skip_serializing_if = "Option::is_none")]
740    pub commit_message: Option<String>,
741    /// <p>The files to delete in this commit. These files still exist in earlier commits.</p>
742    #[serde(rename = "deleteFiles")]
743    #[serde(skip_serializing_if = "Option::is_none")]
744    pub delete_files: Option<Vec<DeleteFileEntry>>,
745    /// <p>The email address of the person who created the commit.</p>
746    #[serde(rename = "email")]
747    #[serde(skip_serializing_if = "Option::is_none")]
748    pub email: Option<String>,
749    /// <p>If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a ..gitkeep file is created for empty folders. The default is false.</p>
750    #[serde(rename = "keepEmptyFolders")]
751    #[serde(skip_serializing_if = "Option::is_none")]
752    pub keep_empty_folders: Option<bool>,
753    /// <p>The ID of the commit that is the parent of the commit you create. Not required if this is an empty repository.</p>
754    #[serde(rename = "parentCommitId")]
755    #[serde(skip_serializing_if = "Option::is_none")]
756    pub parent_commit_id: Option<String>,
757    /// <p>The files to add or update in this commit.</p>
758    #[serde(rename = "putFiles")]
759    #[serde(skip_serializing_if = "Option::is_none")]
760    pub put_files: Option<Vec<PutFileEntry>>,
761    /// <p>The name of the repository where you create the commit.</p>
762    #[serde(rename = "repositoryName")]
763    pub repository_name: String,
764    /// <p>The file modes to update for files in this commit.</p>
765    #[serde(rename = "setFileModes")]
766    #[serde(skip_serializing_if = "Option::is_none")]
767    pub set_file_modes: Option<Vec<SetFileModeEntry>>,
768}
769
770#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
771#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
772pub struct CreateCommitOutput {
773    /// <p>The full commit ID of the commit that contains your committed file changes.</p>
774    #[serde(rename = "commitId")]
775    #[serde(skip_serializing_if = "Option::is_none")]
776    pub commit_id: Option<String>,
777    /// <p>The files added as part of the committed file changes.</p>
778    #[serde(rename = "filesAdded")]
779    #[serde(skip_serializing_if = "Option::is_none")]
780    pub files_added: Option<Vec<FileMetadata>>,
781    /// <p>The files deleted as part of the committed file changes.</p>
782    #[serde(rename = "filesDeleted")]
783    #[serde(skip_serializing_if = "Option::is_none")]
784    pub files_deleted: Option<Vec<FileMetadata>>,
785    /// <p>The files updated as part of the commited file changes.</p>
786    #[serde(rename = "filesUpdated")]
787    #[serde(skip_serializing_if = "Option::is_none")]
788    pub files_updated: Option<Vec<FileMetadata>>,
789    /// <p>The full SHA-1 pointer of the tree information for the commit that contains the commited file changes.</p>
790    #[serde(rename = "treeId")]
791    #[serde(skip_serializing_if = "Option::is_none")]
792    pub tree_id: Option<String>,
793}
794
795#[derive(Clone, Debug, Default, PartialEq, Serialize)]
796#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
797pub struct CreatePullRequestApprovalRuleInput {
798    /// <p><p>The content of the approval rule, including the number of approvals needed and the structure of an approval pool defined for approvals, if any. For more information about approval pools, see the AWS CodeCommit User Guide.</p> <note> <p>When you create the content of the approval rule, you can specify approvers in an approval pool in one of two ways:</p> <ul> <li> <p> <b>CodeCommitApprovers</b>: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account <i>123456789012</i> and <i>Mary<em>Major</i>, all of the following would be counted as approvals coming from that user:</p> <ul> <li> <p>An IAM user in the account (arn:aws:iam::<i>123456789012</i>:user/<i>Mary</em>Major</i>)</p> </li> <li> <p>A federated user identified in IAM as Mary<em>Major (arn:aws:sts::<i>123456789012</i>:federated-user/<i>Mary</em>Major</i>)</p> </li> </ul> <p>This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of <i>Mary<em>Major</i> (arn:aws:sts::<i>123456789012</i>:assumed-role/CodeCommitReview/<i>Mary</em>Major</i>) unless you include a wildcard (*Mary<em>Major).</p> </li> <li> <p> <b>Fully qualified ARN</b>: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role. </p> </li> </ul> <p>For more information about IAM ARNs, wildcards, and formats, see &lt;a href=&quot;https://docs.aws.amazon.com/IAM/latest/UserGuide/reference</em>identifiers.html&quot;&gt;IAM Identifiers</a> in the <i>IAM User Guide</i>.</p> </note></p>
799    #[serde(rename = "approvalRuleContent")]
800    pub approval_rule_content: String,
801    /// <p>The name for the approval rule.</p>
802    #[serde(rename = "approvalRuleName")]
803    pub approval_rule_name: String,
804    /// <p>The system-generated ID of the pull request for which you want to create the approval rule.</p>
805    #[serde(rename = "pullRequestId")]
806    pub pull_request_id: String,
807}
808
809#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
810#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
811pub struct CreatePullRequestApprovalRuleOutput {
812    /// <p>Information about the created approval rule.</p>
813    #[serde(rename = "approvalRule")]
814    pub approval_rule: ApprovalRule,
815}
816
817#[derive(Clone, Debug, Default, PartialEq, Serialize)]
818#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
819pub struct CreatePullRequestInput {
820    /// <p><p>A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p> <note> <p>The AWS SDKs prepopulate client request tokens. If you are using an AWS SDK, an idempotency token is created for you.</p> </note></p>
821    #[serde(rename = "clientRequestToken")]
822    #[serde(skip_serializing_if = "Option::is_none")]
823    pub client_request_token: Option<String>,
824    /// <p>A description of the pull request.</p>
825    #[serde(rename = "description")]
826    #[serde(skip_serializing_if = "Option::is_none")]
827    pub description: Option<String>,
828    /// <p>The targets for the pull request, including the source of the code to be reviewed (the source branch) and the destination where the creator of the pull request intends the code to be merged after the pull request is closed (the destination branch).</p>
829    #[serde(rename = "targets")]
830    pub targets: Vec<Target>,
831    /// <p>The title of the pull request. This title is used to identify the pull request to other users in the repository.</p>
832    #[serde(rename = "title")]
833    pub title: String,
834}
835
836#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
837#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
838pub struct CreatePullRequestOutput {
839    /// <p>Information about the newly created pull request.</p>
840    #[serde(rename = "pullRequest")]
841    pub pull_request: PullRequest,
842}
843
844/// <p>Represents the input of a create repository operation.</p>
845#[derive(Clone, Debug, Default, PartialEq, Serialize)]
846#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
847pub struct CreateRepositoryInput {
848    /// <p><p>A comment or description about the new repository.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
849    #[serde(rename = "repositoryDescription")]
850    #[serde(skip_serializing_if = "Option::is_none")]
851    pub repository_description: Option<String>,
852    /// <p><p>The name of the new repository to be created.</p> <note> <p>The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. For more information about the limits on repository names, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">Limits</a> in the <i>AWS CodeCommit User Guide</i>. The suffix .git is prohibited.</p> </note></p>
853    #[serde(rename = "repositoryName")]
854    pub repository_name: String,
855    /// <p>One or more tag key-value pairs to use when tagging this repository.</p>
856    #[serde(rename = "tags")]
857    #[serde(skip_serializing_if = "Option::is_none")]
858    pub tags: Option<::std::collections::HashMap<String, String>>,
859}
860
861/// <p>Represents the output of a create repository operation.</p>
862#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
863#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
864pub struct CreateRepositoryOutput {
865    /// <p>Information about the newly created repository.</p>
866    #[serde(rename = "repositoryMetadata")]
867    #[serde(skip_serializing_if = "Option::is_none")]
868    pub repository_metadata: Option<RepositoryMetadata>,
869}
870
871#[derive(Clone, Debug, Default, PartialEq, Serialize)]
872#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
873pub struct CreateUnreferencedMergeCommitInput {
874    /// <p>The name of the author who created the unreferenced commit. This information is used as both the author and committer for the commit.</p>
875    #[serde(rename = "authorName")]
876    #[serde(skip_serializing_if = "Option::is_none")]
877    pub author_name: Option<String>,
878    /// <p>The commit message for the unreferenced commit.</p>
879    #[serde(rename = "commitMessage")]
880    #[serde(skip_serializing_if = "Option::is_none")]
881    pub commit_message: Option<String>,
882    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
883    #[serde(rename = "conflictDetailLevel")]
884    #[serde(skip_serializing_if = "Option::is_none")]
885    pub conflict_detail_level: Option<String>,
886    /// <p>If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.</p>
887    #[serde(rename = "conflictResolution")]
888    #[serde(skip_serializing_if = "Option::is_none")]
889    pub conflict_resolution: Option<ConflictResolution>,
890    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
891    #[serde(rename = "conflictResolutionStrategy")]
892    #[serde(skip_serializing_if = "Option::is_none")]
893    pub conflict_resolution_strategy: Option<String>,
894    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
895    #[serde(rename = "destinationCommitSpecifier")]
896    pub destination_commit_specifier: String,
897    /// <p>The email address for the person who created the unreferenced commit.</p>
898    #[serde(rename = "email")]
899    #[serde(skip_serializing_if = "Option::is_none")]
900    pub email: Option<String>,
901    /// <p>If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false.</p>
902    #[serde(rename = "keepEmptyFolders")]
903    #[serde(skip_serializing_if = "Option::is_none")]
904    pub keep_empty_folders: Option<bool>,
905    /// <p>The merge option or strategy you want to use to merge the code.</p>
906    #[serde(rename = "mergeOption")]
907    pub merge_option: String,
908    /// <p>The name of the repository where you want to create the unreferenced merge commit.</p>
909    #[serde(rename = "repositoryName")]
910    pub repository_name: String,
911    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
912    #[serde(rename = "sourceCommitSpecifier")]
913    pub source_commit_specifier: String,
914}
915
916#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
917#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
918pub struct CreateUnreferencedMergeCommitOutput {
919    /// <p>The full commit ID of the commit that contains your merge results.</p>
920    #[serde(rename = "commitId")]
921    #[serde(skip_serializing_if = "Option::is_none")]
922    pub commit_id: Option<String>,
923    /// <p>The full SHA-1 pointer of the tree information for the commit that contains the merge results.</p>
924    #[serde(rename = "treeId")]
925    #[serde(skip_serializing_if = "Option::is_none")]
926    pub tree_id: Option<String>,
927}
928
929#[derive(Clone, Debug, Default, PartialEq, Serialize)]
930#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
931pub struct DeleteApprovalRuleTemplateInput {
932    /// <p>The name of the approval rule template to delete.</p>
933    #[serde(rename = "approvalRuleTemplateName")]
934    pub approval_rule_template_name: String,
935}
936
937#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
938#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
939pub struct DeleteApprovalRuleTemplateOutput {
940    /// <p>The system-generated ID of the deleted approval rule template. If the template has been previously deleted, the only response is a 200 OK.</p>
941    #[serde(rename = "approvalRuleTemplateId")]
942    pub approval_rule_template_id: String,
943}
944
945/// <p>Represents the input of a delete branch operation.</p>
946#[derive(Clone, Debug, Default, PartialEq, Serialize)]
947#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
948pub struct DeleteBranchInput {
949    /// <p>The name of the branch to delete.</p>
950    #[serde(rename = "branchName")]
951    pub branch_name: String,
952    /// <p>The name of the repository that contains the branch to be deleted.</p>
953    #[serde(rename = "repositoryName")]
954    pub repository_name: String,
955}
956
957/// <p>Represents the output of a delete branch operation.</p>
958#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
959#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
960pub struct DeleteBranchOutput {
961    /// <p>Information about the branch deleted by the operation, including the branch name and the commit ID that was the tip of the branch.</p>
962    #[serde(rename = "deletedBranch")]
963    #[serde(skip_serializing_if = "Option::is_none")]
964    pub deleted_branch: Option<BranchInfo>,
965}
966
967#[derive(Clone, Debug, Default, PartialEq, Serialize)]
968#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
969pub struct DeleteCommentContentInput {
970    /// <p>The unique, system-generated ID of the comment. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.</p>
971    #[serde(rename = "commentId")]
972    pub comment_id: String,
973}
974
975#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
976#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
977pub struct DeleteCommentContentOutput {
978    /// <p>Information about the comment you just deleted.</p>
979    #[serde(rename = "comment")]
980    #[serde(skip_serializing_if = "Option::is_none")]
981    pub comment: Option<Comment>,
982}
983
984/// <p>A file that is deleted as part of a commit.</p>
985#[derive(Clone, Debug, Default, PartialEq, Serialize)]
986#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
987pub struct DeleteFileEntry {
988    /// <p>The full path of the file to be deleted, including the name of the file.</p>
989    #[serde(rename = "filePath")]
990    pub file_path: String,
991}
992
993#[derive(Clone, Debug, Default, PartialEq, Serialize)]
994#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
995pub struct DeleteFileInput {
996    /// <p>The name of the branch where the commit that deletes the file is made.</p>
997    #[serde(rename = "branchName")]
998    pub branch_name: String,
999    /// <p>The commit message you want to include as part of deleting the file. Commit messages are limited to 256 KB. If no message is specified, a default message is used.</p>
1000    #[serde(rename = "commitMessage")]
1001    #[serde(skip_serializing_if = "Option::is_none")]
1002    pub commit_message: Option<String>,
1003    /// <p>The email address for the commit that deletes the file. If no email address is specified, the email address is left blank.</p>
1004    #[serde(rename = "email")]
1005    #[serde(skip_serializing_if = "Option::is_none")]
1006    pub email: Option<String>,
1007    /// <p>The fully qualified path to the file that to be deleted, including the full name and extension of that file. For example, /examples/file.md is a fully qualified path to a file named file.md in a folder named examples.</p>
1008    #[serde(rename = "filePath")]
1009    pub file_path: String,
1010    /// <p>If a file is the only object in the folder or directory, specifies whether to delete the folder or directory that contains the file. By default, empty folders are deleted. This includes empty folders that are part of the directory structure. For example, if the path to a file is dir1/dir2/dir3/dir4, and dir2 and dir3 are empty, deleting the last file in dir4 also deletes the empty folders dir4, dir3, and dir2.</p>
1011    #[serde(rename = "keepEmptyFolders")]
1012    #[serde(skip_serializing_if = "Option::is_none")]
1013    pub keep_empty_folders: Option<bool>,
1014    /// <p>The name of the author of the commit that deletes the file. If no name is specified, the user's ARN is used as the author name and committer name.</p>
1015    #[serde(rename = "name")]
1016    #[serde(skip_serializing_if = "Option::is_none")]
1017    pub name: Option<String>,
1018    /// <p>The ID of the commit that is the tip of the branch where you want to create the commit that deletes the file. This must be the HEAD commit for the branch. The commit that deletes the file is created from this commit ID.</p>
1019    #[serde(rename = "parentCommitId")]
1020    pub parent_commit_id: String,
1021    /// <p>The name of the repository that contains the file to delete.</p>
1022    #[serde(rename = "repositoryName")]
1023    pub repository_name: String,
1024}
1025
1026#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1027#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1028pub struct DeleteFileOutput {
1029    /// <p>The blob ID removed from the tree as part of deleting the file.</p>
1030    #[serde(rename = "blobId")]
1031    pub blob_id: String,
1032    /// <p>The full commit ID of the commit that contains the change that deletes the file.</p>
1033    #[serde(rename = "commitId")]
1034    pub commit_id: String,
1035    /// <p>The fully qualified path to the file to be deleted, including the full name and extension of that file.</p>
1036    #[serde(rename = "filePath")]
1037    pub file_path: String,
1038    /// <p>The full SHA-1 pointer of the tree information for the commit that contains the delete file change.</p>
1039    #[serde(rename = "treeId")]
1040    pub tree_id: String,
1041}
1042
1043#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1044#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1045pub struct DeletePullRequestApprovalRuleInput {
1046    /// <p>The name of the approval rule you want to delete.</p>
1047    #[serde(rename = "approvalRuleName")]
1048    pub approval_rule_name: String,
1049    /// <p>The system-generated ID of the pull request that contains the approval rule you want to delete.</p>
1050    #[serde(rename = "pullRequestId")]
1051    pub pull_request_id: String,
1052}
1053
1054#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1055#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1056pub struct DeletePullRequestApprovalRuleOutput {
1057    /// <p><p>The ID of the deleted approval rule. </p> <note> <p>If the approval rule was deleted in an earlier API call, the response is 200 OK without content.</p> </note></p>
1058    #[serde(rename = "approvalRuleId")]
1059    pub approval_rule_id: String,
1060}
1061
1062/// <p>Represents the input of a delete repository operation.</p>
1063#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1064#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1065pub struct DeleteRepositoryInput {
1066    /// <p>The name of the repository to delete.</p>
1067    #[serde(rename = "repositoryName")]
1068    pub repository_name: String,
1069}
1070
1071/// <p>Represents the output of a delete repository operation.</p>
1072#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1073#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1074pub struct DeleteRepositoryOutput {
1075    /// <p>The ID of the repository that was deleted.</p>
1076    #[serde(rename = "repositoryId")]
1077    #[serde(skip_serializing_if = "Option::is_none")]
1078    pub repository_id: Option<String>,
1079}
1080
1081#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1082#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1083pub struct DescribeMergeConflictsInput {
1084    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
1085    #[serde(rename = "conflictDetailLevel")]
1086    #[serde(skip_serializing_if = "Option::is_none")]
1087    pub conflict_detail_level: Option<String>,
1088    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
1089    #[serde(rename = "conflictResolutionStrategy")]
1090    #[serde(skip_serializing_if = "Option::is_none")]
1091    pub conflict_resolution_strategy: Option<String>,
1092    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1093    #[serde(rename = "destinationCommitSpecifier")]
1094    pub destination_commit_specifier: String,
1095    /// <p>The path of the target files used to describe the conflicts. </p>
1096    #[serde(rename = "filePath")]
1097    pub file_path: String,
1098    /// <p>The maximum number of merge hunks to include in the output.</p>
1099    #[serde(rename = "maxMergeHunks")]
1100    #[serde(skip_serializing_if = "Option::is_none")]
1101    pub max_merge_hunks: Option<i64>,
1102    /// <p>The merge option or strategy you want to use to merge the code.</p>
1103    #[serde(rename = "mergeOption")]
1104    pub merge_option: String,
1105    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1106    #[serde(rename = "nextToken")]
1107    #[serde(skip_serializing_if = "Option::is_none")]
1108    pub next_token: Option<String>,
1109    /// <p>The name of the repository where you want to get information about a merge conflict.</p>
1110    #[serde(rename = "repositoryName")]
1111    pub repository_name: String,
1112    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1113    #[serde(rename = "sourceCommitSpecifier")]
1114    pub source_commit_specifier: String,
1115}
1116
1117#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1118#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1119pub struct DescribeMergeConflictsOutput {
1120    /// <p>The commit ID of the merge base.</p>
1121    #[serde(rename = "baseCommitId")]
1122    #[serde(skip_serializing_if = "Option::is_none")]
1123    pub base_commit_id: Option<String>,
1124    /// <p>Contains metadata about the conflicts found in the merge.</p>
1125    #[serde(rename = "conflictMetadata")]
1126    pub conflict_metadata: ConflictMetadata,
1127    /// <p>The commit ID of the destination commit specifier that was used in the merge evaluation.</p>
1128    #[serde(rename = "destinationCommitId")]
1129    pub destination_commit_id: String,
1130    /// <p>A list of merge hunks of the differences between the files or lines.</p>
1131    #[serde(rename = "mergeHunks")]
1132    pub merge_hunks: Vec<MergeHunk>,
1133    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1134    #[serde(rename = "nextToken")]
1135    #[serde(skip_serializing_if = "Option::is_none")]
1136    pub next_token: Option<String>,
1137    /// <p>The commit ID of the source commit specifier that was used in the merge evaluation.</p>
1138    #[serde(rename = "sourceCommitId")]
1139    pub source_commit_id: String,
1140}
1141
1142#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1143#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1144pub struct DescribePullRequestEventsInput {
1145    /// <p>The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with more commits or changing the status of a pull request.</p>
1146    #[serde(rename = "actorArn")]
1147    #[serde(skip_serializing_if = "Option::is_none")]
1148    pub actor_arn: Option<String>,
1149    /// <p>A non-zero, non-negative integer used to limit the number of returned results. The default is 100 events, which is also the maximum number of events that can be returned in a result.</p>
1150    #[serde(rename = "maxResults")]
1151    #[serde(skip_serializing_if = "Option::is_none")]
1152    pub max_results: Option<i64>,
1153    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1154    #[serde(rename = "nextToken")]
1155    #[serde(skip_serializing_if = "Option::is_none")]
1156    pub next_token: Option<String>,
1157    /// <p>Optional. The pull request event type about which you want to return information.</p>
1158    #[serde(rename = "pullRequestEventType")]
1159    #[serde(skip_serializing_if = "Option::is_none")]
1160    pub pull_request_event_type: Option<String>,
1161    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
1162    #[serde(rename = "pullRequestId")]
1163    pub pull_request_id: String,
1164}
1165
1166#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1167#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1168pub struct DescribePullRequestEventsOutput {
1169    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1170    #[serde(rename = "nextToken")]
1171    #[serde(skip_serializing_if = "Option::is_none")]
1172    pub next_token: Option<String>,
1173    /// <p>Information about the pull request events.</p>
1174    #[serde(rename = "pullRequestEvents")]
1175    pub pull_request_events: Vec<PullRequestEvent>,
1176}
1177
1178/// <p>Returns information about a set of differences for a commit specifier.</p>
1179#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1180#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1181pub struct Difference {
1182    /// <p>Information about an <code>afterBlob</code> data type object, including the ID, the file mode permission code, and the path.</p>
1183    #[serde(rename = "afterBlob")]
1184    #[serde(skip_serializing_if = "Option::is_none")]
1185    pub after_blob: Option<BlobMetadata>,
1186    /// <p>Information about a <code>beforeBlob</code> data type object, including the ID, the file mode permission code, and the path.</p>
1187    #[serde(rename = "beforeBlob")]
1188    #[serde(skip_serializing_if = "Option::is_none")]
1189    pub before_blob: Option<BlobMetadata>,
1190    /// <p>Whether the change type of the difference is an addition (A), deletion (D), or modification (M).</p>
1191    #[serde(rename = "changeType")]
1192    #[serde(skip_serializing_if = "Option::is_none")]
1193    pub change_type: Option<String>,
1194}
1195
1196#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1197#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1198pub struct DisassociateApprovalRuleTemplateFromRepositoryInput {
1199    /// <p>The name of the approval rule template to disassociate from a specified repository.</p>
1200    #[serde(rename = "approvalRuleTemplateName")]
1201    pub approval_rule_template_name: String,
1202    /// <p>The name of the repository you want to disassociate from the template.</p>
1203    #[serde(rename = "repositoryName")]
1204    pub repository_name: String,
1205}
1206
1207#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1208#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1209pub struct EvaluatePullRequestApprovalRulesInput {
1210    /// <p>The system-generated ID of the pull request you want to evaluate.</p>
1211    #[serde(rename = "pullRequestId")]
1212    pub pull_request_id: String,
1213    /// <p>The system-generated ID for the pull request revision. To retrieve the most recent revision ID for a pull request, use <a>GetPullRequest</a>.</p>
1214    #[serde(rename = "revisionId")]
1215    pub revision_id: String,
1216}
1217
1218#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1219#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1220pub struct EvaluatePullRequestApprovalRulesOutput {
1221    /// <p>The result of the evaluation, including the names of the rules whose conditions have been met (if any), the names of the rules whose conditions have not been met (if any), whether the pull request is in the approved state, and whether the pull request approval rule has been set aside by an override. </p>
1222    #[serde(rename = "evaluation")]
1223    pub evaluation: Evaluation,
1224}
1225
1226/// <p>Returns information about the approval rules applied to a pull request and whether conditions have been met.</p>
1227#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1228#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1229pub struct Evaluation {
1230    /// <p>The names of the approval rules that have not had their conditions met.</p>
1231    #[serde(rename = "approvalRulesNotSatisfied")]
1232    #[serde(skip_serializing_if = "Option::is_none")]
1233    pub approval_rules_not_satisfied: Option<Vec<String>>,
1234    /// <p>The names of the approval rules that have had their conditions met.</p>
1235    #[serde(rename = "approvalRulesSatisfied")]
1236    #[serde(skip_serializing_if = "Option::is_none")]
1237    pub approval_rules_satisfied: Option<Vec<String>>,
1238    /// <p>Whether the state of the pull request is approved.</p>
1239    #[serde(rename = "approved")]
1240    #[serde(skip_serializing_if = "Option::is_none")]
1241    pub approved: Option<bool>,
1242    /// <p>Whether the approval rule requirements for the pull request have been overridden and no longer need to be met.</p>
1243    #[serde(rename = "overridden")]
1244    #[serde(skip_serializing_if = "Option::is_none")]
1245    pub overridden: Option<bool>,
1246}
1247
1248/// <p>Returns information about a file in a repository.</p>
1249#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1250#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1251pub struct File {
1252    /// <p>The fully qualified path to the file in the repository.</p>
1253    #[serde(rename = "absolutePath")]
1254    #[serde(skip_serializing_if = "Option::is_none")]
1255    pub absolute_path: Option<String>,
1256    /// <p>The blob ID that contains the file information.</p>
1257    #[serde(rename = "blobId")]
1258    #[serde(skip_serializing_if = "Option::is_none")]
1259    pub blob_id: Option<String>,
1260    /// <p>The extrapolated file mode permissions for the file. Valid values include EXECUTABLE and NORMAL.</p>
1261    #[serde(rename = "fileMode")]
1262    #[serde(skip_serializing_if = "Option::is_none")]
1263    pub file_mode: Option<String>,
1264    /// <p>The relative path of the file from the folder where the query originated.</p>
1265    #[serde(rename = "relativePath")]
1266    #[serde(skip_serializing_if = "Option::is_none")]
1267    pub relative_path: Option<String>,
1268}
1269
1270/// <p>A file to be added, updated, or deleted as part of a commit.</p>
1271#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1272#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1273pub struct FileMetadata {
1274    /// <p>The full path to the file to be added or updated, including the name of the file.</p>
1275    #[serde(rename = "absolutePath")]
1276    #[serde(skip_serializing_if = "Option::is_none")]
1277    pub absolute_path: Option<String>,
1278    /// <p>The blob ID that contains the file information.</p>
1279    #[serde(rename = "blobId")]
1280    #[serde(skip_serializing_if = "Option::is_none")]
1281    pub blob_id: Option<String>,
1282    /// <p>The extrapolated file mode permissions for the file. Valid values include EXECUTABLE and NORMAL.</p>
1283    #[serde(rename = "fileMode")]
1284    #[serde(skip_serializing_if = "Option::is_none")]
1285    pub file_mode: Option<String>,
1286}
1287
1288/// <p>Information about file modes in a merge or pull request.</p>
1289#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1290#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1291pub struct FileModes {
1292    /// <p>The file mode of a file in the base of a merge or pull request.</p>
1293    #[serde(rename = "base")]
1294    #[serde(skip_serializing_if = "Option::is_none")]
1295    pub base: Option<String>,
1296    /// <p>The file mode of a file in the destination of a merge or pull request.</p>
1297    #[serde(rename = "destination")]
1298    #[serde(skip_serializing_if = "Option::is_none")]
1299    pub destination: Option<String>,
1300    /// <p>The file mode of a file in the source of a merge or pull request.</p>
1301    #[serde(rename = "source")]
1302    #[serde(skip_serializing_if = "Option::is_none")]
1303    pub source: Option<String>,
1304}
1305
1306/// <p>Information about the size of files in a merge or pull request.</p>
1307#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1308#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1309pub struct FileSizes {
1310    /// <p>The size of a file in the base of a merge or pull request.</p>
1311    #[serde(rename = "base")]
1312    #[serde(skip_serializing_if = "Option::is_none")]
1313    pub base: Option<i64>,
1314    /// <p>The size of a file in the destination of a merge or pull request.</p>
1315    #[serde(rename = "destination")]
1316    #[serde(skip_serializing_if = "Option::is_none")]
1317    pub destination: Option<i64>,
1318    /// <p>The size of a file in the source of a merge or pull request.</p>
1319    #[serde(rename = "source")]
1320    #[serde(skip_serializing_if = "Option::is_none")]
1321    pub source: Option<i64>,
1322}
1323
1324/// <p>Returns information about a folder in a repository.</p>
1325#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1326#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1327pub struct Folder {
1328    /// <p>The fully qualified path of the folder in the repository.</p>
1329    #[serde(rename = "absolutePath")]
1330    #[serde(skip_serializing_if = "Option::is_none")]
1331    pub absolute_path: Option<String>,
1332    /// <p>The relative path of the specified folder from the folder where the query originated.</p>
1333    #[serde(rename = "relativePath")]
1334    #[serde(skip_serializing_if = "Option::is_none")]
1335    pub relative_path: Option<String>,
1336    /// <p>The full SHA-1 pointer of the tree information for the commit that contains the folder.</p>
1337    #[serde(rename = "treeId")]
1338    #[serde(skip_serializing_if = "Option::is_none")]
1339    pub tree_id: Option<String>,
1340}
1341
1342#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1343#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1344pub struct GetApprovalRuleTemplateInput {
1345    /// <p>The name of the approval rule template for which you want to get information.</p>
1346    #[serde(rename = "approvalRuleTemplateName")]
1347    pub approval_rule_template_name: String,
1348}
1349
1350#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1351#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1352pub struct GetApprovalRuleTemplateOutput {
1353    /// <p>The content and structure of the approval rule template.</p>
1354    #[serde(rename = "approvalRuleTemplate")]
1355    pub approval_rule_template: ApprovalRuleTemplate,
1356}
1357
1358/// <p>Represents the input of a get blob operation.</p>
1359#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1360#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1361pub struct GetBlobInput {
1362    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
1363    #[serde(rename = "blobId")]
1364    pub blob_id: String,
1365    /// <p>The name of the repository that contains the blob.</p>
1366    #[serde(rename = "repositoryName")]
1367    pub repository_name: String,
1368}
1369
1370/// <p>Represents the output of a get blob operation.</p>
1371#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1372#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1373pub struct GetBlobOutput {
1374    /// <p>The content of the blob, usually a file.</p>
1375    #[serde(rename = "content")]
1376    #[serde(
1377        deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
1378        serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
1379        default
1380    )]
1381    pub content: bytes::Bytes,
1382}
1383
1384/// <p>Represents the input of a get branch operation.</p>
1385#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1386#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1387pub struct GetBranchInput {
1388    /// <p>The name of the branch for which you want to retrieve information.</p>
1389    #[serde(rename = "branchName")]
1390    #[serde(skip_serializing_if = "Option::is_none")]
1391    pub branch_name: Option<String>,
1392    /// <p>The name of the repository that contains the branch for which you want to retrieve information.</p>
1393    #[serde(rename = "repositoryName")]
1394    #[serde(skip_serializing_if = "Option::is_none")]
1395    pub repository_name: Option<String>,
1396}
1397
1398/// <p>Represents the output of a get branch operation.</p>
1399#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1400#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1401pub struct GetBranchOutput {
1402    /// <p>The name of the branch.</p>
1403    #[serde(rename = "branch")]
1404    #[serde(skip_serializing_if = "Option::is_none")]
1405    pub branch: Option<BranchInfo>,
1406}
1407
1408#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1409#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1410pub struct GetCommentInput {
1411    /// <p>The unique, system-generated ID of the comment. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.</p>
1412    #[serde(rename = "commentId")]
1413    pub comment_id: String,
1414}
1415
1416#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1417#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1418pub struct GetCommentOutput {
1419    /// <p>The contents of the comment.</p>
1420    #[serde(rename = "comment")]
1421    #[serde(skip_serializing_if = "Option::is_none")]
1422    pub comment: Option<Comment>,
1423}
1424
1425#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1426#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1427pub struct GetCommentReactionsInput {
1428    /// <p>The ID of the comment for which you want to get reactions information.</p>
1429    #[serde(rename = "commentId")]
1430    pub comment_id: String,
1431    /// <p>A non-zero, non-negative integer used to limit the number of returned results. The default is the same as the allowed maximum, 1,000.</p>
1432    #[serde(rename = "maxResults")]
1433    #[serde(skip_serializing_if = "Option::is_none")]
1434    pub max_results: Option<i64>,
1435    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results. </p>
1436    #[serde(rename = "nextToken")]
1437    #[serde(skip_serializing_if = "Option::is_none")]
1438    pub next_token: Option<String>,
1439    /// <p>Optional. The Amazon Resource Name (ARN) of the user or identity for which you want to get reaction information.</p>
1440    #[serde(rename = "reactionUserArn")]
1441    #[serde(skip_serializing_if = "Option::is_none")]
1442    pub reaction_user_arn: Option<String>,
1443}
1444
1445#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1446#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1447pub struct GetCommentReactionsOutput {
1448    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1449    #[serde(rename = "nextToken")]
1450    #[serde(skip_serializing_if = "Option::is_none")]
1451    pub next_token: Option<String>,
1452    /// <p>An array of reactions to the specified comment.</p>
1453    #[serde(rename = "reactionsForComment")]
1454    pub reactions_for_comment: Vec<ReactionForComment>,
1455}
1456
1457#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1458#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1459pub struct GetCommentsForComparedCommitInput {
1460    /// <p>To establish the directionality of the comparison, the full commit ID of the after commit.</p>
1461    #[serde(rename = "afterCommitId")]
1462    pub after_commit_id: String,
1463    /// <p>To establish the directionality of the comparison, the full commit ID of the before commit.</p>
1464    #[serde(rename = "beforeCommitId")]
1465    #[serde(skip_serializing_if = "Option::is_none")]
1466    pub before_commit_id: Option<String>,
1467    /// <p>A non-zero, non-negative integer used to limit the number of returned results. The default is 100 comments, but you can configure up to 500.</p>
1468    #[serde(rename = "maxResults")]
1469    #[serde(skip_serializing_if = "Option::is_none")]
1470    pub max_results: Option<i64>,
1471    /// <p>An enumeration token that when provided in a request, returns the next batch of the results. </p>
1472    #[serde(rename = "nextToken")]
1473    #[serde(skip_serializing_if = "Option::is_none")]
1474    pub next_token: Option<String>,
1475    /// <p>The name of the repository where you want to compare commits.</p>
1476    #[serde(rename = "repositoryName")]
1477    pub repository_name: String,
1478}
1479
1480#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1481#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1482pub struct GetCommentsForComparedCommitOutput {
1483    /// <p>A list of comment objects on the compared commit.</p>
1484    #[serde(rename = "commentsForComparedCommitData")]
1485    #[serde(skip_serializing_if = "Option::is_none")]
1486    pub comments_for_compared_commit_data: Option<Vec<CommentsForComparedCommit>>,
1487    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1488    #[serde(rename = "nextToken")]
1489    #[serde(skip_serializing_if = "Option::is_none")]
1490    pub next_token: Option<String>,
1491}
1492
1493#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1494#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1495pub struct GetCommentsForPullRequestInput {
1496    /// <p>The full commit ID of the commit in the source branch that was the tip of the branch at the time the comment was made.</p>
1497    #[serde(rename = "afterCommitId")]
1498    #[serde(skip_serializing_if = "Option::is_none")]
1499    pub after_commit_id: Option<String>,
1500    /// <p>The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.</p>
1501    #[serde(rename = "beforeCommitId")]
1502    #[serde(skip_serializing_if = "Option::is_none")]
1503    pub before_commit_id: Option<String>,
1504    /// <p>A non-zero, non-negative integer used to limit the number of returned results. The default is 100 comments. You can return up to 500 comments with a single request.</p>
1505    #[serde(rename = "maxResults")]
1506    #[serde(skip_serializing_if = "Option::is_none")]
1507    pub max_results: Option<i64>,
1508    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1509    #[serde(rename = "nextToken")]
1510    #[serde(skip_serializing_if = "Option::is_none")]
1511    pub next_token: Option<String>,
1512    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
1513    #[serde(rename = "pullRequestId")]
1514    pub pull_request_id: String,
1515    /// <p>The name of the repository that contains the pull request.</p>
1516    #[serde(rename = "repositoryName")]
1517    #[serde(skip_serializing_if = "Option::is_none")]
1518    pub repository_name: Option<String>,
1519}
1520
1521#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1522#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1523pub struct GetCommentsForPullRequestOutput {
1524    /// <p>An array of comment objects on the pull request.</p>
1525    #[serde(rename = "commentsForPullRequestData")]
1526    #[serde(skip_serializing_if = "Option::is_none")]
1527    pub comments_for_pull_request_data: Option<Vec<CommentsForPullRequest>>,
1528    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1529    #[serde(rename = "nextToken")]
1530    #[serde(skip_serializing_if = "Option::is_none")]
1531    pub next_token: Option<String>,
1532}
1533
1534/// <p>Represents the input of a get commit operation.</p>
1535#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1536#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1537pub struct GetCommitInput {
1538    /// <p>The commit ID. Commit IDs are the full SHA ID of the commit.</p>
1539    #[serde(rename = "commitId")]
1540    pub commit_id: String,
1541    /// <p>The name of the repository to which the commit was made.</p>
1542    #[serde(rename = "repositoryName")]
1543    pub repository_name: String,
1544}
1545
1546/// <p>Represents the output of a get commit operation.</p>
1547#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1548#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1549pub struct GetCommitOutput {
1550    /// <p>A commit data type object that contains information about the specified commit.</p>
1551    #[serde(rename = "commit")]
1552    pub commit: Commit,
1553}
1554
1555#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1556#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1557pub struct GetDifferencesInput {
1558    /// <p>A non-zero, non-negative integer used to limit the number of returned results.</p>
1559    #[serde(rename = "MaxResults")]
1560    #[serde(skip_serializing_if = "Option::is_none")]
1561    pub max_results: Option<i64>,
1562    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1563    #[serde(rename = "NextToken")]
1564    #[serde(skip_serializing_if = "Option::is_none")]
1565    pub next_token: Option<String>,
1566    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit.</p>
1567    #[serde(rename = "afterCommitSpecifier")]
1568    pub after_commit_specifier: String,
1569    /// <p>The file path in which to check differences. Limits the results to this path. Can also be used to specify the changed name of a directory or folder, if it has changed. If not specified, differences are shown for all paths.</p>
1570    #[serde(rename = "afterPath")]
1571    #[serde(skip_serializing_if = "Option::is_none")]
1572    pub after_path: Option<String>,
1573    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, the full commit ID). Optional. If not specified, all changes before the <code>afterCommitSpecifier</code> value are shown. If you do not use <code>beforeCommitSpecifier</code> in your request, consider limiting the results with <code>maxResults</code>.</p>
1574    #[serde(rename = "beforeCommitSpecifier")]
1575    #[serde(skip_serializing_if = "Option::is_none")]
1576    pub before_commit_specifier: Option<String>,
1577    /// <p>The file path in which to check for differences. Limits the results to this path. Can also be used to specify the previous name of a directory or folder. If <code>beforePath</code> and <code>afterPath</code> are not specified, differences are shown for all paths.</p>
1578    #[serde(rename = "beforePath")]
1579    #[serde(skip_serializing_if = "Option::is_none")]
1580    pub before_path: Option<String>,
1581    /// <p>The name of the repository where you want to get differences.</p>
1582    #[serde(rename = "repositoryName")]
1583    pub repository_name: String,
1584}
1585
1586#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1587#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1588pub struct GetDifferencesOutput {
1589    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1590    #[serde(rename = "NextToken")]
1591    #[serde(skip_serializing_if = "Option::is_none")]
1592    pub next_token: Option<String>,
1593    /// <p>A data type object that contains information about the differences, including whether the difference is added, modified, or deleted (A, D, M).</p>
1594    #[serde(rename = "differences")]
1595    #[serde(skip_serializing_if = "Option::is_none")]
1596    pub differences: Option<Vec<Difference>>,
1597}
1598
1599#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1600#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1601pub struct GetFileInput {
1602    /// <p>The fully quaified reference that identifies the commit that contains the file. For example, you can specify a full commit ID, a tag, a branch name, or a reference such as refs/heads/master. If none is provided, the head commit is used.</p>
1603    #[serde(rename = "commitSpecifier")]
1604    #[serde(skip_serializing_if = "Option::is_none")]
1605    pub commit_specifier: Option<String>,
1606    /// <p>The fully qualified path to the file, including the full name and extension of the file. For example, /examples/file.md is the fully qualified path to a file named file.md in a folder named examples.</p>
1607    #[serde(rename = "filePath")]
1608    pub file_path: String,
1609    /// <p>The name of the repository that contains the file.</p>
1610    #[serde(rename = "repositoryName")]
1611    pub repository_name: String,
1612}
1613
1614#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1615#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1616pub struct GetFileOutput {
1617    /// <p>The blob ID of the object that represents the file content.</p>
1618    #[serde(rename = "blobId")]
1619    pub blob_id: String,
1620    /// <p>The full commit ID of the commit that contains the content returned by GetFile.</p>
1621    #[serde(rename = "commitId")]
1622    pub commit_id: String,
1623    /// <p>The base-64 encoded binary data object that represents the content of the file.</p>
1624    #[serde(rename = "fileContent")]
1625    #[serde(
1626        deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
1627        serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
1628        default
1629    )]
1630    pub file_content: bytes::Bytes,
1631    /// <p><p>The extrapolated file mode permissions of the blob. Valid values include strings such as EXECUTABLE and not numeric values.</p> <note> <p>The file mode permissions returned by this API are not the standard file mode permission values, such as 100644, but rather extrapolated values. See the supported return values.</p> </note></p>
1632    #[serde(rename = "fileMode")]
1633    pub file_mode: String,
1634    /// <p>The fully qualified path to the specified file. Returns the name and extension of the file.</p>
1635    #[serde(rename = "filePath")]
1636    pub file_path: String,
1637    /// <p>The size of the contents of the file, in bytes.</p>
1638    #[serde(rename = "fileSize")]
1639    pub file_size: i64,
1640}
1641
1642#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1643#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1644pub struct GetFolderInput {
1645    /// <p>A fully qualified reference used to identify a commit that contains the version of the folder's content to return. A fully qualified reference can be a commit ID, branch name, tag, or reference such as HEAD. If no specifier is provided, the folder content is returned as it exists in the HEAD commit.</p>
1646    #[serde(rename = "commitSpecifier")]
1647    #[serde(skip_serializing_if = "Option::is_none")]
1648    pub commit_specifier: Option<String>,
1649    /// <p>The fully qualified path to the folder whose contents are returned, including the folder name. For example, /examples is a fully-qualified path to a folder named examples that was created off of the root directory (/) of a repository. </p>
1650    #[serde(rename = "folderPath")]
1651    pub folder_path: String,
1652    /// <p>The name of the repository.</p>
1653    #[serde(rename = "repositoryName")]
1654    pub repository_name: String,
1655}
1656
1657#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1658#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1659pub struct GetFolderOutput {
1660    /// <p>The full commit ID used as a reference for the returned version of the folder content.</p>
1661    #[serde(rename = "commitId")]
1662    pub commit_id: String,
1663    /// <p>The list of files in the specified folder, if any.</p>
1664    #[serde(rename = "files")]
1665    #[serde(skip_serializing_if = "Option::is_none")]
1666    pub files: Option<Vec<File>>,
1667    /// <p>The fully qualified path of the folder whose contents are returned.</p>
1668    #[serde(rename = "folderPath")]
1669    pub folder_path: String,
1670    /// <p>The list of folders that exist under the specified folder, if any.</p>
1671    #[serde(rename = "subFolders")]
1672    #[serde(skip_serializing_if = "Option::is_none")]
1673    pub sub_folders: Option<Vec<Folder>>,
1674    /// <p>The list of submodules in the specified folder, if any.</p>
1675    #[serde(rename = "subModules")]
1676    #[serde(skip_serializing_if = "Option::is_none")]
1677    pub sub_modules: Option<Vec<SubModule>>,
1678    /// <p>The list of symbolic links to other files and folders in the specified folder, if any.</p>
1679    #[serde(rename = "symbolicLinks")]
1680    #[serde(skip_serializing_if = "Option::is_none")]
1681    pub symbolic_links: Option<Vec<SymbolicLink>>,
1682    /// <p>The full SHA-1 pointer of the tree information for the commit that contains the folder.</p>
1683    #[serde(rename = "treeId")]
1684    #[serde(skip_serializing_if = "Option::is_none")]
1685    pub tree_id: Option<String>,
1686}
1687
1688#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1689#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1690pub struct GetMergeCommitInput {
1691    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
1692    #[serde(rename = "conflictDetailLevel")]
1693    #[serde(skip_serializing_if = "Option::is_none")]
1694    pub conflict_detail_level: Option<String>,
1695    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
1696    #[serde(rename = "conflictResolutionStrategy")]
1697    #[serde(skip_serializing_if = "Option::is_none")]
1698    pub conflict_resolution_strategy: Option<String>,
1699    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1700    #[serde(rename = "destinationCommitSpecifier")]
1701    pub destination_commit_specifier: String,
1702    /// <p>The name of the repository that contains the merge commit about which you want to get information.</p>
1703    #[serde(rename = "repositoryName")]
1704    pub repository_name: String,
1705    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1706    #[serde(rename = "sourceCommitSpecifier")]
1707    pub source_commit_specifier: String,
1708}
1709
1710#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1711#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1712pub struct GetMergeCommitOutput {
1713    /// <p>The commit ID of the merge base.</p>
1714    #[serde(rename = "baseCommitId")]
1715    #[serde(skip_serializing_if = "Option::is_none")]
1716    pub base_commit_id: Option<String>,
1717    /// <p>The commit ID of the destination commit specifier that was used in the merge evaluation.</p>
1718    #[serde(rename = "destinationCommitId")]
1719    #[serde(skip_serializing_if = "Option::is_none")]
1720    pub destination_commit_id: Option<String>,
1721    /// <p>The commit ID for the merge commit created when the source branch was merged into the destination branch. If the fast-forward merge strategy was used, there is no merge commit.</p>
1722    #[serde(rename = "mergedCommitId")]
1723    #[serde(skip_serializing_if = "Option::is_none")]
1724    pub merged_commit_id: Option<String>,
1725    /// <p>The commit ID of the source commit specifier that was used in the merge evaluation.</p>
1726    #[serde(rename = "sourceCommitId")]
1727    #[serde(skip_serializing_if = "Option::is_none")]
1728    pub source_commit_id: Option<String>,
1729}
1730
1731#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1732#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1733pub struct GetMergeConflictsInput {
1734    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
1735    #[serde(rename = "conflictDetailLevel")]
1736    #[serde(skip_serializing_if = "Option::is_none")]
1737    pub conflict_detail_level: Option<String>,
1738    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
1739    #[serde(rename = "conflictResolutionStrategy")]
1740    #[serde(skip_serializing_if = "Option::is_none")]
1741    pub conflict_resolution_strategy: Option<String>,
1742    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1743    #[serde(rename = "destinationCommitSpecifier")]
1744    pub destination_commit_specifier: String,
1745    /// <p>The maximum number of files to include in the output.</p>
1746    #[serde(rename = "maxConflictFiles")]
1747    #[serde(skip_serializing_if = "Option::is_none")]
1748    pub max_conflict_files: Option<i64>,
1749    /// <p>The merge option or strategy you want to use to merge the code. </p>
1750    #[serde(rename = "mergeOption")]
1751    pub merge_option: String,
1752    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1753    #[serde(rename = "nextToken")]
1754    #[serde(skip_serializing_if = "Option::is_none")]
1755    pub next_token: Option<String>,
1756    /// <p>The name of the repository where the pull request was created.</p>
1757    #[serde(rename = "repositoryName")]
1758    pub repository_name: String,
1759    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1760    #[serde(rename = "sourceCommitSpecifier")]
1761    pub source_commit_specifier: String,
1762}
1763
1764#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1765#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1766pub struct GetMergeConflictsOutput {
1767    /// <p>The commit ID of the merge base.</p>
1768    #[serde(rename = "baseCommitId")]
1769    #[serde(skip_serializing_if = "Option::is_none")]
1770    pub base_commit_id: Option<String>,
1771    /// <p>A list of metadata for any conflicting files. If the specified merge strategy is FAST_FORWARD_MERGE, this list is always empty.</p>
1772    #[serde(rename = "conflictMetadataList")]
1773    pub conflict_metadata_list: Vec<ConflictMetadata>,
1774    /// <p>The commit ID of the destination commit specifier that was used in the merge evaluation.</p>
1775    #[serde(rename = "destinationCommitId")]
1776    pub destination_commit_id: String,
1777    /// <p>A Boolean value that indicates whether the code is mergeable by the specified merge option.</p>
1778    #[serde(rename = "mergeable")]
1779    pub mergeable: bool,
1780    /// <p>An enumeration token that can be used in a request to return the next batch of the results.</p>
1781    #[serde(rename = "nextToken")]
1782    #[serde(skip_serializing_if = "Option::is_none")]
1783    pub next_token: Option<String>,
1784    /// <p>The commit ID of the source commit specifier that was used in the merge evaluation.</p>
1785    #[serde(rename = "sourceCommitId")]
1786    pub source_commit_id: String,
1787}
1788
1789#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1790#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1791pub struct GetMergeOptionsInput {
1792    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
1793    #[serde(rename = "conflictDetailLevel")]
1794    #[serde(skip_serializing_if = "Option::is_none")]
1795    pub conflict_detail_level: Option<String>,
1796    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
1797    #[serde(rename = "conflictResolutionStrategy")]
1798    #[serde(skip_serializing_if = "Option::is_none")]
1799    pub conflict_resolution_strategy: Option<String>,
1800    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1801    #[serde(rename = "destinationCommitSpecifier")]
1802    pub destination_commit_specifier: String,
1803    /// <p>The name of the repository that contains the commits about which you want to get merge options.</p>
1804    #[serde(rename = "repositoryName")]
1805    pub repository_name: String,
1806    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
1807    #[serde(rename = "sourceCommitSpecifier")]
1808    pub source_commit_specifier: String,
1809}
1810
1811#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1812#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1813pub struct GetMergeOptionsOutput {
1814    /// <p>The commit ID of the merge base.</p>
1815    #[serde(rename = "baseCommitId")]
1816    pub base_commit_id: String,
1817    /// <p>The commit ID of the destination commit specifier that was used in the merge evaluation.</p>
1818    #[serde(rename = "destinationCommitId")]
1819    pub destination_commit_id: String,
1820    /// <p>The merge option or strategy used to merge the code.</p>
1821    #[serde(rename = "mergeOptions")]
1822    pub merge_options: Vec<String>,
1823    /// <p>The commit ID of the source commit specifier that was used in the merge evaluation.</p>
1824    #[serde(rename = "sourceCommitId")]
1825    pub source_commit_id: String,
1826}
1827
1828#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1829#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1830pub struct GetPullRequestApprovalStatesInput {
1831    /// <p>The system-generated ID for the pull request.</p>
1832    #[serde(rename = "pullRequestId")]
1833    pub pull_request_id: String,
1834    /// <p>The system-generated ID for the pull request revision.</p>
1835    #[serde(rename = "revisionId")]
1836    pub revision_id: String,
1837}
1838
1839#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1840#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1841pub struct GetPullRequestApprovalStatesOutput {
1842    /// <p>Information about users who have approved the pull request.</p>
1843    #[serde(rename = "approvals")]
1844    #[serde(skip_serializing_if = "Option::is_none")]
1845    pub approvals: Option<Vec<Approval>>,
1846}
1847
1848#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1849#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1850pub struct GetPullRequestInput {
1851    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
1852    #[serde(rename = "pullRequestId")]
1853    pub pull_request_id: String,
1854}
1855
1856#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1857#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1858pub struct GetPullRequestOutput {
1859    /// <p>Information about the specified pull request.</p>
1860    #[serde(rename = "pullRequest")]
1861    pub pull_request: PullRequest,
1862}
1863
1864#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1865#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1866pub struct GetPullRequestOverrideStateInput {
1867    /// <p>The ID of the pull request for which you want to get information about whether approval rules have been set aside (overridden).</p>
1868    #[serde(rename = "pullRequestId")]
1869    pub pull_request_id: String,
1870    /// <p>The system-generated ID of the revision for the pull request. To retrieve the most recent revision ID, use <a>GetPullRequest</a>.</p>
1871    #[serde(rename = "revisionId")]
1872    pub revision_id: String,
1873}
1874
1875#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1876#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1877pub struct GetPullRequestOverrideStateOutput {
1878    /// <p>A Boolean value that indicates whether a pull request has had its rules set aside (TRUE) or whether all approval rules still apply (FALSE).</p>
1879    #[serde(rename = "overridden")]
1880    #[serde(skip_serializing_if = "Option::is_none")]
1881    pub overridden: Option<bool>,
1882    /// <p>The Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request.</p>
1883    #[serde(rename = "overrider")]
1884    #[serde(skip_serializing_if = "Option::is_none")]
1885    pub overrider: Option<String>,
1886}
1887
1888/// <p>Represents the input of a get repository operation.</p>
1889#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1890#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1891pub struct GetRepositoryInput {
1892    /// <p>The name of the repository to get information about.</p>
1893    #[serde(rename = "repositoryName")]
1894    pub repository_name: String,
1895}
1896
1897/// <p>Represents the output of a get repository operation.</p>
1898#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1899#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1900pub struct GetRepositoryOutput {
1901    /// <p>Information about the repository.</p>
1902    #[serde(rename = "repositoryMetadata")]
1903    #[serde(skip_serializing_if = "Option::is_none")]
1904    pub repository_metadata: Option<RepositoryMetadata>,
1905}
1906
1907/// <p>Represents the input of a get repository triggers operation.</p>
1908#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1909#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1910pub struct GetRepositoryTriggersInput {
1911    /// <p>The name of the repository for which the trigger is configured.</p>
1912    #[serde(rename = "repositoryName")]
1913    pub repository_name: String,
1914}
1915
1916/// <p>Represents the output of a get repository triggers operation.</p>
1917#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1918#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1919pub struct GetRepositoryTriggersOutput {
1920    /// <p>The system-generated unique ID for the trigger.</p>
1921    #[serde(rename = "configurationId")]
1922    #[serde(skip_serializing_if = "Option::is_none")]
1923    pub configuration_id: Option<String>,
1924    /// <p>The JSON block of configuration information for each trigger.</p>
1925    #[serde(rename = "triggers")]
1926    #[serde(skip_serializing_if = "Option::is_none")]
1927    pub triggers: Option<Vec<RepositoryTrigger>>,
1928}
1929
1930/// <p>Information about whether a file is binary or textual in a merge or pull request operation.</p>
1931#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1932#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1933pub struct IsBinaryFile {
1934    /// <p>The binary or non-binary status of a file in the base of a merge or pull request.</p>
1935    #[serde(rename = "base")]
1936    #[serde(skip_serializing_if = "Option::is_none")]
1937    pub base: Option<bool>,
1938    /// <p>The binary or non-binary status of a file in the destination of a merge or pull request.</p>
1939    #[serde(rename = "destination")]
1940    #[serde(skip_serializing_if = "Option::is_none")]
1941    pub destination: Option<bool>,
1942    /// <p>The binary or non-binary status of file in the source of a merge or pull request.</p>
1943    #[serde(rename = "source")]
1944    #[serde(skip_serializing_if = "Option::is_none")]
1945    pub source: Option<bool>,
1946}
1947
1948#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1949#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1950pub struct ListApprovalRuleTemplatesInput {
1951    /// <p>A non-zero, non-negative integer used to limit the number of returned results.</p>
1952    #[serde(rename = "maxResults")]
1953    #[serde(skip_serializing_if = "Option::is_none")]
1954    pub max_results: Option<i64>,
1955    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1956    #[serde(rename = "nextToken")]
1957    #[serde(skip_serializing_if = "Option::is_none")]
1958    pub next_token: Option<String>,
1959}
1960
1961#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1962#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1963pub struct ListApprovalRuleTemplatesOutput {
1964    /// <p>The names of all the approval rule templates found in the AWS Region for your AWS account.</p>
1965    #[serde(rename = "approvalRuleTemplateNames")]
1966    #[serde(skip_serializing_if = "Option::is_none")]
1967    pub approval_rule_template_names: Option<Vec<String>>,
1968    /// <p>An enumeration token that allows the operation to batch the next results of the operation.</p>
1969    #[serde(rename = "nextToken")]
1970    #[serde(skip_serializing_if = "Option::is_none")]
1971    pub next_token: Option<String>,
1972}
1973
1974#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1975#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1976pub struct ListAssociatedApprovalRuleTemplatesForRepositoryInput {
1977    /// <p>A non-zero, non-negative integer used to limit the number of returned results.</p>
1978    #[serde(rename = "maxResults")]
1979    #[serde(skip_serializing_if = "Option::is_none")]
1980    pub max_results: Option<i64>,
1981    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
1982    #[serde(rename = "nextToken")]
1983    #[serde(skip_serializing_if = "Option::is_none")]
1984    pub next_token: Option<String>,
1985    /// <p>The name of the repository for which you want to list all associated approval rule templates.</p>
1986    #[serde(rename = "repositoryName")]
1987    pub repository_name: String,
1988}
1989
1990#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1991#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1992pub struct ListAssociatedApprovalRuleTemplatesForRepositoryOutput {
1993    /// <p>The names of all approval rule templates associated with the repository.</p>
1994    #[serde(rename = "approvalRuleTemplateNames")]
1995    #[serde(skip_serializing_if = "Option::is_none")]
1996    pub approval_rule_template_names: Option<Vec<String>>,
1997    /// <p>An enumeration token that allows the operation to batch the next results of the operation.</p>
1998    #[serde(rename = "nextToken")]
1999    #[serde(skip_serializing_if = "Option::is_none")]
2000    pub next_token: Option<String>,
2001}
2002
2003/// <p>Represents the input of a list branches operation.</p>
2004#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2005#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2006pub struct ListBranchesInput {
2007    /// <p>An enumeration token that allows the operation to batch the results.</p>
2008    #[serde(rename = "nextToken")]
2009    #[serde(skip_serializing_if = "Option::is_none")]
2010    pub next_token: Option<String>,
2011    /// <p>The name of the repository that contains the branches.</p>
2012    #[serde(rename = "repositoryName")]
2013    pub repository_name: String,
2014}
2015
2016/// <p>Represents the output of a list branches operation.</p>
2017#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2018#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2019pub struct ListBranchesOutput {
2020    /// <p>The list of branch names.</p>
2021    #[serde(rename = "branches")]
2022    #[serde(skip_serializing_if = "Option::is_none")]
2023    pub branches: Option<Vec<String>>,
2024    /// <p>An enumeration token that returns the batch of the results.</p>
2025    #[serde(rename = "nextToken")]
2026    #[serde(skip_serializing_if = "Option::is_none")]
2027    pub next_token: Option<String>,
2028}
2029
2030#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2031#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2032pub struct ListPullRequestsInput {
2033    /// <p>Optional. The Amazon Resource Name (ARN) of the user who created the pull request. If used, this filters the results to pull requests created by that user.</p>
2034    #[serde(rename = "authorArn")]
2035    #[serde(skip_serializing_if = "Option::is_none")]
2036    pub author_arn: Option<String>,
2037    /// <p>A non-zero, non-negative integer used to limit the number of returned results.</p>
2038    #[serde(rename = "maxResults")]
2039    #[serde(skip_serializing_if = "Option::is_none")]
2040    pub max_results: Option<i64>,
2041    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
2042    #[serde(rename = "nextToken")]
2043    #[serde(skip_serializing_if = "Option::is_none")]
2044    pub next_token: Option<String>,
2045    /// <p>Optional. The status of the pull request. If used, this refines the results to the pull requests that match the specified status.</p>
2046    #[serde(rename = "pullRequestStatus")]
2047    #[serde(skip_serializing_if = "Option::is_none")]
2048    pub pull_request_status: Option<String>,
2049    /// <p>The name of the repository for which you want to list pull requests.</p>
2050    #[serde(rename = "repositoryName")]
2051    pub repository_name: String,
2052}
2053
2054#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2055#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2056pub struct ListPullRequestsOutput {
2057    /// <p>An enumeration token that allows the operation to batch the next results of the operation.</p>
2058    #[serde(rename = "nextToken")]
2059    #[serde(skip_serializing_if = "Option::is_none")]
2060    pub next_token: Option<String>,
2061    /// <p>The system-generated IDs of the pull requests.</p>
2062    #[serde(rename = "pullRequestIds")]
2063    pub pull_request_ids: Vec<String>,
2064}
2065
2066#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2067#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2068pub struct ListRepositoriesForApprovalRuleTemplateInput {
2069    /// <p>The name of the approval rule template for which you want to list repositories that are associated with that template.</p>
2070    #[serde(rename = "approvalRuleTemplateName")]
2071    pub approval_rule_template_name: String,
2072    /// <p>A non-zero, non-negative integer used to limit the number of returned results.</p>
2073    #[serde(rename = "maxResults")]
2074    #[serde(skip_serializing_if = "Option::is_none")]
2075    pub max_results: Option<i64>,
2076    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
2077    #[serde(rename = "nextToken")]
2078    #[serde(skip_serializing_if = "Option::is_none")]
2079    pub next_token: Option<String>,
2080}
2081
2082#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2083#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2084pub struct ListRepositoriesForApprovalRuleTemplateOutput {
2085    /// <p>An enumeration token that allows the operation to batch the next results of the operation.</p>
2086    #[serde(rename = "nextToken")]
2087    #[serde(skip_serializing_if = "Option::is_none")]
2088    pub next_token: Option<String>,
2089    /// <p>A list of repository names that are associated with the specified approval rule template.</p>
2090    #[serde(rename = "repositoryNames")]
2091    #[serde(skip_serializing_if = "Option::is_none")]
2092    pub repository_names: Option<Vec<String>>,
2093}
2094
2095/// <p>Represents the input of a list repositories operation.</p>
2096#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2097#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2098pub struct ListRepositoriesInput {
2099    /// <p>An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.</p>
2100    #[serde(rename = "nextToken")]
2101    #[serde(skip_serializing_if = "Option::is_none")]
2102    pub next_token: Option<String>,
2103    /// <p>The order in which to sort the results of a list repositories operation.</p>
2104    #[serde(rename = "order")]
2105    #[serde(skip_serializing_if = "Option::is_none")]
2106    pub order: Option<String>,
2107    /// <p>The criteria used to sort the results of a list repositories operation.</p>
2108    #[serde(rename = "sortBy")]
2109    #[serde(skip_serializing_if = "Option::is_none")]
2110    pub sort_by: Option<String>,
2111}
2112
2113/// <p>Represents the output of a list repositories operation.</p>
2114#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2115#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2116pub struct ListRepositoriesOutput {
2117    /// <p>An enumeration token that allows the operation to batch the results of the operation. Batch sizes are 1,000 for list repository operations. When the client sends the token back to AWS CodeCommit, another page of 1,000 records is retrieved.</p>
2118    #[serde(rename = "nextToken")]
2119    #[serde(skip_serializing_if = "Option::is_none")]
2120    pub next_token: Option<String>,
2121    /// <p>Lists the repositories called by the list repositories operation.</p>
2122    #[serde(rename = "repositories")]
2123    #[serde(skip_serializing_if = "Option::is_none")]
2124    pub repositories: Option<Vec<RepositoryNameIdPair>>,
2125}
2126
2127#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2128#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2129pub struct ListTagsForResourceInput {
2130    /// <p>An enumeration token that, when provided in a request, returns the next batch of the results.</p>
2131    #[serde(rename = "nextToken")]
2132    #[serde(skip_serializing_if = "Option::is_none")]
2133    pub next_token: Option<String>,
2134    /// <p>The Amazon Resource Name (ARN) of the resource for which you want to get information about tags, if any.</p>
2135    #[serde(rename = "resourceArn")]
2136    pub resource_arn: String,
2137}
2138
2139#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2140#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2141pub struct ListTagsForResourceOutput {
2142    /// <p>An enumeration token that allows the operation to batch the next results of the operation.</p>
2143    #[serde(rename = "nextToken")]
2144    #[serde(skip_serializing_if = "Option::is_none")]
2145    pub next_token: Option<String>,
2146    /// <p>A list of tag key and value pairs associated with the specified resource.</p>
2147    #[serde(rename = "tags")]
2148    #[serde(skip_serializing_if = "Option::is_none")]
2149    pub tags: Option<::std::collections::HashMap<String, String>>,
2150}
2151
2152/// <p>Returns information about the location of a change or comment in the comparison between two commits or a pull request.</p>
2153#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
2154pub struct Location {
2155    /// <p>The name of the file being compared, including its extension and subdirectory, if any.</p>
2156    #[serde(rename = "filePath")]
2157    #[serde(skip_serializing_if = "Option::is_none")]
2158    pub file_path: Option<String>,
2159    /// <p>The position of a change in a compared file, in line number format.</p>
2160    #[serde(rename = "filePosition")]
2161    #[serde(skip_serializing_if = "Option::is_none")]
2162    pub file_position: Option<i64>,
2163    /// <p>In a comparison of commits or a pull request, whether the change is in the before or after of that comparison.</p>
2164    #[serde(rename = "relativeFileVersion")]
2165    #[serde(skip_serializing_if = "Option::is_none")]
2166    pub relative_file_version: Option<String>,
2167}
2168
2169#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2170#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2171pub struct MergeBranchesByFastForwardInput {
2172    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
2173    #[serde(rename = "destinationCommitSpecifier")]
2174    pub destination_commit_specifier: String,
2175    /// <p>The name of the repository where you want to merge two branches.</p>
2176    #[serde(rename = "repositoryName")]
2177    pub repository_name: String,
2178    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
2179    #[serde(rename = "sourceCommitSpecifier")]
2180    pub source_commit_specifier: String,
2181    /// <p>The branch where the merge is applied.</p>
2182    #[serde(rename = "targetBranch")]
2183    #[serde(skip_serializing_if = "Option::is_none")]
2184    pub target_branch: Option<String>,
2185}
2186
2187#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2188#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2189pub struct MergeBranchesByFastForwardOutput {
2190    /// <p>The commit ID of the merge in the destination or target branch.</p>
2191    #[serde(rename = "commitId")]
2192    #[serde(skip_serializing_if = "Option::is_none")]
2193    pub commit_id: Option<String>,
2194    /// <p>The tree ID of the merge in the destination or target branch.</p>
2195    #[serde(rename = "treeId")]
2196    #[serde(skip_serializing_if = "Option::is_none")]
2197    pub tree_id: Option<String>,
2198}
2199
2200#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2201#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2202pub struct MergeBranchesBySquashInput {
2203    /// <p>The name of the author who created the commit. This information is used as both the author and committer for the commit.</p>
2204    #[serde(rename = "authorName")]
2205    #[serde(skip_serializing_if = "Option::is_none")]
2206    pub author_name: Option<String>,
2207    /// <p>The commit message for the merge.</p>
2208    #[serde(rename = "commitMessage")]
2209    #[serde(skip_serializing_if = "Option::is_none")]
2210    pub commit_message: Option<String>,
2211    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
2212    #[serde(rename = "conflictDetailLevel")]
2213    #[serde(skip_serializing_if = "Option::is_none")]
2214    pub conflict_detail_level: Option<String>,
2215    /// <p>If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.</p>
2216    #[serde(rename = "conflictResolution")]
2217    #[serde(skip_serializing_if = "Option::is_none")]
2218    pub conflict_resolution: Option<ConflictResolution>,
2219    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
2220    #[serde(rename = "conflictResolutionStrategy")]
2221    #[serde(skip_serializing_if = "Option::is_none")]
2222    pub conflict_resolution_strategy: Option<String>,
2223    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
2224    #[serde(rename = "destinationCommitSpecifier")]
2225    pub destination_commit_specifier: String,
2226    /// <p>The email address of the person merging the branches. This information is used in the commit information for the merge.</p>
2227    #[serde(rename = "email")]
2228    #[serde(skip_serializing_if = "Option::is_none")]
2229    pub email: Option<String>,
2230    /// <p>If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If this is specified as true, a .gitkeep file is created for empty folders. The default is false.</p>
2231    #[serde(rename = "keepEmptyFolders")]
2232    #[serde(skip_serializing_if = "Option::is_none")]
2233    pub keep_empty_folders: Option<bool>,
2234    /// <p>The name of the repository where you want to merge two branches.</p>
2235    #[serde(rename = "repositoryName")]
2236    pub repository_name: String,
2237    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
2238    #[serde(rename = "sourceCommitSpecifier")]
2239    pub source_commit_specifier: String,
2240    /// <p>The branch where the merge is applied. </p>
2241    #[serde(rename = "targetBranch")]
2242    #[serde(skip_serializing_if = "Option::is_none")]
2243    pub target_branch: Option<String>,
2244}
2245
2246#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2247#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2248pub struct MergeBranchesBySquashOutput {
2249    /// <p>The commit ID of the merge in the destination or target branch.</p>
2250    #[serde(rename = "commitId")]
2251    #[serde(skip_serializing_if = "Option::is_none")]
2252    pub commit_id: Option<String>,
2253    /// <p>The tree ID of the merge in the destination or target branch.</p>
2254    #[serde(rename = "treeId")]
2255    #[serde(skip_serializing_if = "Option::is_none")]
2256    pub tree_id: Option<String>,
2257}
2258
2259#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2260#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2261pub struct MergeBranchesByThreeWayInput {
2262    /// <p>The name of the author who created the commit. This information is used as both the author and committer for the commit.</p>
2263    #[serde(rename = "authorName")]
2264    #[serde(skip_serializing_if = "Option::is_none")]
2265    pub author_name: Option<String>,
2266    /// <p>The commit message to include in the commit information for the merge.</p>
2267    #[serde(rename = "commitMessage")]
2268    #[serde(skip_serializing_if = "Option::is_none")]
2269    pub commit_message: Option<String>,
2270    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
2271    #[serde(rename = "conflictDetailLevel")]
2272    #[serde(skip_serializing_if = "Option::is_none")]
2273    pub conflict_detail_level: Option<String>,
2274    /// <p>If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.</p>
2275    #[serde(rename = "conflictResolution")]
2276    #[serde(skip_serializing_if = "Option::is_none")]
2277    pub conflict_resolution: Option<ConflictResolution>,
2278    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
2279    #[serde(rename = "conflictResolutionStrategy")]
2280    #[serde(skip_serializing_if = "Option::is_none")]
2281    pub conflict_resolution_strategy: Option<String>,
2282    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
2283    #[serde(rename = "destinationCommitSpecifier")]
2284    pub destination_commit_specifier: String,
2285    /// <p>The email address of the person merging the branches. This information is used in the commit information for the merge.</p>
2286    #[serde(rename = "email")]
2287    #[serde(skip_serializing_if = "Option::is_none")]
2288    pub email: Option<String>,
2289    /// <p>If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false.</p>
2290    #[serde(rename = "keepEmptyFolders")]
2291    #[serde(skip_serializing_if = "Option::is_none")]
2292    pub keep_empty_folders: Option<bool>,
2293    /// <p>The name of the repository where you want to merge two branches.</p>
2294    #[serde(rename = "repositoryName")]
2295    pub repository_name: String,
2296    /// <p>The branch, tag, HEAD, or other fully qualified reference used to identify a commit (for example, a branch name or a full commit ID).</p>
2297    #[serde(rename = "sourceCommitSpecifier")]
2298    pub source_commit_specifier: String,
2299    /// <p>The branch where the merge is applied. </p>
2300    #[serde(rename = "targetBranch")]
2301    #[serde(skip_serializing_if = "Option::is_none")]
2302    pub target_branch: Option<String>,
2303}
2304
2305#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2306#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2307pub struct MergeBranchesByThreeWayOutput {
2308    /// <p>The commit ID of the merge in the destination or target branch.</p>
2309    #[serde(rename = "commitId")]
2310    #[serde(skip_serializing_if = "Option::is_none")]
2311    pub commit_id: Option<String>,
2312    /// <p>The tree ID of the merge in the destination or target branch.</p>
2313    #[serde(rename = "treeId")]
2314    #[serde(skip_serializing_if = "Option::is_none")]
2315    pub tree_id: Option<String>,
2316}
2317
2318/// <p>Information about merge hunks in a merge or pull request operation.</p>
2319#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2320#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2321pub struct MergeHunk {
2322    /// <p>Information about the merge hunk in the base of a merge or pull request.</p>
2323    #[serde(rename = "base")]
2324    #[serde(skip_serializing_if = "Option::is_none")]
2325    pub base: Option<MergeHunkDetail>,
2326    /// <p>Information about the merge hunk in the destination of a merge or pull request.</p>
2327    #[serde(rename = "destination")]
2328    #[serde(skip_serializing_if = "Option::is_none")]
2329    pub destination: Option<MergeHunkDetail>,
2330    /// <p>A Boolean value indicating whether a combination of hunks contains a conflict. Conflicts occur when the same file or the same lines in a file were modified in both the source and destination of a merge or pull request. Valid values include true, false, and null. True when the hunk represents a conflict and one or more files contains a line conflict. File mode conflicts in a merge do not set this to true.</p>
2331    #[serde(rename = "isConflict")]
2332    #[serde(skip_serializing_if = "Option::is_none")]
2333    pub is_conflict: Option<bool>,
2334    /// <p>Information about the merge hunk in the source of a merge or pull request.</p>
2335    #[serde(rename = "source")]
2336    #[serde(skip_serializing_if = "Option::is_none")]
2337    pub source: Option<MergeHunkDetail>,
2338}
2339
2340/// <p>Information about the details of a merge hunk that contains a conflict in a merge or pull request operation.</p>
2341#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2342#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2343pub struct MergeHunkDetail {
2344    /// <p>The end position of the hunk in the merge result.</p>
2345    #[serde(rename = "endLine")]
2346    #[serde(skip_serializing_if = "Option::is_none")]
2347    pub end_line: Option<i64>,
2348    /// <p>The base-64 encoded content of the hunk merged region that might contain a conflict.</p>
2349    #[serde(rename = "hunkContent")]
2350    #[serde(skip_serializing_if = "Option::is_none")]
2351    pub hunk_content: Option<String>,
2352    /// <p>The start position of the hunk in the merge result.</p>
2353    #[serde(rename = "startLine")]
2354    #[serde(skip_serializing_if = "Option::is_none")]
2355    pub start_line: Option<i64>,
2356}
2357
2358/// <p>Returns information about a merge or potential merge between a source reference and a destination reference in a pull request.</p>
2359#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2360#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2361pub struct MergeMetadata {
2362    /// <p>A Boolean value indicating whether the merge has been made.</p>
2363    #[serde(rename = "isMerged")]
2364    #[serde(skip_serializing_if = "Option::is_none")]
2365    pub is_merged: Option<bool>,
2366    /// <p>The commit ID for the merge commit, if any.</p>
2367    #[serde(rename = "mergeCommitId")]
2368    #[serde(skip_serializing_if = "Option::is_none")]
2369    pub merge_commit_id: Option<String>,
2370    /// <p>The merge strategy used in the merge.</p>
2371    #[serde(rename = "mergeOption")]
2372    #[serde(skip_serializing_if = "Option::is_none")]
2373    pub merge_option: Option<String>,
2374    /// <p>The Amazon Resource Name (ARN) of the user who merged the branches.</p>
2375    #[serde(rename = "mergedBy")]
2376    #[serde(skip_serializing_if = "Option::is_none")]
2377    pub merged_by: Option<String>,
2378}
2379
2380/// <p>Information about the file operation conflicts in a merge operation.</p>
2381#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2382#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2383pub struct MergeOperations {
2384    /// <p>The operation on a file in the destination of a merge or pull request.</p>
2385    #[serde(rename = "destination")]
2386    #[serde(skip_serializing_if = "Option::is_none")]
2387    pub destination: Option<String>,
2388    /// <p>The operation (add, modify, or delete) on a file in the source of a merge or pull request.</p>
2389    #[serde(rename = "source")]
2390    #[serde(skip_serializing_if = "Option::is_none")]
2391    pub source: Option<String>,
2392}
2393
2394#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2395#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2396pub struct MergePullRequestByFastForwardInput {
2397    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
2398    #[serde(rename = "pullRequestId")]
2399    pub pull_request_id: String,
2400    /// <p>The name of the repository where the pull request was created.</p>
2401    #[serde(rename = "repositoryName")]
2402    pub repository_name: String,
2403    /// <p>The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.</p>
2404    #[serde(rename = "sourceCommitId")]
2405    #[serde(skip_serializing_if = "Option::is_none")]
2406    pub source_commit_id: Option<String>,
2407}
2408
2409#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2410#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2411pub struct MergePullRequestByFastForwardOutput {
2412    /// <p>Information about the specified pull request, including the merge.</p>
2413    #[serde(rename = "pullRequest")]
2414    #[serde(skip_serializing_if = "Option::is_none")]
2415    pub pull_request: Option<PullRequest>,
2416}
2417
2418#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2419#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2420pub struct MergePullRequestBySquashInput {
2421    /// <p>The name of the author who created the commit. This information is used as both the author and committer for the commit.</p>
2422    #[serde(rename = "authorName")]
2423    #[serde(skip_serializing_if = "Option::is_none")]
2424    pub author_name: Option<String>,
2425    /// <p>The commit message to include in the commit information for the merge.</p>
2426    #[serde(rename = "commitMessage")]
2427    #[serde(skip_serializing_if = "Option::is_none")]
2428    pub commit_message: Option<String>,
2429    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
2430    #[serde(rename = "conflictDetailLevel")]
2431    #[serde(skip_serializing_if = "Option::is_none")]
2432    pub conflict_detail_level: Option<String>,
2433    /// <p>If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.</p>
2434    #[serde(rename = "conflictResolution")]
2435    #[serde(skip_serializing_if = "Option::is_none")]
2436    pub conflict_resolution: Option<ConflictResolution>,
2437    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
2438    #[serde(rename = "conflictResolutionStrategy")]
2439    #[serde(skip_serializing_if = "Option::is_none")]
2440    pub conflict_resolution_strategy: Option<String>,
2441    /// <p>The email address of the person merging the branches. This information is used in the commit information for the merge.</p>
2442    #[serde(rename = "email")]
2443    #[serde(skip_serializing_if = "Option::is_none")]
2444    pub email: Option<String>,
2445    /// <p>If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false.</p>
2446    #[serde(rename = "keepEmptyFolders")]
2447    #[serde(skip_serializing_if = "Option::is_none")]
2448    pub keep_empty_folders: Option<bool>,
2449    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
2450    #[serde(rename = "pullRequestId")]
2451    pub pull_request_id: String,
2452    /// <p>The name of the repository where the pull request was created.</p>
2453    #[serde(rename = "repositoryName")]
2454    pub repository_name: String,
2455    /// <p>The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.</p>
2456    #[serde(rename = "sourceCommitId")]
2457    #[serde(skip_serializing_if = "Option::is_none")]
2458    pub source_commit_id: Option<String>,
2459}
2460
2461#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2462#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2463pub struct MergePullRequestBySquashOutput {
2464    #[serde(rename = "pullRequest")]
2465    #[serde(skip_serializing_if = "Option::is_none")]
2466    pub pull_request: Option<PullRequest>,
2467}
2468
2469#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2470#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2471pub struct MergePullRequestByThreeWayInput {
2472    /// <p>The name of the author who created the commit. This information is used as both the author and committer for the commit.</p>
2473    #[serde(rename = "authorName")]
2474    #[serde(skip_serializing_if = "Option::is_none")]
2475    pub author_name: Option<String>,
2476    /// <p>The commit message to include in the commit information for the merge.</p>
2477    #[serde(rename = "commitMessage")]
2478    #[serde(skip_serializing_if = "Option::is_none")]
2479    pub commit_message: Option<String>,
2480    /// <p>The level of conflict detail to use. If unspecified, the default FILE_LEVEL is used, which returns a not-mergeable result if the same file has differences in both branches. If LINE_LEVEL is specified, a conflict is considered not mergeable if the same file in both branches has differences on the same line.</p>
2481    #[serde(rename = "conflictDetailLevel")]
2482    #[serde(skip_serializing_if = "Option::is_none")]
2483    pub conflict_detail_level: Option<String>,
2484    /// <p>If AUTOMERGE is the conflict resolution strategy, a list of inputs to use when resolving conflicts during a merge.</p>
2485    #[serde(rename = "conflictResolution")]
2486    #[serde(skip_serializing_if = "Option::is_none")]
2487    pub conflict_resolution: Option<ConflictResolution>,
2488    /// <p>Specifies which branch to use when resolving conflicts, or whether to attempt automatically merging two versions of a file. The default is NONE, which requires any conflicts to be resolved manually before the merge operation is successful.</p>
2489    #[serde(rename = "conflictResolutionStrategy")]
2490    #[serde(skip_serializing_if = "Option::is_none")]
2491    pub conflict_resolution_strategy: Option<String>,
2492    /// <p>The email address of the person merging the branches. This information is used in the commit information for the merge.</p>
2493    #[serde(rename = "email")]
2494    #[serde(skip_serializing_if = "Option::is_none")]
2495    pub email: Option<String>,
2496    /// <p>If the commit contains deletions, whether to keep a folder or folder structure if the changes leave the folders empty. If true, a .gitkeep file is created for empty folders. The default is false.</p>
2497    #[serde(rename = "keepEmptyFolders")]
2498    #[serde(skip_serializing_if = "Option::is_none")]
2499    pub keep_empty_folders: Option<bool>,
2500    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
2501    #[serde(rename = "pullRequestId")]
2502    pub pull_request_id: String,
2503    /// <p>The name of the repository where the pull request was created.</p>
2504    #[serde(rename = "repositoryName")]
2505    pub repository_name: String,
2506    /// <p>The full commit ID of the original or updated commit in the pull request source branch. Pass this value if you want an exception thrown if the current commit ID of the tip of the source branch does not match this commit ID.</p>
2507    #[serde(rename = "sourceCommitId")]
2508    #[serde(skip_serializing_if = "Option::is_none")]
2509    pub source_commit_id: Option<String>,
2510}
2511
2512#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2513#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2514pub struct MergePullRequestByThreeWayOutput {
2515    #[serde(rename = "pullRequest")]
2516    #[serde(skip_serializing_if = "Option::is_none")]
2517    pub pull_request: Option<PullRequest>,
2518}
2519
2520/// <p>Information about the type of an object in a merge operation.</p>
2521#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2522#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2523pub struct ObjectTypes {
2524    /// <p>The type of the object in the base commit of the merge.</p>
2525    #[serde(rename = "base")]
2526    #[serde(skip_serializing_if = "Option::is_none")]
2527    pub base: Option<String>,
2528    /// <p>The type of the object in the destination branch.</p>
2529    #[serde(rename = "destination")]
2530    #[serde(skip_serializing_if = "Option::is_none")]
2531    pub destination: Option<String>,
2532    /// <p>The type of the object in the source branch.</p>
2533    #[serde(rename = "source")]
2534    #[serde(skip_serializing_if = "Option::is_none")]
2535    pub source: Option<String>,
2536}
2537
2538/// <p>Returns information about the template that created the approval rule for a pull request.</p>
2539#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2540#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2541pub struct OriginApprovalRuleTemplate {
2542    /// <p>The ID of the template that created the approval rule.</p>
2543    #[serde(rename = "approvalRuleTemplateId")]
2544    #[serde(skip_serializing_if = "Option::is_none")]
2545    pub approval_rule_template_id: Option<String>,
2546    /// <p>The name of the template that created the approval rule.</p>
2547    #[serde(rename = "approvalRuleTemplateName")]
2548    #[serde(skip_serializing_if = "Option::is_none")]
2549    pub approval_rule_template_name: Option<String>,
2550}
2551
2552#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2553#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2554pub struct OverridePullRequestApprovalRulesInput {
2555    /// <p>Whether you want to set aside approval rule requirements for the pull request (OVERRIDE) or revoke a previous override and apply approval rule requirements (REVOKE). REVOKE status is not stored.</p>
2556    #[serde(rename = "overrideStatus")]
2557    pub override_status: String,
2558    /// <p>The system-generated ID of the pull request for which you want to override all approval rule requirements. To get this information, use <a>GetPullRequest</a>.</p>
2559    #[serde(rename = "pullRequestId")]
2560    pub pull_request_id: String,
2561    /// <p>The system-generated ID of the most recent revision of the pull request. You cannot override approval rules for anything but the most recent revision of a pull request. To get the revision ID, use GetPullRequest.</p>
2562    #[serde(rename = "revisionId")]
2563    pub revision_id: String,
2564}
2565
2566#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2567#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2568pub struct PostCommentForComparedCommitInput {
2569    /// <p>To establish the directionality of the comparison, the full commit ID of the after commit.</p>
2570    #[serde(rename = "afterCommitId")]
2571    pub after_commit_id: String,
2572    /// <p>To establish the directionality of the comparison, the full commit ID of the before commit. Required for commenting on any commit unless that commit is the initial commit.</p>
2573    #[serde(rename = "beforeCommitId")]
2574    #[serde(skip_serializing_if = "Option::is_none")]
2575    pub before_commit_id: Option<String>,
2576    /// <p>A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
2577    #[serde(rename = "clientRequestToken")]
2578    #[serde(skip_serializing_if = "Option::is_none")]
2579    pub client_request_token: Option<String>,
2580    /// <p>The content of the comment you want to make.</p>
2581    #[serde(rename = "content")]
2582    pub content: String,
2583    /// <p>The location of the comparison where you want to comment.</p>
2584    #[serde(rename = "location")]
2585    #[serde(skip_serializing_if = "Option::is_none")]
2586    pub location: Option<Location>,
2587    /// <p>The name of the repository where you want to post a comment on the comparison between commits.</p>
2588    #[serde(rename = "repositoryName")]
2589    pub repository_name: String,
2590}
2591
2592#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2593#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2594pub struct PostCommentForComparedCommitOutput {
2595    /// <p>In the directionality you established, the blob ID of the after blob.</p>
2596    #[serde(rename = "afterBlobId")]
2597    #[serde(skip_serializing_if = "Option::is_none")]
2598    pub after_blob_id: Option<String>,
2599    /// <p>In the directionality you established, the full commit ID of the after commit.</p>
2600    #[serde(rename = "afterCommitId")]
2601    #[serde(skip_serializing_if = "Option::is_none")]
2602    pub after_commit_id: Option<String>,
2603    /// <p>In the directionality you established, the blob ID of the before blob.</p>
2604    #[serde(rename = "beforeBlobId")]
2605    #[serde(skip_serializing_if = "Option::is_none")]
2606    pub before_blob_id: Option<String>,
2607    /// <p>In the directionality you established, the full commit ID of the before commit.</p>
2608    #[serde(rename = "beforeCommitId")]
2609    #[serde(skip_serializing_if = "Option::is_none")]
2610    pub before_commit_id: Option<String>,
2611    /// <p>The content of the comment you posted.</p>
2612    #[serde(rename = "comment")]
2613    #[serde(skip_serializing_if = "Option::is_none")]
2614    pub comment: Option<Comment>,
2615    /// <p>The location of the comment in the comparison between the two commits.</p>
2616    #[serde(rename = "location")]
2617    #[serde(skip_serializing_if = "Option::is_none")]
2618    pub location: Option<Location>,
2619    /// <p>The name of the repository where you posted a comment on the comparison between commits.</p>
2620    #[serde(rename = "repositoryName")]
2621    #[serde(skip_serializing_if = "Option::is_none")]
2622    pub repository_name: Option<String>,
2623}
2624
2625#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2626#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2627pub struct PostCommentForPullRequestInput {
2628    /// <p>The full commit ID of the commit in the source branch that is the current tip of the branch for the pull request when you post the comment.</p>
2629    #[serde(rename = "afterCommitId")]
2630    pub after_commit_id: String,
2631    /// <p>The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was created.</p>
2632    #[serde(rename = "beforeCommitId")]
2633    pub before_commit_id: String,
2634    /// <p>A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
2635    #[serde(rename = "clientRequestToken")]
2636    #[serde(skip_serializing_if = "Option::is_none")]
2637    pub client_request_token: Option<String>,
2638    /// <p>The content of your comment on the change.</p>
2639    #[serde(rename = "content")]
2640    pub content: String,
2641    /// <p>The location of the change where you want to post your comment. If no location is provided, the comment is posted as a general comment on the pull request difference between the before commit ID and the after commit ID.</p>
2642    #[serde(rename = "location")]
2643    #[serde(skip_serializing_if = "Option::is_none")]
2644    pub location: Option<Location>,
2645    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
2646    #[serde(rename = "pullRequestId")]
2647    pub pull_request_id: String,
2648    /// <p>The name of the repository where you want to post a comment on a pull request.</p>
2649    #[serde(rename = "repositoryName")]
2650    pub repository_name: String,
2651}
2652
2653#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2654#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2655pub struct PostCommentForPullRequestOutput {
2656    /// <p>In the directionality of the pull request, the blob ID of the after blob.</p>
2657    #[serde(rename = "afterBlobId")]
2658    #[serde(skip_serializing_if = "Option::is_none")]
2659    pub after_blob_id: Option<String>,
2660    /// <p>The full commit ID of the commit in the destination branch where the pull request is merged.</p>
2661    #[serde(rename = "afterCommitId")]
2662    #[serde(skip_serializing_if = "Option::is_none")]
2663    pub after_commit_id: Option<String>,
2664    /// <p>In the directionality of the pull request, the blob ID of the before blob.</p>
2665    #[serde(rename = "beforeBlobId")]
2666    #[serde(skip_serializing_if = "Option::is_none")]
2667    pub before_blob_id: Option<String>,
2668    /// <p>The full commit ID of the commit in the source branch used to create the pull request, or in the case of an updated pull request, the full commit ID of the commit used to update the pull request.</p>
2669    #[serde(rename = "beforeCommitId")]
2670    #[serde(skip_serializing_if = "Option::is_none")]
2671    pub before_commit_id: Option<String>,
2672    /// <p>The content of the comment you posted.</p>
2673    #[serde(rename = "comment")]
2674    #[serde(skip_serializing_if = "Option::is_none")]
2675    pub comment: Option<Comment>,
2676    /// <p>The location of the change where you posted your comment.</p>
2677    #[serde(rename = "location")]
2678    #[serde(skip_serializing_if = "Option::is_none")]
2679    pub location: Option<Location>,
2680    /// <p>The system-generated ID of the pull request. </p>
2681    #[serde(rename = "pullRequestId")]
2682    #[serde(skip_serializing_if = "Option::is_none")]
2683    pub pull_request_id: Option<String>,
2684    /// <p>The name of the repository where you posted a comment on a pull request.</p>
2685    #[serde(rename = "repositoryName")]
2686    #[serde(skip_serializing_if = "Option::is_none")]
2687    pub repository_name: Option<String>,
2688}
2689
2690#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2691#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2692pub struct PostCommentReplyInput {
2693    /// <p>A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
2694    #[serde(rename = "clientRequestToken")]
2695    #[serde(skip_serializing_if = "Option::is_none")]
2696    pub client_request_token: Option<String>,
2697    /// <p>The contents of your reply to a comment.</p>
2698    #[serde(rename = "content")]
2699    pub content: String,
2700    /// <p>The system-generated ID of the comment to which you want to reply. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.</p>
2701    #[serde(rename = "inReplyTo")]
2702    pub in_reply_to: String,
2703}
2704
2705#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2706#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2707pub struct PostCommentReplyOutput {
2708    /// <p>Information about the reply to a comment.</p>
2709    #[serde(rename = "comment")]
2710    #[serde(skip_serializing_if = "Option::is_none")]
2711    pub comment: Option<Comment>,
2712}
2713
2714/// <p>Returns information about a pull request.</p>
2715#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2716#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2717pub struct PullRequest {
2718    /// <p>The approval rules applied to the pull request.</p>
2719    #[serde(rename = "approvalRules")]
2720    #[serde(skip_serializing_if = "Option::is_none")]
2721    pub approval_rules: Option<Vec<ApprovalRule>>,
2722    /// <p>The Amazon Resource Name (ARN) of the user who created the pull request.</p>
2723    #[serde(rename = "authorArn")]
2724    #[serde(skip_serializing_if = "Option::is_none")]
2725    pub author_arn: Option<String>,
2726    /// <p>A unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
2727    #[serde(rename = "clientRequestToken")]
2728    #[serde(skip_serializing_if = "Option::is_none")]
2729    pub client_request_token: Option<String>,
2730    /// <p>The date and time the pull request was originally created, in timestamp format.</p>
2731    #[serde(rename = "creationDate")]
2732    #[serde(skip_serializing_if = "Option::is_none")]
2733    pub creation_date: Option<f64>,
2734    /// <p>The user-defined description of the pull request. This description can be used to clarify what should be reviewed and other details of the request.</p>
2735    #[serde(rename = "description")]
2736    #[serde(skip_serializing_if = "Option::is_none")]
2737    pub description: Option<String>,
2738    /// <p>The day and time of the last user or system activity on the pull request, in timestamp format.</p>
2739    #[serde(rename = "lastActivityDate")]
2740    #[serde(skip_serializing_if = "Option::is_none")]
2741    pub last_activity_date: Option<f64>,
2742    /// <p>The system-generated ID of the pull request. </p>
2743    #[serde(rename = "pullRequestId")]
2744    #[serde(skip_serializing_if = "Option::is_none")]
2745    pub pull_request_id: Option<String>,
2746    /// <p>The status of the pull request. Pull request status can only change from <code>OPEN</code> to <code>CLOSED</code>.</p>
2747    #[serde(rename = "pullRequestStatus")]
2748    #[serde(skip_serializing_if = "Option::is_none")]
2749    pub pull_request_status: Option<String>,
2750    /// <p>The targets of the pull request, including the source branch and destination branch for the pull request.</p>
2751    #[serde(rename = "pullRequestTargets")]
2752    #[serde(skip_serializing_if = "Option::is_none")]
2753    pub pull_request_targets: Option<Vec<PullRequestTarget>>,
2754    /// <p>The system-generated revision ID for the pull request.</p>
2755    #[serde(rename = "revisionId")]
2756    #[serde(skip_serializing_if = "Option::is_none")]
2757    pub revision_id: Option<String>,
2758    /// <p>The user-defined title of the pull request. This title is displayed in the list of pull requests to other repository users.</p>
2759    #[serde(rename = "title")]
2760    #[serde(skip_serializing_if = "Option::is_none")]
2761    pub title: Option<String>,
2762}
2763
2764/// <p>Metadata about the pull request that is used when comparing the pull request source with its destination.</p>
2765#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2766#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2767pub struct PullRequestCreatedEventMetadata {
2768    /// <p>The commit ID of the tip of the branch specified as the destination branch when the pull request was created.</p>
2769    #[serde(rename = "destinationCommitId")]
2770    #[serde(skip_serializing_if = "Option::is_none")]
2771    pub destination_commit_id: Option<String>,
2772    /// <p>The commit ID of the most recent commit that the source branch and the destination branch have in common.</p>
2773    #[serde(rename = "mergeBase")]
2774    #[serde(skip_serializing_if = "Option::is_none")]
2775    pub merge_base: Option<String>,
2776    /// <p>The name of the repository where the pull request was created.</p>
2777    #[serde(rename = "repositoryName")]
2778    #[serde(skip_serializing_if = "Option::is_none")]
2779    pub repository_name: Option<String>,
2780    /// <p>The commit ID on the source branch used when the pull request was created.</p>
2781    #[serde(rename = "sourceCommitId")]
2782    #[serde(skip_serializing_if = "Option::is_none")]
2783    pub source_commit_id: Option<String>,
2784}
2785
2786/// <p>Returns information about a pull request event.</p>
2787#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2788#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2789pub struct PullRequestEvent {
2790    /// <p>The Amazon Resource Name (ARN) of the user whose actions resulted in the event. Examples include updating the pull request with more commits or changing the status of a pull request.</p>
2791    #[serde(rename = "actorArn")]
2792    #[serde(skip_serializing_if = "Option::is_none")]
2793    pub actor_arn: Option<String>,
2794    /// <p>Information about a pull request event.</p>
2795    #[serde(rename = "approvalRuleEventMetadata")]
2796    #[serde(skip_serializing_if = "Option::is_none")]
2797    pub approval_rule_event_metadata: Option<ApprovalRuleEventMetadata>,
2798    /// <p>Information about an approval rule override event for a pull request.</p>
2799    #[serde(rename = "approvalRuleOverriddenEventMetadata")]
2800    #[serde(skip_serializing_if = "Option::is_none")]
2801    pub approval_rule_overridden_event_metadata: Option<ApprovalRuleOverriddenEventMetadata>,
2802    /// <p>Information about an approval state change for a pull request.</p>
2803    #[serde(rename = "approvalStateChangedEventMetadata")]
2804    #[serde(skip_serializing_if = "Option::is_none")]
2805    pub approval_state_changed_event_metadata: Option<ApprovalStateChangedEventMetadata>,
2806    /// <p>The day and time of the pull request event, in timestamp format.</p>
2807    #[serde(rename = "eventDate")]
2808    #[serde(skip_serializing_if = "Option::is_none")]
2809    pub event_date: Option<f64>,
2810    /// <p>Information about the source and destination branches for the pull request.</p>
2811    #[serde(rename = "pullRequestCreatedEventMetadata")]
2812    #[serde(skip_serializing_if = "Option::is_none")]
2813    pub pull_request_created_event_metadata: Option<PullRequestCreatedEventMetadata>,
2814    /// <p>The type of the pull request event (for example, a status change event (PULL_REQUEST_STATUS_CHANGED) or update event (PULL_REQUEST_SOURCE_REFERENCE_UPDATED)).</p>
2815    #[serde(rename = "pullRequestEventType")]
2816    #[serde(skip_serializing_if = "Option::is_none")]
2817    pub pull_request_event_type: Option<String>,
2818    /// <p>The system-generated ID of the pull request.</p>
2819    #[serde(rename = "pullRequestId")]
2820    #[serde(skip_serializing_if = "Option::is_none")]
2821    pub pull_request_id: Option<String>,
2822    /// <p>Information about the change in mergability state for the pull request event.</p>
2823    #[serde(rename = "pullRequestMergedStateChangedEventMetadata")]
2824    #[serde(skip_serializing_if = "Option::is_none")]
2825    pub pull_request_merged_state_changed_event_metadata:
2826        Option<PullRequestMergedStateChangedEventMetadata>,
2827    /// <p>Information about the updated source branch for the pull request event. </p>
2828    #[serde(rename = "pullRequestSourceReferenceUpdatedEventMetadata")]
2829    #[serde(skip_serializing_if = "Option::is_none")]
2830    pub pull_request_source_reference_updated_event_metadata:
2831        Option<PullRequestSourceReferenceUpdatedEventMetadata>,
2832    /// <p>Information about the change in status for the pull request event.</p>
2833    #[serde(rename = "pullRequestStatusChangedEventMetadata")]
2834    #[serde(skip_serializing_if = "Option::is_none")]
2835    pub pull_request_status_changed_event_metadata: Option<PullRequestStatusChangedEventMetadata>,
2836}
2837
2838/// <p>Returns information about the change in the merge state for a pull request event. </p>
2839#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2840#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2841pub struct PullRequestMergedStateChangedEventMetadata {
2842    /// <p>The name of the branch that the pull request is merged into.</p>
2843    #[serde(rename = "destinationReference")]
2844    #[serde(skip_serializing_if = "Option::is_none")]
2845    pub destination_reference: Option<String>,
2846    /// <p>Information about the merge state change event.</p>
2847    #[serde(rename = "mergeMetadata")]
2848    #[serde(skip_serializing_if = "Option::is_none")]
2849    pub merge_metadata: Option<MergeMetadata>,
2850    /// <p>The name of the repository where the pull request was created.</p>
2851    #[serde(rename = "repositoryName")]
2852    #[serde(skip_serializing_if = "Option::is_none")]
2853    pub repository_name: Option<String>,
2854}
2855
2856/// <p>Information about an update to the source branch of a pull request.</p>
2857#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2858#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2859pub struct PullRequestSourceReferenceUpdatedEventMetadata {
2860    /// <p>The full commit ID of the commit in the source branch that was the tip of the branch at the time the pull request was updated.</p>
2861    #[serde(rename = "afterCommitId")]
2862    #[serde(skip_serializing_if = "Option::is_none")]
2863    pub after_commit_id: Option<String>,
2864    /// <p>The full commit ID of the commit in the destination branch that was the tip of the branch at the time the pull request was updated.</p>
2865    #[serde(rename = "beforeCommitId")]
2866    #[serde(skip_serializing_if = "Option::is_none")]
2867    pub before_commit_id: Option<String>,
2868    /// <p>The commit ID of the most recent commit that the source branch and the destination branch have in common.</p>
2869    #[serde(rename = "mergeBase")]
2870    #[serde(skip_serializing_if = "Option::is_none")]
2871    pub merge_base: Option<String>,
2872    /// <p>The name of the repository where the pull request was updated.</p>
2873    #[serde(rename = "repositoryName")]
2874    #[serde(skip_serializing_if = "Option::is_none")]
2875    pub repository_name: Option<String>,
2876}
2877
2878/// <p>Information about a change to the status of a pull request.</p>
2879#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2880#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2881pub struct PullRequestStatusChangedEventMetadata {
2882    /// <p>The changed status of the pull request.</p>
2883    #[serde(rename = "pullRequestStatus")]
2884    #[serde(skip_serializing_if = "Option::is_none")]
2885    pub pull_request_status: Option<String>,
2886}
2887
2888/// <p>Returns information about a pull request target.</p>
2889#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
2890#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
2891pub struct PullRequestTarget {
2892    /// <p>The full commit ID that is the tip of the destination branch. This is the commit where the pull request was or will be merged.</p>
2893    #[serde(rename = "destinationCommit")]
2894    #[serde(skip_serializing_if = "Option::is_none")]
2895    pub destination_commit: Option<String>,
2896    /// <p>The branch of the repository where the pull request changes are merged. Also known as the destination branch. </p>
2897    #[serde(rename = "destinationReference")]
2898    #[serde(skip_serializing_if = "Option::is_none")]
2899    pub destination_reference: Option<String>,
2900    /// <p>The commit ID of the most recent commit that the source branch and the destination branch have in common.</p>
2901    #[serde(rename = "mergeBase")]
2902    #[serde(skip_serializing_if = "Option::is_none")]
2903    pub merge_base: Option<String>,
2904    /// <p>Returns metadata about the state of the merge, including whether the merge has been made.</p>
2905    #[serde(rename = "mergeMetadata")]
2906    #[serde(skip_serializing_if = "Option::is_none")]
2907    pub merge_metadata: Option<MergeMetadata>,
2908    /// <p>The name of the repository that contains the pull request source and destination branches.</p>
2909    #[serde(rename = "repositoryName")]
2910    #[serde(skip_serializing_if = "Option::is_none")]
2911    pub repository_name: Option<String>,
2912    /// <p>The full commit ID of the tip of the source branch used to create the pull request. If the pull request branch is updated by a push while the pull request is open, the commit ID changes to reflect the new tip of the branch.</p>
2913    #[serde(rename = "sourceCommit")]
2914    #[serde(skip_serializing_if = "Option::is_none")]
2915    pub source_commit: Option<String>,
2916    /// <p>The branch of the repository that contains the changes for the pull request. Also known as the source branch.</p>
2917    #[serde(rename = "sourceReference")]
2918    #[serde(skip_serializing_if = "Option::is_none")]
2919    pub source_reference: Option<String>,
2920}
2921
2922#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2923#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2924pub struct PutCommentReactionInput {
2925    /// <p>The ID of the comment to which you want to add or update a reaction.</p>
2926    #[serde(rename = "commentId")]
2927    pub comment_id: String,
2928    /// <p>The emoji reaction you want to add or update. To remove a reaction, provide a value of blank or null. You can also provide the value of none. For information about emoji reaction values supported in AWS CodeCommit, see the <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-commit-comment.html#emoji-reaction-table">AWS CodeCommit User Guide</a>.</p>
2929    #[serde(rename = "reactionValue")]
2930    pub reaction_value: String,
2931}
2932
2933/// <p>Information about a file added or updated as part of a commit.</p>
2934#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2935#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2936pub struct PutFileEntry {
2937    /// <p>The content of the file, if a source file is not specified.</p>
2938    #[serde(rename = "fileContent")]
2939    #[serde(
2940        deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
2941        serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
2942        default
2943    )]
2944    #[serde(skip_serializing_if = "Option::is_none")]
2945    pub file_content: Option<bytes::Bytes>,
2946    /// <p>The extrapolated file mode permissions for the file. Valid values include EXECUTABLE and NORMAL.</p>
2947    #[serde(rename = "fileMode")]
2948    #[serde(skip_serializing_if = "Option::is_none")]
2949    pub file_mode: Option<String>,
2950    /// <p>The full path to the file in the repository, including the name of the file.</p>
2951    #[serde(rename = "filePath")]
2952    pub file_path: String,
2953    /// <p>The name and full path of the file that contains the changes you want to make as part of the commit, if you are not providing the file content directly.</p>
2954    #[serde(rename = "sourceFile")]
2955    #[serde(skip_serializing_if = "Option::is_none")]
2956    pub source_file: Option<SourceFileSpecifier>,
2957}
2958
2959#[derive(Clone, Debug, Default, PartialEq, Serialize)]
2960#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
2961pub struct PutFileInput {
2962    /// <p>The name of the branch where you want to add or update the file. If this is an empty repository, this branch is created.</p>
2963    #[serde(rename = "branchName")]
2964    pub branch_name: String,
2965    /// <p>A message about why this file was added or updated. Although it is optional, a message makes the commit history for your repository more useful.</p>
2966    #[serde(rename = "commitMessage")]
2967    #[serde(skip_serializing_if = "Option::is_none")]
2968    pub commit_message: Option<String>,
2969    /// <p>An email address for the person adding or updating the file.</p>
2970    #[serde(rename = "email")]
2971    #[serde(skip_serializing_if = "Option::is_none")]
2972    pub email: Option<String>,
2973    /// <p>The content of the file, in binary object format. </p>
2974    #[serde(rename = "fileContent")]
2975    #[serde(
2976        deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
2977        serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
2978        default
2979    )]
2980    pub file_content: bytes::Bytes,
2981    /// <p>The file mode permissions of the blob. Valid file mode permissions are listed here.</p>
2982    #[serde(rename = "fileMode")]
2983    #[serde(skip_serializing_if = "Option::is_none")]
2984    pub file_mode: Option<String>,
2985    /// <p><p>The name of the file you want to add or update, including the relative path to the file in the repository.</p> <note> <p>If the path does not currently exist in the repository, the path is created as part of adding the file.</p> </note></p>
2986    #[serde(rename = "filePath")]
2987    pub file_path: String,
2988    /// <p>The name of the person adding or updating the file. Although it is optional, a name makes the commit history for your repository more useful.</p>
2989    #[serde(rename = "name")]
2990    #[serde(skip_serializing_if = "Option::is_none")]
2991    pub name: Option<String>,
2992    /// <p>The full commit ID of the head commit in the branch where you want to add or update the file. If this is an empty repository, no commit ID is required. If this is not an empty repository, a commit ID is required. </p> <p>The commit ID must match the ID of the head commit at the time of the operation. Otherwise, an error occurs, and the file is not added or updated.</p>
2993    #[serde(rename = "parentCommitId")]
2994    #[serde(skip_serializing_if = "Option::is_none")]
2995    pub parent_commit_id: Option<String>,
2996    /// <p>The name of the repository where you want to add or update the file.</p>
2997    #[serde(rename = "repositoryName")]
2998    pub repository_name: String,
2999}
3000
3001#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3002#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3003pub struct PutFileOutput {
3004    /// <p>The ID of the blob, which is its SHA-1 pointer.</p>
3005    #[serde(rename = "blobId")]
3006    pub blob_id: String,
3007    /// <p>The full SHA ID of the commit that contains this file change.</p>
3008    #[serde(rename = "commitId")]
3009    pub commit_id: String,
3010    /// <p>The full SHA-1 pointer of the tree information for the commit that contains this file change.</p>
3011    #[serde(rename = "treeId")]
3012    pub tree_id: String,
3013}
3014
3015/// <p>Represents the input of a put repository triggers operation.</p>
3016#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3017#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3018pub struct PutRepositoryTriggersInput {
3019    /// <p>The name of the repository where you want to create or update the trigger.</p>
3020    #[serde(rename = "repositoryName")]
3021    pub repository_name: String,
3022    /// <p>The JSON block of configuration information for each trigger.</p>
3023    #[serde(rename = "triggers")]
3024    pub triggers: Vec<RepositoryTrigger>,
3025}
3026
3027/// <p>Represents the output of a put repository triggers operation.</p>
3028#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3029#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3030pub struct PutRepositoryTriggersOutput {
3031    /// <p>The system-generated unique ID for the create or update operation.</p>
3032    #[serde(rename = "configurationId")]
3033    #[serde(skip_serializing_if = "Option::is_none")]
3034    pub configuration_id: Option<String>,
3035}
3036
3037/// <p>Information about the reaction values provided by users on a comment.</p>
3038#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3039#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3040pub struct ReactionForComment {
3041    /// <p>The reaction for a specified comment.</p>
3042    #[serde(rename = "reaction")]
3043    #[serde(skip_serializing_if = "Option::is_none")]
3044    pub reaction: Option<ReactionValueFormats>,
3045    /// <p>The Amazon Resource Names (ARNs) of users who have provided reactions to the comment.</p>
3046    #[serde(rename = "reactionUsers")]
3047    #[serde(skip_serializing_if = "Option::is_none")]
3048    pub reaction_users: Option<Vec<String>>,
3049    /// <p>A numerical count of users who reacted with the specified emoji whose identities have been subsequently deleted from IAM. While these IAM users or roles no longer exist, the reactions might still appear in total reaction counts.</p>
3050    #[serde(rename = "reactionsFromDeletedUsersCount")]
3051    #[serde(skip_serializing_if = "Option::is_none")]
3052    pub reactions_from_deleted_users_count: Option<i64>,
3053}
3054
3055/// <p>Information about the values for reactions to a comment. AWS CodeCommit supports a limited set of reactions.</p>
3056#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3057#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3058pub struct ReactionValueFormats {
3059    /// <p>The Emoji Version 1.0 graphic of the reaction. These graphics are interpreted slightly differently on different operating systems.</p>
3060    #[serde(rename = "emoji")]
3061    #[serde(skip_serializing_if = "Option::is_none")]
3062    pub emoji: Option<String>,
3063    /// <p>The emoji short code for the reaction. Short codes are interpreted slightly differently on different operating systems. </p>
3064    #[serde(rename = "shortCode")]
3065    #[serde(skip_serializing_if = "Option::is_none")]
3066    pub short_code: Option<String>,
3067    /// <p>The Unicode codepoint for the reaction.</p>
3068    #[serde(rename = "unicode")]
3069    #[serde(skip_serializing_if = "Option::is_none")]
3070    pub unicode: Option<String>,
3071}
3072
3073/// <p>Information about a replacement content entry in the conflict of a merge or pull request operation.</p>
3074#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3075#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3076pub struct ReplaceContentEntry {
3077    /// <p>The base-64 encoded content to use when the replacement type is USE_NEW_CONTENT.</p>
3078    #[serde(rename = "content")]
3079    #[serde(
3080        deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
3081        serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
3082        default
3083    )]
3084    #[serde(skip_serializing_if = "Option::is_none")]
3085    pub content: Option<bytes::Bytes>,
3086    /// <p>The file mode to apply during conflict resoltion.</p>
3087    #[serde(rename = "fileMode")]
3088    #[serde(skip_serializing_if = "Option::is_none")]
3089    pub file_mode: Option<String>,
3090    /// <p>The path of the conflicting file.</p>
3091    #[serde(rename = "filePath")]
3092    pub file_path: String,
3093    /// <p>The replacement type to use when determining how to resolve the conflict.</p>
3094    #[serde(rename = "replacementType")]
3095    pub replacement_type: String,
3096}
3097
3098/// <p>Information about a repository.</p>
3099#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3100#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3101pub struct RepositoryMetadata {
3102    /// <p>The Amazon Resource Name (ARN) of the repository.</p>
3103    #[serde(rename = "Arn")]
3104    #[serde(skip_serializing_if = "Option::is_none")]
3105    pub arn: Option<String>,
3106    /// <p>The ID of the AWS account associated with the repository.</p>
3107    #[serde(rename = "accountId")]
3108    #[serde(skip_serializing_if = "Option::is_none")]
3109    pub account_id: Option<String>,
3110    /// <p>The URL to use for cloning the repository over HTTPS.</p>
3111    #[serde(rename = "cloneUrlHttp")]
3112    #[serde(skip_serializing_if = "Option::is_none")]
3113    pub clone_url_http: Option<String>,
3114    /// <p>The URL to use for cloning the repository over SSH.</p>
3115    #[serde(rename = "cloneUrlSsh")]
3116    #[serde(skip_serializing_if = "Option::is_none")]
3117    pub clone_url_ssh: Option<String>,
3118    /// <p>The date and time the repository was created, in timestamp format.</p>
3119    #[serde(rename = "creationDate")]
3120    #[serde(skip_serializing_if = "Option::is_none")]
3121    pub creation_date: Option<f64>,
3122    /// <p>The repository's default branch name.</p>
3123    #[serde(rename = "defaultBranch")]
3124    #[serde(skip_serializing_if = "Option::is_none")]
3125    pub default_branch: Option<String>,
3126    /// <p>The date and time the repository was last modified, in timestamp format.</p>
3127    #[serde(rename = "lastModifiedDate")]
3128    #[serde(skip_serializing_if = "Option::is_none")]
3129    pub last_modified_date: Option<f64>,
3130    /// <p>A comment or description about the repository.</p>
3131    #[serde(rename = "repositoryDescription")]
3132    #[serde(skip_serializing_if = "Option::is_none")]
3133    pub repository_description: Option<String>,
3134    /// <p>The ID of the repository.</p>
3135    #[serde(rename = "repositoryId")]
3136    #[serde(skip_serializing_if = "Option::is_none")]
3137    pub repository_id: Option<String>,
3138    /// <p>The repository's name.</p>
3139    #[serde(rename = "repositoryName")]
3140    #[serde(skip_serializing_if = "Option::is_none")]
3141    pub repository_name: Option<String>,
3142}
3143
3144/// <p>Information about a repository name and ID.</p>
3145#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3146#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3147pub struct RepositoryNameIdPair {
3148    /// <p>The ID associated with the repository.</p>
3149    #[serde(rename = "repositoryId")]
3150    #[serde(skip_serializing_if = "Option::is_none")]
3151    pub repository_id: Option<String>,
3152    /// <p>The name associated with the repository.</p>
3153    #[serde(rename = "repositoryName")]
3154    #[serde(skip_serializing_if = "Option::is_none")]
3155    pub repository_name: Option<String>,
3156}
3157
3158/// <p>Information about a trigger for a repository.</p>
3159#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
3160pub struct RepositoryTrigger {
3161    /// <p><p>The branches to be included in the trigger configuration. If you specify an empty array, the trigger applies to all branches.</p> <note> <p>Although no content is required in the array, you must include the array itself.</p> </note></p>
3162    #[serde(rename = "branches")]
3163    #[serde(skip_serializing_if = "Option::is_none")]
3164    pub branches: Option<Vec<String>>,
3165    /// <p>Any custom data associated with the trigger to be included in the information sent to the target of the trigger.</p>
3166    #[serde(rename = "customData")]
3167    #[serde(skip_serializing_if = "Option::is_none")]
3168    pub custom_data: Option<String>,
3169    /// <p>The ARN of the resource that is the target for a trigger (for example, the ARN of a topic in Amazon SNS).</p>
3170    #[serde(rename = "destinationArn")]
3171    pub destination_arn: String,
3172    /// <p><p>The repository events that cause the trigger to run actions in another service, such as sending a notification through Amazon SNS. </p> <note> <p>The valid value &quot;all&quot; cannot be used with any other values.</p> </note></p>
3173    #[serde(rename = "events")]
3174    pub events: Vec<String>,
3175    /// <p>The name of the trigger.</p>
3176    #[serde(rename = "name")]
3177    pub name: String,
3178}
3179
3180/// <p>A trigger failed to run.</p>
3181#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3182#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3183pub struct RepositoryTriggerExecutionFailure {
3184    /// <p>Message information about the trigger that did not run.</p>
3185    #[serde(rename = "failureMessage")]
3186    #[serde(skip_serializing_if = "Option::is_none")]
3187    pub failure_message: Option<String>,
3188    /// <p>The name of the trigger that did not run.</p>
3189    #[serde(rename = "trigger")]
3190    #[serde(skip_serializing_if = "Option::is_none")]
3191    pub trigger: Option<String>,
3192}
3193
3194/// <p>Information about the file mode changes.</p>
3195#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3196#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3197pub struct SetFileModeEntry {
3198    /// <p>The file mode for the file.</p>
3199    #[serde(rename = "fileMode")]
3200    pub file_mode: String,
3201    /// <p>The full path to the file, including the name of the file.</p>
3202    #[serde(rename = "filePath")]
3203    pub file_path: String,
3204}
3205
3206/// <p>Information about a source file that is part of changes made in a commit.</p>
3207#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3208#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3209pub struct SourceFileSpecifier {
3210    /// <p>The full path to the file, including the name of the file.</p>
3211    #[serde(rename = "filePath")]
3212    pub file_path: String,
3213    /// <p>Whether to remove the source file from the parent commit.</p>
3214    #[serde(rename = "isMove")]
3215    #[serde(skip_serializing_if = "Option::is_none")]
3216    pub is_move: Option<bool>,
3217}
3218
3219/// <p>Returns information about a submodule reference in a repository folder.</p>
3220#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3221#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3222pub struct SubModule {
3223    /// <p>The fully qualified path to the folder that contains the reference to the submodule.</p>
3224    #[serde(rename = "absolutePath")]
3225    #[serde(skip_serializing_if = "Option::is_none")]
3226    pub absolute_path: Option<String>,
3227    /// <p>The commit ID that contains the reference to the submodule.</p>
3228    #[serde(rename = "commitId")]
3229    #[serde(skip_serializing_if = "Option::is_none")]
3230    pub commit_id: Option<String>,
3231    /// <p>The relative path of the submodule from the folder where the query originated.</p>
3232    #[serde(rename = "relativePath")]
3233    #[serde(skip_serializing_if = "Option::is_none")]
3234    pub relative_path: Option<String>,
3235}
3236
3237/// <p>Returns information about a symbolic link in a repository folder.</p>
3238#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3239#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3240pub struct SymbolicLink {
3241    /// <p>The fully qualified path to the folder that contains the symbolic link.</p>
3242    #[serde(rename = "absolutePath")]
3243    #[serde(skip_serializing_if = "Option::is_none")]
3244    pub absolute_path: Option<String>,
3245    /// <p>The blob ID that contains the information about the symbolic link.</p>
3246    #[serde(rename = "blobId")]
3247    #[serde(skip_serializing_if = "Option::is_none")]
3248    pub blob_id: Option<String>,
3249    /// <p>The file mode permissions of the blob that cotains information about the symbolic link.</p>
3250    #[serde(rename = "fileMode")]
3251    #[serde(skip_serializing_if = "Option::is_none")]
3252    pub file_mode: Option<String>,
3253    /// <p>The relative path of the symbolic link from the folder where the query originated.</p>
3254    #[serde(rename = "relativePath")]
3255    #[serde(skip_serializing_if = "Option::is_none")]
3256    pub relative_path: Option<String>,
3257}
3258
3259#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3260#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3261pub struct TagResourceInput {
3262    /// <p>The Amazon Resource Name (ARN) of the resource to which you want to add or update tags.</p>
3263    #[serde(rename = "resourceArn")]
3264    pub resource_arn: String,
3265    /// <p>The key-value pair to use when tagging this repository.</p>
3266    #[serde(rename = "tags")]
3267    pub tags: ::std::collections::HashMap<String, String>,
3268}
3269
3270/// <p>Returns information about a target for a pull request.</p>
3271#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3272#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3273pub struct Target {
3274    /// <p>The branch of the repository where the pull request changes are merged. Also known as the destination branch.</p>
3275    #[serde(rename = "destinationReference")]
3276    #[serde(skip_serializing_if = "Option::is_none")]
3277    pub destination_reference: Option<String>,
3278    /// <p>The name of the repository that contains the pull request.</p>
3279    #[serde(rename = "repositoryName")]
3280    pub repository_name: String,
3281    /// <p>The branch of the repository that contains the changes for the pull request. Also known as the source branch.</p>
3282    #[serde(rename = "sourceReference")]
3283    pub source_reference: String,
3284}
3285
3286/// <p>Represents the input of a test repository triggers operation.</p>
3287#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3288#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3289pub struct TestRepositoryTriggersInput {
3290    /// <p>The name of the repository in which to test the triggers.</p>
3291    #[serde(rename = "repositoryName")]
3292    pub repository_name: String,
3293    /// <p>The list of triggers to test.</p>
3294    #[serde(rename = "triggers")]
3295    pub triggers: Vec<RepositoryTrigger>,
3296}
3297
3298/// <p>Represents the output of a test repository triggers operation.</p>
3299#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3300#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3301pub struct TestRepositoryTriggersOutput {
3302    /// <p>The list of triggers that were not tested. This list provides the names of the triggers that could not be tested, separated by commas.</p>
3303    #[serde(rename = "failedExecutions")]
3304    #[serde(skip_serializing_if = "Option::is_none")]
3305    pub failed_executions: Option<Vec<RepositoryTriggerExecutionFailure>>,
3306    /// <p>The list of triggers that were successfully tested. This list provides the names of the triggers that were successfully tested, separated by commas.</p>
3307    #[serde(rename = "successfulExecutions")]
3308    #[serde(skip_serializing_if = "Option::is_none")]
3309    pub successful_executions: Option<Vec<String>>,
3310}
3311
3312#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3313#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3314pub struct UntagResourceInput {
3315    /// <p>The Amazon Resource Name (ARN) of the resource to which you want to remove tags.</p>
3316    #[serde(rename = "resourceArn")]
3317    pub resource_arn: String,
3318    /// <p>The tag key for each tag that you want to remove from the resource.</p>
3319    #[serde(rename = "tagKeys")]
3320    pub tag_keys: Vec<String>,
3321}
3322
3323#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3324#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3325pub struct UpdateApprovalRuleTemplateContentInput {
3326    /// <p>The name of the approval rule template where you want to update the content of the rule. </p>
3327    #[serde(rename = "approvalRuleTemplateName")]
3328    pub approval_rule_template_name: String,
3329    /// <p>The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using <a>GetPullRequest</a>.</p>
3330    #[serde(rename = "existingRuleContentSha256")]
3331    #[serde(skip_serializing_if = "Option::is_none")]
3332    pub existing_rule_content_sha_256: Option<String>,
3333    /// <p>The content that replaces the existing content of the rule. Content statements must be complete. You cannot provide only the changes.</p>
3334    #[serde(rename = "newRuleContent")]
3335    pub new_rule_content: String,
3336}
3337
3338#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3339#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3340pub struct UpdateApprovalRuleTemplateContentOutput {
3341    #[serde(rename = "approvalRuleTemplate")]
3342    pub approval_rule_template: ApprovalRuleTemplate,
3343}
3344
3345#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3346#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3347pub struct UpdateApprovalRuleTemplateDescriptionInput {
3348    /// <p>The updated description of the approval rule template.</p>
3349    #[serde(rename = "approvalRuleTemplateDescription")]
3350    pub approval_rule_template_description: String,
3351    /// <p>The name of the template for which you want to update the description.</p>
3352    #[serde(rename = "approvalRuleTemplateName")]
3353    pub approval_rule_template_name: String,
3354}
3355
3356#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3357#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3358pub struct UpdateApprovalRuleTemplateDescriptionOutput {
3359    /// <p>The structure and content of the updated approval rule template.</p>
3360    #[serde(rename = "approvalRuleTemplate")]
3361    pub approval_rule_template: ApprovalRuleTemplate,
3362}
3363
3364#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3365#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3366pub struct UpdateApprovalRuleTemplateNameInput {
3367    /// <p>The new name you want to apply to the approval rule template.</p>
3368    #[serde(rename = "newApprovalRuleTemplateName")]
3369    pub new_approval_rule_template_name: String,
3370    /// <p>The current name of the approval rule template.</p>
3371    #[serde(rename = "oldApprovalRuleTemplateName")]
3372    pub old_approval_rule_template_name: String,
3373}
3374
3375#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3376#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3377pub struct UpdateApprovalRuleTemplateNameOutput {
3378    /// <p>The structure and content of the updated approval rule template.</p>
3379    #[serde(rename = "approvalRuleTemplate")]
3380    pub approval_rule_template: ApprovalRuleTemplate,
3381}
3382
3383#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3384#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3385pub struct UpdateCommentInput {
3386    /// <p>The system-generated ID of the comment you want to update. To get this ID, use <a>GetCommentsForComparedCommit</a> or <a>GetCommentsForPullRequest</a>.</p>
3387    #[serde(rename = "commentId")]
3388    pub comment_id: String,
3389    /// <p>The updated content to replace the existing content of the comment.</p>
3390    #[serde(rename = "content")]
3391    pub content: String,
3392}
3393
3394#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3395#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3396pub struct UpdateCommentOutput {
3397    /// <p>Information about the updated comment.</p>
3398    #[serde(rename = "comment")]
3399    #[serde(skip_serializing_if = "Option::is_none")]
3400    pub comment: Option<Comment>,
3401}
3402
3403/// <p>Represents the input of an update default branch operation.</p>
3404#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3405#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3406pub struct UpdateDefaultBranchInput {
3407    /// <p>The name of the branch to set as the default.</p>
3408    #[serde(rename = "defaultBranchName")]
3409    pub default_branch_name: String,
3410    /// <p>The name of the repository to set or change the default branch for.</p>
3411    #[serde(rename = "repositoryName")]
3412    pub repository_name: String,
3413}
3414
3415#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3416#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3417pub struct UpdatePullRequestApprovalRuleContentInput {
3418    /// <p>The name of the approval rule you want to update.</p>
3419    #[serde(rename = "approvalRuleName")]
3420    pub approval_rule_name: String,
3421    /// <p>The SHA-256 hash signature for the content of the approval rule. You can retrieve this information by using <a>GetPullRequest</a>.</p>
3422    #[serde(rename = "existingRuleContentSha256")]
3423    #[serde(skip_serializing_if = "Option::is_none")]
3424    pub existing_rule_content_sha_256: Option<String>,
3425    /// <p><p>The updated content for the approval rule.</p> <note> <p>When you update the content of the approval rule, you can specify approvers in an approval pool in one of two ways:</p> <ul> <li> <p> <b>CodeCommitApprovers</b>: This option only requires an AWS account and a resource. It can be used for both IAM users and federated access users whose name matches the provided resource name. This is a very powerful option that offers a great deal of flexibility. For example, if you specify the AWS account <i>123456789012</i> and <i>Mary<em>Major</i>, all of the following are counted as approvals coming from that user:</p> <ul> <li> <p>An IAM user in the account (arn:aws:iam::<i>123456789012</i>:user/<i>Mary</em>Major</i>)</p> </li> <li> <p>A federated user identified in IAM as Mary<em>Major (arn:aws:sts::<i>123456789012</i>:federated-user/<i>Mary</em>Major</i>)</p> </li> </ul> <p>This option does not recognize an active session of someone assuming the role of CodeCommitReview with a role session name of <i>Mary<em>Major</i> (arn:aws:sts::<i>123456789012</i>:assumed-role/CodeCommitReview/<i>Mary</em>Major</i>) unless you include a wildcard (*Mary<em>Major).</p> </li> <li> <p> <b>Fully qualified ARN</b>: This option allows you to specify the fully qualified Amazon Resource Name (ARN) of the IAM user or role. </p> </li> </ul> <p>For more information about IAM ARNs, wildcards, and formats, see &lt;a href=&quot;https://docs.aws.amazon.com/IAM/latest/UserGuide/reference</em>identifiers.html&quot;&gt;IAM Identifiers</a> in the <i>IAM User Guide</i>.</p> </note></p>
3426    #[serde(rename = "newRuleContent")]
3427    pub new_rule_content: String,
3428    /// <p>The system-generated ID of the pull request.</p>
3429    #[serde(rename = "pullRequestId")]
3430    pub pull_request_id: String,
3431}
3432
3433#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3434#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3435pub struct UpdatePullRequestApprovalRuleContentOutput {
3436    /// <p>Information about the updated approval rule.</p>
3437    #[serde(rename = "approvalRule")]
3438    pub approval_rule: ApprovalRule,
3439}
3440
3441#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3442#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3443pub struct UpdatePullRequestApprovalStateInput {
3444    /// <p>The approval state to associate with the user on the pull request.</p>
3445    #[serde(rename = "approvalState")]
3446    pub approval_state: String,
3447    /// <p>The system-generated ID of the pull request.</p>
3448    #[serde(rename = "pullRequestId")]
3449    pub pull_request_id: String,
3450    /// <p>The system-generated ID of the revision.</p>
3451    #[serde(rename = "revisionId")]
3452    pub revision_id: String,
3453}
3454
3455#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3456#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3457pub struct UpdatePullRequestDescriptionInput {
3458    /// <p>The updated content of the description for the pull request. This content replaces the existing description.</p>
3459    #[serde(rename = "description")]
3460    pub description: String,
3461    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
3462    #[serde(rename = "pullRequestId")]
3463    pub pull_request_id: String,
3464}
3465
3466#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3467#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3468pub struct UpdatePullRequestDescriptionOutput {
3469    /// <p>Information about the updated pull request.</p>
3470    #[serde(rename = "pullRequest")]
3471    pub pull_request: PullRequest,
3472}
3473
3474#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3475#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3476pub struct UpdatePullRequestStatusInput {
3477    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
3478    #[serde(rename = "pullRequestId")]
3479    pub pull_request_id: String,
3480    /// <p>The status of the pull request. The only valid operations are to update the status from <code>OPEN</code> to <code>OPEN</code>, <code>OPEN</code> to <code>CLOSED</code> or from <code>CLOSED</code> to <code>CLOSED</code>.</p>
3481    #[serde(rename = "pullRequestStatus")]
3482    pub pull_request_status: String,
3483}
3484
3485#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3486#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3487pub struct UpdatePullRequestStatusOutput {
3488    /// <p>Information about the pull request.</p>
3489    #[serde(rename = "pullRequest")]
3490    pub pull_request: PullRequest,
3491}
3492
3493#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3494#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3495pub struct UpdatePullRequestTitleInput {
3496    /// <p>The system-generated ID of the pull request. To get this ID, use <a>ListPullRequests</a>.</p>
3497    #[serde(rename = "pullRequestId")]
3498    pub pull_request_id: String,
3499    /// <p>The updated title of the pull request. This replaces the existing title.</p>
3500    #[serde(rename = "title")]
3501    pub title: String,
3502}
3503
3504#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3505#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3506pub struct UpdatePullRequestTitleOutput {
3507    /// <p>Information about the updated pull request.</p>
3508    #[serde(rename = "pullRequest")]
3509    pub pull_request: PullRequest,
3510}
3511
3512/// <p>Represents the input of an update repository description operation.</p>
3513#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3514#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3515pub struct UpdateRepositoryDescriptionInput {
3516    /// <p>The new comment or description for the specified repository. Repository descriptions are limited to 1,000 characters.</p>
3517    #[serde(rename = "repositoryDescription")]
3518    #[serde(skip_serializing_if = "Option::is_none")]
3519    pub repository_description: Option<String>,
3520    /// <p>The name of the repository to set or change the comment or description for.</p>
3521    #[serde(rename = "repositoryName")]
3522    pub repository_name: String,
3523}
3524
3525/// <p>Represents the input of an update repository description operation.</p>
3526#[derive(Clone, Debug, Default, PartialEq, Serialize)]
3527#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
3528pub struct UpdateRepositoryNameInput {
3529    /// <p>The new name for the repository.</p>
3530    #[serde(rename = "newName")]
3531    pub new_name: String,
3532    /// <p>The current name of the repository.</p>
3533    #[serde(rename = "oldName")]
3534    pub old_name: String,
3535}
3536
3537/// <p>Information about the user who made a specified commit.</p>
3538#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
3539#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
3540pub struct UserInfo {
3541    /// <p>The date when the specified commit was commited, in timestamp format with GMT offset.</p>
3542    #[serde(rename = "date")]
3543    #[serde(skip_serializing_if = "Option::is_none")]
3544    pub date: Option<String>,
3545    /// <p>The email address associated with the user who made the commit, if any.</p>
3546    #[serde(rename = "email")]
3547    #[serde(skip_serializing_if = "Option::is_none")]
3548    pub email: Option<String>,
3549    /// <p>The name of the user who made the specified commit.</p>
3550    #[serde(rename = "name")]
3551    #[serde(skip_serializing_if = "Option::is_none")]
3552    pub name: Option<String>,
3553}
3554
3555/// Errors returned by AssociateApprovalRuleTemplateWithRepository
3556#[derive(Debug, PartialEq)]
3557pub enum AssociateApprovalRuleTemplateWithRepositoryError {
3558    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
3559    ApprovalRuleTemplateDoesNotExist(String),
3560    /// <p>An approval rule template name is required, but was not specified.</p>
3561    ApprovalRuleTemplateNameRequired(String),
3562    /// <p>An encryption integrity check failed.</p>
3563    EncryptionIntegrityChecksFailed(String),
3564    /// <p>An encryption key could not be accessed.</p>
3565    EncryptionKeyAccessDenied(String),
3566    /// <p>The encryption key is disabled.</p>
3567    EncryptionKeyDisabled(String),
3568    /// <p>No encryption key was found.</p>
3569    EncryptionKeyNotFound(String),
3570    /// <p>The encryption key is not available.</p>
3571    EncryptionKeyUnavailable(String),
3572    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
3573    InvalidApprovalRuleTemplateName(String),
3574    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
3575    InvalidRepositoryName(String),
3576    /// <p>The maximum number of approval rule templates for a repository has been exceeded. You cannot associate more than 25 approval rule templates with a repository.</p>
3577    MaximumRuleTemplatesAssociatedWithRepository(String),
3578    /// <p>The specified repository does not exist.</p>
3579    RepositoryDoesNotExist(String),
3580    /// <p>A repository name is required, but was not specified.</p>
3581    RepositoryNameRequired(String),
3582}
3583
3584impl AssociateApprovalRuleTemplateWithRepositoryError {
3585    pub fn from_response(
3586        res: BufferedHttpResponse,
3587    ) -> RusotoError<AssociateApprovalRuleTemplateWithRepositoryError> {
3588        if let Some(err) = proto::json::Error::parse(&res) {
3589            match err.typ.as_str() {
3590                                "ApprovalRuleTemplateDoesNotExistException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::ApprovalRuleTemplateDoesNotExist(err.msg)),
3591"ApprovalRuleTemplateNameRequiredException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::ApprovalRuleTemplateNameRequired(err.msg)),
3592"EncryptionIntegrityChecksFailedException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::EncryptionIntegrityChecksFailed(err.msg)),
3593"EncryptionKeyAccessDeniedException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyAccessDenied(err.msg)),
3594"EncryptionKeyDisabledException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyDisabled(err.msg)),
3595"EncryptionKeyNotFoundException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyNotFound(err.msg)),
3596"EncryptionKeyUnavailableException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyUnavailable(err.msg)),
3597"InvalidApprovalRuleTemplateNameException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::InvalidApprovalRuleTemplateName(err.msg)),
3598"InvalidRepositoryNameException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::InvalidRepositoryName(err.msg)),
3599"MaximumRuleTemplatesAssociatedWithRepositoryException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::MaximumRuleTemplatesAssociatedWithRepository(err.msg)),
3600"RepositoryDoesNotExistException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::RepositoryDoesNotExist(err.msg)),
3601"RepositoryNameRequiredException" => return RusotoError::Service(AssociateApprovalRuleTemplateWithRepositoryError::RepositoryNameRequired(err.msg)),
3602"ValidationException" => return RusotoError::Validation(err.msg),
3603_ => {}
3604                            }
3605        }
3606        RusotoError::Unknown(res)
3607    }
3608}
3609impl fmt::Display for AssociateApprovalRuleTemplateWithRepositoryError {
3610    #[allow(unused_variables)]
3611    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3612        match *self {
3613                            AssociateApprovalRuleTemplateWithRepositoryError::ApprovalRuleTemplateDoesNotExist(ref cause) => write!(f, "{}", cause),
3614AssociateApprovalRuleTemplateWithRepositoryError::ApprovalRuleTemplateNameRequired(ref cause) => write!(f, "{}", cause),
3615AssociateApprovalRuleTemplateWithRepositoryError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
3616AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
3617AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
3618AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
3619AssociateApprovalRuleTemplateWithRepositoryError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
3620AssociateApprovalRuleTemplateWithRepositoryError::InvalidApprovalRuleTemplateName(ref cause) => write!(f, "{}", cause),
3621AssociateApprovalRuleTemplateWithRepositoryError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
3622AssociateApprovalRuleTemplateWithRepositoryError::MaximumRuleTemplatesAssociatedWithRepository(ref cause) => write!(f, "{}", cause),
3623AssociateApprovalRuleTemplateWithRepositoryError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
3624AssociateApprovalRuleTemplateWithRepositoryError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause)
3625                        }
3626    }
3627}
3628impl Error for AssociateApprovalRuleTemplateWithRepositoryError {}
3629/// Errors returned by BatchAssociateApprovalRuleTemplateWithRepositories
3630#[derive(Debug, PartialEq)]
3631pub enum BatchAssociateApprovalRuleTemplateWithRepositoriesError {
3632    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
3633    ApprovalRuleTemplateDoesNotExist(String),
3634    /// <p>An approval rule template name is required, but was not specified.</p>
3635    ApprovalRuleTemplateNameRequired(String),
3636    /// <p>An encryption integrity check failed.</p>
3637    EncryptionIntegrityChecksFailed(String),
3638    /// <p>An encryption key could not be accessed.</p>
3639    EncryptionKeyAccessDenied(String),
3640    /// <p>The encryption key is disabled.</p>
3641    EncryptionKeyDisabled(String),
3642    /// <p>No encryption key was found.</p>
3643    EncryptionKeyNotFound(String),
3644    /// <p>The encryption key is not available.</p>
3645    EncryptionKeyUnavailable(String),
3646    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
3647    InvalidApprovalRuleTemplateName(String),
3648    /// <p>The maximum number of allowed repository names was exceeded. Currently, this number is 100.</p>
3649    MaximumRepositoryNamesExceeded(String),
3650    /// <p>At least one repository name object is required, but was not specified.</p>
3651    RepositoryNamesRequired(String),
3652}
3653
3654impl BatchAssociateApprovalRuleTemplateWithRepositoriesError {
3655    pub fn from_response(
3656        res: BufferedHttpResponse,
3657    ) -> RusotoError<BatchAssociateApprovalRuleTemplateWithRepositoriesError> {
3658        if let Some(err) = proto::json::Error::parse(&res) {
3659            match err.typ.as_str() {
3660                                "ApprovalRuleTemplateDoesNotExistException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::ApprovalRuleTemplateDoesNotExist(err.msg)),
3661"ApprovalRuleTemplateNameRequiredException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::ApprovalRuleTemplateNameRequired(err.msg)),
3662"EncryptionIntegrityChecksFailedException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionIntegrityChecksFailed(err.msg)),
3663"EncryptionKeyAccessDeniedException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyAccessDenied(err.msg)),
3664"EncryptionKeyDisabledException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyDisabled(err.msg)),
3665"EncryptionKeyNotFoundException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyNotFound(err.msg)),
3666"EncryptionKeyUnavailableException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyUnavailable(err.msg)),
3667"InvalidApprovalRuleTemplateNameException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::InvalidApprovalRuleTemplateName(err.msg)),
3668"MaximumRepositoryNamesExceededException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::MaximumRepositoryNamesExceeded(err.msg)),
3669"RepositoryNamesRequiredException" => return RusotoError::Service(BatchAssociateApprovalRuleTemplateWithRepositoriesError::RepositoryNamesRequired(err.msg)),
3670"ValidationException" => return RusotoError::Validation(err.msg),
3671_ => {}
3672                            }
3673        }
3674        RusotoError::Unknown(res)
3675    }
3676}
3677impl fmt::Display for BatchAssociateApprovalRuleTemplateWithRepositoriesError {
3678    #[allow(unused_variables)]
3679    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3680        match *self {
3681                            BatchAssociateApprovalRuleTemplateWithRepositoriesError::ApprovalRuleTemplateDoesNotExist(ref cause) => write!(f, "{}", cause),
3682BatchAssociateApprovalRuleTemplateWithRepositoriesError::ApprovalRuleTemplateNameRequired(ref cause) => write!(f, "{}", cause),
3683BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
3684BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
3685BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
3686BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
3687BatchAssociateApprovalRuleTemplateWithRepositoriesError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
3688BatchAssociateApprovalRuleTemplateWithRepositoriesError::InvalidApprovalRuleTemplateName(ref cause) => write!(f, "{}", cause),
3689BatchAssociateApprovalRuleTemplateWithRepositoriesError::MaximumRepositoryNamesExceeded(ref cause) => write!(f, "{}", cause),
3690BatchAssociateApprovalRuleTemplateWithRepositoriesError::RepositoryNamesRequired(ref cause) => write!(f, "{}", cause)
3691                        }
3692    }
3693}
3694impl Error for BatchAssociateApprovalRuleTemplateWithRepositoriesError {}
3695/// Errors returned by BatchDescribeMergeConflicts
3696#[derive(Debug, PartialEq)]
3697pub enum BatchDescribeMergeConflictsError {
3698    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
3699    CommitDoesNotExist(String),
3700    /// <p>A commit was not specified.</p>
3701    CommitRequired(String),
3702    /// <p>An encryption integrity check failed.</p>
3703    EncryptionIntegrityChecksFailed(String),
3704    /// <p>An encryption key could not be accessed.</p>
3705    EncryptionKeyAccessDenied(String),
3706    /// <p>The encryption key is disabled.</p>
3707    EncryptionKeyDisabled(String),
3708    /// <p>No encryption key was found.</p>
3709    EncryptionKeyNotFound(String),
3710    /// <p>The encryption key is not available.</p>
3711    EncryptionKeyUnavailable(String),
3712    /// <p>The specified commit is not valid.</p>
3713    InvalidCommit(String),
3714    /// <p>The specified conflict detail level is not valid.</p>
3715    InvalidConflictDetailLevel(String),
3716    /// <p>The specified conflict resolution strategy is not valid.</p>
3717    InvalidConflictResolutionStrategy(String),
3718    /// <p>The specified continuation token is not valid.</p>
3719    InvalidContinuationToken(String),
3720    /// <p>The specified value for the number of conflict files to return is not valid.</p>
3721    InvalidMaxConflictFiles(String),
3722    /// <p>The specified value for the number of merge hunks to return is not valid.</p>
3723    InvalidMaxMergeHunks(String),
3724    /// <p>The specified merge option is not valid for this operation. Not all merge strategies are supported for all operations.</p>
3725    InvalidMergeOption(String),
3726    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
3727    InvalidRepositoryName(String),
3728    /// <p>The number of files to load exceeds the allowed limit.</p>
3729    MaximumFileContentToLoadExceeded(String),
3730    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
3731    MaximumItemsToCompareExceeded(String),
3732    /// <p>A merge option or stategy is required, and none was provided.</p>
3733    MergeOptionRequired(String),
3734    /// <p>The specified repository does not exist.</p>
3735    RepositoryDoesNotExist(String),
3736    /// <p>A repository name is required, but was not specified.</p>
3737    RepositoryNameRequired(String),
3738    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
3739    TipsDivergenceExceeded(String),
3740}
3741
3742impl BatchDescribeMergeConflictsError {
3743    pub fn from_response(
3744        res: BufferedHttpResponse,
3745    ) -> RusotoError<BatchDescribeMergeConflictsError> {
3746        if let Some(err) = proto::json::Error::parse(&res) {
3747            match err.typ.as_str() {
3748                "CommitDoesNotExistException" => {
3749                    return RusotoError::Service(
3750                        BatchDescribeMergeConflictsError::CommitDoesNotExist(err.msg),
3751                    )
3752                }
3753                "CommitRequiredException" => {
3754                    return RusotoError::Service(BatchDescribeMergeConflictsError::CommitRequired(
3755                        err.msg,
3756                    ))
3757                }
3758                "EncryptionIntegrityChecksFailedException" => {
3759                    return RusotoError::Service(
3760                        BatchDescribeMergeConflictsError::EncryptionIntegrityChecksFailed(err.msg),
3761                    )
3762                }
3763                "EncryptionKeyAccessDeniedException" => {
3764                    return RusotoError::Service(
3765                        BatchDescribeMergeConflictsError::EncryptionKeyAccessDenied(err.msg),
3766                    )
3767                }
3768                "EncryptionKeyDisabledException" => {
3769                    return RusotoError::Service(
3770                        BatchDescribeMergeConflictsError::EncryptionKeyDisabled(err.msg),
3771                    )
3772                }
3773                "EncryptionKeyNotFoundException" => {
3774                    return RusotoError::Service(
3775                        BatchDescribeMergeConflictsError::EncryptionKeyNotFound(err.msg),
3776                    )
3777                }
3778                "EncryptionKeyUnavailableException" => {
3779                    return RusotoError::Service(
3780                        BatchDescribeMergeConflictsError::EncryptionKeyUnavailable(err.msg),
3781                    )
3782                }
3783                "InvalidCommitException" => {
3784                    return RusotoError::Service(BatchDescribeMergeConflictsError::InvalidCommit(
3785                        err.msg,
3786                    ))
3787                }
3788                "InvalidConflictDetailLevelException" => {
3789                    return RusotoError::Service(
3790                        BatchDescribeMergeConflictsError::InvalidConflictDetailLevel(err.msg),
3791                    )
3792                }
3793                "InvalidConflictResolutionStrategyException" => {
3794                    return RusotoError::Service(
3795                        BatchDescribeMergeConflictsError::InvalidConflictResolutionStrategy(
3796                            err.msg,
3797                        ),
3798                    )
3799                }
3800                "InvalidContinuationTokenException" => {
3801                    return RusotoError::Service(
3802                        BatchDescribeMergeConflictsError::InvalidContinuationToken(err.msg),
3803                    )
3804                }
3805                "InvalidMaxConflictFilesException" => {
3806                    return RusotoError::Service(
3807                        BatchDescribeMergeConflictsError::InvalidMaxConflictFiles(err.msg),
3808                    )
3809                }
3810                "InvalidMaxMergeHunksException" => {
3811                    return RusotoError::Service(
3812                        BatchDescribeMergeConflictsError::InvalidMaxMergeHunks(err.msg),
3813                    )
3814                }
3815                "InvalidMergeOptionException" => {
3816                    return RusotoError::Service(
3817                        BatchDescribeMergeConflictsError::InvalidMergeOption(err.msg),
3818                    )
3819                }
3820                "InvalidRepositoryNameException" => {
3821                    return RusotoError::Service(
3822                        BatchDescribeMergeConflictsError::InvalidRepositoryName(err.msg),
3823                    )
3824                }
3825                "MaximumFileContentToLoadExceededException" => {
3826                    return RusotoError::Service(
3827                        BatchDescribeMergeConflictsError::MaximumFileContentToLoadExceeded(err.msg),
3828                    )
3829                }
3830                "MaximumItemsToCompareExceededException" => {
3831                    return RusotoError::Service(
3832                        BatchDescribeMergeConflictsError::MaximumItemsToCompareExceeded(err.msg),
3833                    )
3834                }
3835                "MergeOptionRequiredException" => {
3836                    return RusotoError::Service(
3837                        BatchDescribeMergeConflictsError::MergeOptionRequired(err.msg),
3838                    )
3839                }
3840                "RepositoryDoesNotExistException" => {
3841                    return RusotoError::Service(
3842                        BatchDescribeMergeConflictsError::RepositoryDoesNotExist(err.msg),
3843                    )
3844                }
3845                "RepositoryNameRequiredException" => {
3846                    return RusotoError::Service(
3847                        BatchDescribeMergeConflictsError::RepositoryNameRequired(err.msg),
3848                    )
3849                }
3850                "TipsDivergenceExceededException" => {
3851                    return RusotoError::Service(
3852                        BatchDescribeMergeConflictsError::TipsDivergenceExceeded(err.msg),
3853                    )
3854                }
3855                "ValidationException" => return RusotoError::Validation(err.msg),
3856                _ => {}
3857            }
3858        }
3859        RusotoError::Unknown(res)
3860    }
3861}
3862impl fmt::Display for BatchDescribeMergeConflictsError {
3863    #[allow(unused_variables)]
3864    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3865        match *self {
3866            BatchDescribeMergeConflictsError::CommitDoesNotExist(ref cause) => {
3867                write!(f, "{}", cause)
3868            }
3869            BatchDescribeMergeConflictsError::CommitRequired(ref cause) => write!(f, "{}", cause),
3870            BatchDescribeMergeConflictsError::EncryptionIntegrityChecksFailed(ref cause) => {
3871                write!(f, "{}", cause)
3872            }
3873            BatchDescribeMergeConflictsError::EncryptionKeyAccessDenied(ref cause) => {
3874                write!(f, "{}", cause)
3875            }
3876            BatchDescribeMergeConflictsError::EncryptionKeyDisabled(ref cause) => {
3877                write!(f, "{}", cause)
3878            }
3879            BatchDescribeMergeConflictsError::EncryptionKeyNotFound(ref cause) => {
3880                write!(f, "{}", cause)
3881            }
3882            BatchDescribeMergeConflictsError::EncryptionKeyUnavailable(ref cause) => {
3883                write!(f, "{}", cause)
3884            }
3885            BatchDescribeMergeConflictsError::InvalidCommit(ref cause) => write!(f, "{}", cause),
3886            BatchDescribeMergeConflictsError::InvalidConflictDetailLevel(ref cause) => {
3887                write!(f, "{}", cause)
3888            }
3889            BatchDescribeMergeConflictsError::InvalidConflictResolutionStrategy(ref cause) => {
3890                write!(f, "{}", cause)
3891            }
3892            BatchDescribeMergeConflictsError::InvalidContinuationToken(ref cause) => {
3893                write!(f, "{}", cause)
3894            }
3895            BatchDescribeMergeConflictsError::InvalidMaxConflictFiles(ref cause) => {
3896                write!(f, "{}", cause)
3897            }
3898            BatchDescribeMergeConflictsError::InvalidMaxMergeHunks(ref cause) => {
3899                write!(f, "{}", cause)
3900            }
3901            BatchDescribeMergeConflictsError::InvalidMergeOption(ref cause) => {
3902                write!(f, "{}", cause)
3903            }
3904            BatchDescribeMergeConflictsError::InvalidRepositoryName(ref cause) => {
3905                write!(f, "{}", cause)
3906            }
3907            BatchDescribeMergeConflictsError::MaximumFileContentToLoadExceeded(ref cause) => {
3908                write!(f, "{}", cause)
3909            }
3910            BatchDescribeMergeConflictsError::MaximumItemsToCompareExceeded(ref cause) => {
3911                write!(f, "{}", cause)
3912            }
3913            BatchDescribeMergeConflictsError::MergeOptionRequired(ref cause) => {
3914                write!(f, "{}", cause)
3915            }
3916            BatchDescribeMergeConflictsError::RepositoryDoesNotExist(ref cause) => {
3917                write!(f, "{}", cause)
3918            }
3919            BatchDescribeMergeConflictsError::RepositoryNameRequired(ref cause) => {
3920                write!(f, "{}", cause)
3921            }
3922            BatchDescribeMergeConflictsError::TipsDivergenceExceeded(ref cause) => {
3923                write!(f, "{}", cause)
3924            }
3925        }
3926    }
3927}
3928impl Error for BatchDescribeMergeConflictsError {}
3929/// Errors returned by BatchDisassociateApprovalRuleTemplateFromRepositories
3930#[derive(Debug, PartialEq)]
3931pub enum BatchDisassociateApprovalRuleTemplateFromRepositoriesError {
3932    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
3933    ApprovalRuleTemplateDoesNotExist(String),
3934    /// <p>An approval rule template name is required, but was not specified.</p>
3935    ApprovalRuleTemplateNameRequired(String),
3936    /// <p>An encryption integrity check failed.</p>
3937    EncryptionIntegrityChecksFailed(String),
3938    /// <p>An encryption key could not be accessed.</p>
3939    EncryptionKeyAccessDenied(String),
3940    /// <p>The encryption key is disabled.</p>
3941    EncryptionKeyDisabled(String),
3942    /// <p>No encryption key was found.</p>
3943    EncryptionKeyNotFound(String),
3944    /// <p>The encryption key is not available.</p>
3945    EncryptionKeyUnavailable(String),
3946    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
3947    InvalidApprovalRuleTemplateName(String),
3948    /// <p>The maximum number of allowed repository names was exceeded. Currently, this number is 100.</p>
3949    MaximumRepositoryNamesExceeded(String),
3950    /// <p>At least one repository name object is required, but was not specified.</p>
3951    RepositoryNamesRequired(String),
3952}
3953
3954impl BatchDisassociateApprovalRuleTemplateFromRepositoriesError {
3955    pub fn from_response(
3956        res: BufferedHttpResponse,
3957    ) -> RusotoError<BatchDisassociateApprovalRuleTemplateFromRepositoriesError> {
3958        if let Some(err) = proto::json::Error::parse(&res) {
3959            match err.typ.as_str() {
3960                                "ApprovalRuleTemplateDoesNotExistException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::ApprovalRuleTemplateDoesNotExist(err.msg)),
3961"ApprovalRuleTemplateNameRequiredException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::ApprovalRuleTemplateNameRequired(err.msg)),
3962"EncryptionIntegrityChecksFailedException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionIntegrityChecksFailed(err.msg)),
3963"EncryptionKeyAccessDeniedException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyAccessDenied(err.msg)),
3964"EncryptionKeyDisabledException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyDisabled(err.msg)),
3965"EncryptionKeyNotFoundException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyNotFound(err.msg)),
3966"EncryptionKeyUnavailableException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyUnavailable(err.msg)),
3967"InvalidApprovalRuleTemplateNameException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::InvalidApprovalRuleTemplateName(err.msg)),
3968"MaximumRepositoryNamesExceededException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::MaximumRepositoryNamesExceeded(err.msg)),
3969"RepositoryNamesRequiredException" => return RusotoError::Service(BatchDisassociateApprovalRuleTemplateFromRepositoriesError::RepositoryNamesRequired(err.msg)),
3970"ValidationException" => return RusotoError::Validation(err.msg),
3971_ => {}
3972                            }
3973        }
3974        RusotoError::Unknown(res)
3975    }
3976}
3977impl fmt::Display for BatchDisassociateApprovalRuleTemplateFromRepositoriesError {
3978    #[allow(unused_variables)]
3979    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3980        match *self {
3981                            BatchDisassociateApprovalRuleTemplateFromRepositoriesError::ApprovalRuleTemplateDoesNotExist(ref cause) => write!(f, "{}", cause),
3982BatchDisassociateApprovalRuleTemplateFromRepositoriesError::ApprovalRuleTemplateNameRequired(ref cause) => write!(f, "{}", cause),
3983BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
3984BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
3985BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
3986BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
3987BatchDisassociateApprovalRuleTemplateFromRepositoriesError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
3988BatchDisassociateApprovalRuleTemplateFromRepositoriesError::InvalidApprovalRuleTemplateName(ref cause) => write!(f, "{}", cause),
3989BatchDisassociateApprovalRuleTemplateFromRepositoriesError::MaximumRepositoryNamesExceeded(ref cause) => write!(f, "{}", cause),
3990BatchDisassociateApprovalRuleTemplateFromRepositoriesError::RepositoryNamesRequired(ref cause) => write!(f, "{}", cause)
3991                        }
3992    }
3993}
3994impl Error for BatchDisassociateApprovalRuleTemplateFromRepositoriesError {}
3995/// Errors returned by BatchGetCommits
3996#[derive(Debug, PartialEq)]
3997pub enum BatchGetCommitsError {
3998    /// <p>The maximum number of allowed commit IDs in a batch request is 100. Verify that your batch requests contains no more than 100 commit IDs, and then try again.</p>
3999    CommitIdsLimitExceeded(String),
4000    /// <p>A list of commit IDs is required, but was either not specified or the list was empty.</p>
4001    CommitIdsListRequired(String),
4002    /// <p>An encryption integrity check failed.</p>
4003    EncryptionIntegrityChecksFailed(String),
4004    /// <p>An encryption key could not be accessed.</p>
4005    EncryptionKeyAccessDenied(String),
4006    /// <p>The encryption key is disabled.</p>
4007    EncryptionKeyDisabled(String),
4008    /// <p>No encryption key was found.</p>
4009    EncryptionKeyNotFound(String),
4010    /// <p>The encryption key is not available.</p>
4011    EncryptionKeyUnavailable(String),
4012    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
4013    InvalidRepositoryName(String),
4014    /// <p>The specified repository does not exist.</p>
4015    RepositoryDoesNotExist(String),
4016    /// <p>A repository name is required, but was not specified.</p>
4017    RepositoryNameRequired(String),
4018}
4019
4020impl BatchGetCommitsError {
4021    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<BatchGetCommitsError> {
4022        if let Some(err) = proto::json::Error::parse(&res) {
4023            match err.typ.as_str() {
4024                "CommitIdsLimitExceededException" => {
4025                    return RusotoError::Service(BatchGetCommitsError::CommitIdsLimitExceeded(
4026                        err.msg,
4027                    ))
4028                }
4029                "CommitIdsListRequiredException" => {
4030                    return RusotoError::Service(BatchGetCommitsError::CommitIdsListRequired(
4031                        err.msg,
4032                    ))
4033                }
4034                "EncryptionIntegrityChecksFailedException" => {
4035                    return RusotoError::Service(
4036                        BatchGetCommitsError::EncryptionIntegrityChecksFailed(err.msg),
4037                    )
4038                }
4039                "EncryptionKeyAccessDeniedException" => {
4040                    return RusotoError::Service(BatchGetCommitsError::EncryptionKeyAccessDenied(
4041                        err.msg,
4042                    ))
4043                }
4044                "EncryptionKeyDisabledException" => {
4045                    return RusotoError::Service(BatchGetCommitsError::EncryptionKeyDisabled(
4046                        err.msg,
4047                    ))
4048                }
4049                "EncryptionKeyNotFoundException" => {
4050                    return RusotoError::Service(BatchGetCommitsError::EncryptionKeyNotFound(
4051                        err.msg,
4052                    ))
4053                }
4054                "EncryptionKeyUnavailableException" => {
4055                    return RusotoError::Service(BatchGetCommitsError::EncryptionKeyUnavailable(
4056                        err.msg,
4057                    ))
4058                }
4059                "InvalidRepositoryNameException" => {
4060                    return RusotoError::Service(BatchGetCommitsError::InvalidRepositoryName(
4061                        err.msg,
4062                    ))
4063                }
4064                "RepositoryDoesNotExistException" => {
4065                    return RusotoError::Service(BatchGetCommitsError::RepositoryDoesNotExist(
4066                        err.msg,
4067                    ))
4068                }
4069                "RepositoryNameRequiredException" => {
4070                    return RusotoError::Service(BatchGetCommitsError::RepositoryNameRequired(
4071                        err.msg,
4072                    ))
4073                }
4074                "ValidationException" => return RusotoError::Validation(err.msg),
4075                _ => {}
4076            }
4077        }
4078        RusotoError::Unknown(res)
4079    }
4080}
4081impl fmt::Display for BatchGetCommitsError {
4082    #[allow(unused_variables)]
4083    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4084        match *self {
4085            BatchGetCommitsError::CommitIdsLimitExceeded(ref cause) => write!(f, "{}", cause),
4086            BatchGetCommitsError::CommitIdsListRequired(ref cause) => write!(f, "{}", cause),
4087            BatchGetCommitsError::EncryptionIntegrityChecksFailed(ref cause) => {
4088                write!(f, "{}", cause)
4089            }
4090            BatchGetCommitsError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
4091            BatchGetCommitsError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
4092            BatchGetCommitsError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
4093            BatchGetCommitsError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
4094            BatchGetCommitsError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
4095            BatchGetCommitsError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
4096            BatchGetCommitsError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
4097        }
4098    }
4099}
4100impl Error for BatchGetCommitsError {}
4101/// Errors returned by BatchGetRepositories
4102#[derive(Debug, PartialEq)]
4103pub enum BatchGetRepositoriesError {
4104    /// <p>An encryption integrity check failed.</p>
4105    EncryptionIntegrityChecksFailed(String),
4106    /// <p>An encryption key could not be accessed.</p>
4107    EncryptionKeyAccessDenied(String),
4108    /// <p>The encryption key is disabled.</p>
4109    EncryptionKeyDisabled(String),
4110    /// <p>No encryption key was found.</p>
4111    EncryptionKeyNotFound(String),
4112    /// <p>The encryption key is not available.</p>
4113    EncryptionKeyUnavailable(String),
4114    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
4115    InvalidRepositoryName(String),
4116    /// <p>The maximum number of allowed repository names was exceeded. Currently, this number is 100.</p>
4117    MaximumRepositoryNamesExceeded(String),
4118    /// <p>At least one repository name object is required, but was not specified.</p>
4119    RepositoryNamesRequired(String),
4120}
4121
4122impl BatchGetRepositoriesError {
4123    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<BatchGetRepositoriesError> {
4124        if let Some(err) = proto::json::Error::parse(&res) {
4125            match err.typ.as_str() {
4126                "EncryptionIntegrityChecksFailedException" => {
4127                    return RusotoError::Service(
4128                        BatchGetRepositoriesError::EncryptionIntegrityChecksFailed(err.msg),
4129                    )
4130                }
4131                "EncryptionKeyAccessDeniedException" => {
4132                    return RusotoError::Service(
4133                        BatchGetRepositoriesError::EncryptionKeyAccessDenied(err.msg),
4134                    )
4135                }
4136                "EncryptionKeyDisabledException" => {
4137                    return RusotoError::Service(BatchGetRepositoriesError::EncryptionKeyDisabled(
4138                        err.msg,
4139                    ))
4140                }
4141                "EncryptionKeyNotFoundException" => {
4142                    return RusotoError::Service(BatchGetRepositoriesError::EncryptionKeyNotFound(
4143                        err.msg,
4144                    ))
4145                }
4146                "EncryptionKeyUnavailableException" => {
4147                    return RusotoError::Service(
4148                        BatchGetRepositoriesError::EncryptionKeyUnavailable(err.msg),
4149                    )
4150                }
4151                "InvalidRepositoryNameException" => {
4152                    return RusotoError::Service(BatchGetRepositoriesError::InvalidRepositoryName(
4153                        err.msg,
4154                    ))
4155                }
4156                "MaximumRepositoryNamesExceededException" => {
4157                    return RusotoError::Service(
4158                        BatchGetRepositoriesError::MaximumRepositoryNamesExceeded(err.msg),
4159                    )
4160                }
4161                "RepositoryNamesRequiredException" => {
4162                    return RusotoError::Service(
4163                        BatchGetRepositoriesError::RepositoryNamesRequired(err.msg),
4164                    )
4165                }
4166                "ValidationException" => return RusotoError::Validation(err.msg),
4167                _ => {}
4168            }
4169        }
4170        RusotoError::Unknown(res)
4171    }
4172}
4173impl fmt::Display for BatchGetRepositoriesError {
4174    #[allow(unused_variables)]
4175    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4176        match *self {
4177            BatchGetRepositoriesError::EncryptionIntegrityChecksFailed(ref cause) => {
4178                write!(f, "{}", cause)
4179            }
4180            BatchGetRepositoriesError::EncryptionKeyAccessDenied(ref cause) => {
4181                write!(f, "{}", cause)
4182            }
4183            BatchGetRepositoriesError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
4184            BatchGetRepositoriesError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
4185            BatchGetRepositoriesError::EncryptionKeyUnavailable(ref cause) => {
4186                write!(f, "{}", cause)
4187            }
4188            BatchGetRepositoriesError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
4189            BatchGetRepositoriesError::MaximumRepositoryNamesExceeded(ref cause) => {
4190                write!(f, "{}", cause)
4191            }
4192            BatchGetRepositoriesError::RepositoryNamesRequired(ref cause) => write!(f, "{}", cause),
4193        }
4194    }
4195}
4196impl Error for BatchGetRepositoriesError {}
4197/// Errors returned by CreateApprovalRuleTemplate
4198#[derive(Debug, PartialEq)]
4199pub enum CreateApprovalRuleTemplateError {
4200    /// <p>The content for the approval rule template is empty. You must provide some content for an approval rule template. The content cannot be null.</p>
4201    ApprovalRuleTemplateContentRequired(String),
4202    /// <p>You cannot create an approval rule template with that name because a template with that name already exists in this AWS Region for your AWS account. Approval rule template names must be unique.</p>
4203    ApprovalRuleTemplateNameAlreadyExists(String),
4204    /// <p>An approval rule template name is required, but was not specified.</p>
4205    ApprovalRuleTemplateNameRequired(String),
4206    /// <p>The content of the approval rule template is not valid.</p>
4207    InvalidApprovalRuleTemplateContent(String),
4208    /// <p>The description for the approval rule template is not valid because it exceeds the maximum characters allowed for a description. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
4209    InvalidApprovalRuleTemplateDescription(String),
4210    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
4211    InvalidApprovalRuleTemplateName(String),
4212    /// <p>The maximum number of approval rule templates has been exceeded for this AWS Region. </p>
4213    NumberOfRuleTemplatesExceeded(String),
4214}
4215
4216impl CreateApprovalRuleTemplateError {
4217    pub fn from_response(
4218        res: BufferedHttpResponse,
4219    ) -> RusotoError<CreateApprovalRuleTemplateError> {
4220        if let Some(err) = proto::json::Error::parse(&res) {
4221            match err.typ.as_str() {
4222                "ApprovalRuleTemplateContentRequiredException" => {
4223                    return RusotoError::Service(
4224                        CreateApprovalRuleTemplateError::ApprovalRuleTemplateContentRequired(
4225                            err.msg,
4226                        ),
4227                    )
4228                }
4229                "ApprovalRuleTemplateNameAlreadyExistsException" => {
4230                    return RusotoError::Service(
4231                        CreateApprovalRuleTemplateError::ApprovalRuleTemplateNameAlreadyExists(
4232                            err.msg,
4233                        ),
4234                    )
4235                }
4236                "ApprovalRuleTemplateNameRequiredException" => {
4237                    return RusotoError::Service(
4238                        CreateApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(err.msg),
4239                    )
4240                }
4241                "InvalidApprovalRuleTemplateContentException" => {
4242                    return RusotoError::Service(
4243                        CreateApprovalRuleTemplateError::InvalidApprovalRuleTemplateContent(
4244                            err.msg,
4245                        ),
4246                    )
4247                }
4248                "InvalidApprovalRuleTemplateDescriptionException" => {
4249                    return RusotoError::Service(
4250                        CreateApprovalRuleTemplateError::InvalidApprovalRuleTemplateDescription(
4251                            err.msg,
4252                        ),
4253                    )
4254                }
4255                "InvalidApprovalRuleTemplateNameException" => {
4256                    return RusotoError::Service(
4257                        CreateApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(err.msg),
4258                    )
4259                }
4260                "NumberOfRuleTemplatesExceededException" => {
4261                    return RusotoError::Service(
4262                        CreateApprovalRuleTemplateError::NumberOfRuleTemplatesExceeded(err.msg),
4263                    )
4264                }
4265                "ValidationException" => return RusotoError::Validation(err.msg),
4266                _ => {}
4267            }
4268        }
4269        RusotoError::Unknown(res)
4270    }
4271}
4272impl fmt::Display for CreateApprovalRuleTemplateError {
4273    #[allow(unused_variables)]
4274    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4275        match *self {
4276            CreateApprovalRuleTemplateError::ApprovalRuleTemplateContentRequired(ref cause) => {
4277                write!(f, "{}", cause)
4278            }
4279            CreateApprovalRuleTemplateError::ApprovalRuleTemplateNameAlreadyExists(ref cause) => {
4280                write!(f, "{}", cause)
4281            }
4282            CreateApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(ref cause) => {
4283                write!(f, "{}", cause)
4284            }
4285            CreateApprovalRuleTemplateError::InvalidApprovalRuleTemplateContent(ref cause) => {
4286                write!(f, "{}", cause)
4287            }
4288            CreateApprovalRuleTemplateError::InvalidApprovalRuleTemplateDescription(ref cause) => {
4289                write!(f, "{}", cause)
4290            }
4291            CreateApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(ref cause) => {
4292                write!(f, "{}", cause)
4293            }
4294            CreateApprovalRuleTemplateError::NumberOfRuleTemplatesExceeded(ref cause) => {
4295                write!(f, "{}", cause)
4296            }
4297        }
4298    }
4299}
4300impl Error for CreateApprovalRuleTemplateError {}
4301/// Errors returned by CreateBranch
4302#[derive(Debug, PartialEq)]
4303pub enum CreateBranchError {
4304    /// <p>Cannot create the branch with the specified name because the commit conflicts with an existing branch with the same name. Branch names must be unique.</p>
4305    BranchNameExists(String),
4306    /// <p>A branch name is required, but was not specified.</p>
4307    BranchNameRequired(String),
4308    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
4309    CommitDoesNotExist(String),
4310    /// <p>A commit ID was not specified.</p>
4311    CommitIdRequired(String),
4312    /// <p>An encryption integrity check failed.</p>
4313    EncryptionIntegrityChecksFailed(String),
4314    /// <p>An encryption key could not be accessed.</p>
4315    EncryptionKeyAccessDenied(String),
4316    /// <p>The encryption key is disabled.</p>
4317    EncryptionKeyDisabled(String),
4318    /// <p>No encryption key was found.</p>
4319    EncryptionKeyNotFound(String),
4320    /// <p>The encryption key is not available.</p>
4321    EncryptionKeyUnavailable(String),
4322    /// <p>The specified reference name is not valid.</p>
4323    InvalidBranchName(String),
4324    /// <p>The specified commit ID is not valid.</p>
4325    InvalidCommitId(String),
4326    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
4327    InvalidRepositoryName(String),
4328    /// <p>The specified repository does not exist.</p>
4329    RepositoryDoesNotExist(String),
4330    /// <p>A repository name is required, but was not specified.</p>
4331    RepositoryNameRequired(String),
4332}
4333
4334impl CreateBranchError {
4335    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateBranchError> {
4336        if let Some(err) = proto::json::Error::parse(&res) {
4337            match err.typ.as_str() {
4338                "BranchNameExistsException" => {
4339                    return RusotoError::Service(CreateBranchError::BranchNameExists(err.msg))
4340                }
4341                "BranchNameRequiredException" => {
4342                    return RusotoError::Service(CreateBranchError::BranchNameRequired(err.msg))
4343                }
4344                "CommitDoesNotExistException" => {
4345                    return RusotoError::Service(CreateBranchError::CommitDoesNotExist(err.msg))
4346                }
4347                "CommitIdRequiredException" => {
4348                    return RusotoError::Service(CreateBranchError::CommitIdRequired(err.msg))
4349                }
4350                "EncryptionIntegrityChecksFailedException" => {
4351                    return RusotoError::Service(
4352                        CreateBranchError::EncryptionIntegrityChecksFailed(err.msg),
4353                    )
4354                }
4355                "EncryptionKeyAccessDeniedException" => {
4356                    return RusotoError::Service(CreateBranchError::EncryptionKeyAccessDenied(
4357                        err.msg,
4358                    ))
4359                }
4360                "EncryptionKeyDisabledException" => {
4361                    return RusotoError::Service(CreateBranchError::EncryptionKeyDisabled(err.msg))
4362                }
4363                "EncryptionKeyNotFoundException" => {
4364                    return RusotoError::Service(CreateBranchError::EncryptionKeyNotFound(err.msg))
4365                }
4366                "EncryptionKeyUnavailableException" => {
4367                    return RusotoError::Service(CreateBranchError::EncryptionKeyUnavailable(
4368                        err.msg,
4369                    ))
4370                }
4371                "InvalidBranchNameException" => {
4372                    return RusotoError::Service(CreateBranchError::InvalidBranchName(err.msg))
4373                }
4374                "InvalidCommitIdException" => {
4375                    return RusotoError::Service(CreateBranchError::InvalidCommitId(err.msg))
4376                }
4377                "InvalidRepositoryNameException" => {
4378                    return RusotoError::Service(CreateBranchError::InvalidRepositoryName(err.msg))
4379                }
4380                "RepositoryDoesNotExistException" => {
4381                    return RusotoError::Service(CreateBranchError::RepositoryDoesNotExist(err.msg))
4382                }
4383                "RepositoryNameRequiredException" => {
4384                    return RusotoError::Service(CreateBranchError::RepositoryNameRequired(err.msg))
4385                }
4386                "ValidationException" => return RusotoError::Validation(err.msg),
4387                _ => {}
4388            }
4389        }
4390        RusotoError::Unknown(res)
4391    }
4392}
4393impl fmt::Display for CreateBranchError {
4394    #[allow(unused_variables)]
4395    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4396        match *self {
4397            CreateBranchError::BranchNameExists(ref cause) => write!(f, "{}", cause),
4398            CreateBranchError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
4399            CreateBranchError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
4400            CreateBranchError::CommitIdRequired(ref cause) => write!(f, "{}", cause),
4401            CreateBranchError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
4402            CreateBranchError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
4403            CreateBranchError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
4404            CreateBranchError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
4405            CreateBranchError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
4406            CreateBranchError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
4407            CreateBranchError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
4408            CreateBranchError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
4409            CreateBranchError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
4410            CreateBranchError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
4411        }
4412    }
4413}
4414impl Error for CreateBranchError {}
4415/// Errors returned by CreateCommit
4416#[derive(Debug, PartialEq)]
4417pub enum CreateCommitError {
4418    /// <p>The specified branch does not exist.</p>
4419    BranchDoesNotExist(String),
4420    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <a>ListBranches</a>.</p>
4421    BranchNameIsTagName(String),
4422    /// <p>A branch name is required, but was not specified.</p>
4423    BranchNameRequired(String),
4424    /// <p>The commit message is too long. Provide a shorter string. </p>
4425    CommitMessageLengthExceeded(String),
4426    /// <p>A file cannot be added to the repository because the specified path name has the same name as a file that already exists in this repository. Either provide a different name for the file, or specify a different path for the file.</p>
4427    DirectoryNameConflictsWithFileName(String),
4428    /// <p>An encryption integrity check failed.</p>
4429    EncryptionIntegrityChecksFailed(String),
4430    /// <p>An encryption key could not be accessed.</p>
4431    EncryptionKeyAccessDenied(String),
4432    /// <p>The encryption key is disabled.</p>
4433    EncryptionKeyDisabled(String),
4434    /// <p>No encryption key was found.</p>
4435    EncryptionKeyNotFound(String),
4436    /// <p>The encryption key is not available.</p>
4437    EncryptionKeyUnavailable(String),
4438    /// <p>The commit cannot be created because both a source file and file content have been specified for the same file. You cannot provide both. Either specify a source file or provide the file content directly.</p>
4439    FileContentAndSourceFileSpecified(String),
4440    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
4441    FileContentSizeLimitExceeded(String),
4442    /// <p>The specified file does not exist. Verify that you have used the correct file name, full path, and extension.</p>
4443    FileDoesNotExist(String),
4444    /// <p>The commit cannot be created because no files have been specified as added, updated, or changed (PutFile or DeleteFile) for the commit.</p>
4445    FileEntryRequired(String),
4446    /// <p>The commit cannot be created because no file mode has been specified. A file mode is required to update mode permissions for a file.</p>
4447    FileModeRequired(String),
4448    /// <p>A file cannot be added to the repository because the specified file name has the same name as a directory in this repository. Either provide another name for the file, or add the file in a directory that does not match the file name.</p>
4449    FileNameConflictsWithDirectoryName(String),
4450    /// <p>The commit cannot be created because a specified file path points to a submodule. Verify that the destination files have valid file paths that do not point to a submodule.</p>
4451    FilePathConflictsWithSubmodulePath(String),
4452    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
4453    FolderContentSizeLimitExceeded(String),
4454    /// <p>The specified reference name is not valid.</p>
4455    InvalidBranchName(String),
4456    /// <p>The specified deletion parameter is not valid.</p>
4457    InvalidDeletionParameter(String),
4458    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
4459    InvalidEmail(String),
4460    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
4461    InvalidFileMode(String),
4462    /// <p>The parent commit ID is not valid. The commit ID cannot be empty, and must match the head commit ID for the branch of the repository where you want to add or update a file.</p>
4463    InvalidParentCommitId(String),
4464    /// <p>The specified path is not valid.</p>
4465    InvalidPath(String),
4466    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
4467    InvalidRepositoryName(String),
4468    /// <p>The number of specified files to change as part of this commit exceeds the maximum number of files that can be changed in a single commit. Consider using a Git client for these changes.</p>
4469    MaximumFileEntriesExceeded(String),
4470    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
4471    NameLengthExceeded(String),
4472    /// <p>The commit cannot be created because no changes will be made to the repository as a result of this commit. A commit must contain at least one change.</p>
4473    NoChange(String),
4474    /// <p>The parent commit ID is not valid because it does not exist. The specified parent commit ID does not exist in the specified branch of the repository.</p>
4475    ParentCommitDoesNotExist(String),
4476    /// <p>The file could not be added because the provided parent commit ID is not the current tip of the specified branch. To view the full commit ID of the current head of the branch, use <a>GetBranch</a>.</p>
4477    ParentCommitIdOutdated(String),
4478    /// <p>A parent commit ID is required. To view the full commit ID of a branch in a repository, use <a>GetBranch</a> or a Git command (for example, git pull or git log).</p>
4479    ParentCommitIdRequired(String),
4480    /// <p>The folderPath for a location cannot be null.</p>
4481    PathRequired(String),
4482    /// <p>The commit cannot be created because one or more files specified in the commit reference both a file and a folder.</p>
4483    PutFileEntryConflict(String),
4484    /// <p>The specified repository does not exist.</p>
4485    RepositoryDoesNotExist(String),
4486    /// <p>A repository name is required, but was not specified.</p>
4487    RepositoryNameRequired(String),
4488    /// <p>The commit cannot be created because one of the changes specifies copying or moving a .gitkeep file.</p>
4489    RestrictedSourceFile(String),
4490    /// <p>The commit cannot be created because one or more changes in this commit duplicate actions in the same file path. For example, you cannot make the same delete request to the same file in the same file path twice, or make a delete request and a move request to the same file as part of the same commit.</p>
4491    SamePathRequest(String),
4492    /// <p>The commit cannot be created because no source files or file content have been specified for the commit.</p>
4493    SourceFileOrContentRequired(String),
4494}
4495
4496impl CreateCommitError {
4497    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateCommitError> {
4498        if let Some(err) = proto::json::Error::parse(&res) {
4499            match err.typ.as_str() {
4500                "BranchDoesNotExistException" => {
4501                    return RusotoError::Service(CreateCommitError::BranchDoesNotExist(err.msg))
4502                }
4503                "BranchNameIsTagNameException" => {
4504                    return RusotoError::Service(CreateCommitError::BranchNameIsTagName(err.msg))
4505                }
4506                "BranchNameRequiredException" => {
4507                    return RusotoError::Service(CreateCommitError::BranchNameRequired(err.msg))
4508                }
4509                "CommitMessageLengthExceededException" => {
4510                    return RusotoError::Service(CreateCommitError::CommitMessageLengthExceeded(
4511                        err.msg,
4512                    ))
4513                }
4514                "DirectoryNameConflictsWithFileNameException" => {
4515                    return RusotoError::Service(
4516                        CreateCommitError::DirectoryNameConflictsWithFileName(err.msg),
4517                    )
4518                }
4519                "EncryptionIntegrityChecksFailedException" => {
4520                    return RusotoError::Service(
4521                        CreateCommitError::EncryptionIntegrityChecksFailed(err.msg),
4522                    )
4523                }
4524                "EncryptionKeyAccessDeniedException" => {
4525                    return RusotoError::Service(CreateCommitError::EncryptionKeyAccessDenied(
4526                        err.msg,
4527                    ))
4528                }
4529                "EncryptionKeyDisabledException" => {
4530                    return RusotoError::Service(CreateCommitError::EncryptionKeyDisabled(err.msg))
4531                }
4532                "EncryptionKeyNotFoundException" => {
4533                    return RusotoError::Service(CreateCommitError::EncryptionKeyNotFound(err.msg))
4534                }
4535                "EncryptionKeyUnavailableException" => {
4536                    return RusotoError::Service(CreateCommitError::EncryptionKeyUnavailable(
4537                        err.msg,
4538                    ))
4539                }
4540                "FileContentAndSourceFileSpecifiedException" => {
4541                    return RusotoError::Service(
4542                        CreateCommitError::FileContentAndSourceFileSpecified(err.msg),
4543                    )
4544                }
4545                "FileContentSizeLimitExceededException" => {
4546                    return RusotoError::Service(CreateCommitError::FileContentSizeLimitExceeded(
4547                        err.msg,
4548                    ))
4549                }
4550                "FileDoesNotExistException" => {
4551                    return RusotoError::Service(CreateCommitError::FileDoesNotExist(err.msg))
4552                }
4553                "FileEntryRequiredException" => {
4554                    return RusotoError::Service(CreateCommitError::FileEntryRequired(err.msg))
4555                }
4556                "FileModeRequiredException" => {
4557                    return RusotoError::Service(CreateCommitError::FileModeRequired(err.msg))
4558                }
4559                "FileNameConflictsWithDirectoryNameException" => {
4560                    return RusotoError::Service(
4561                        CreateCommitError::FileNameConflictsWithDirectoryName(err.msg),
4562                    )
4563                }
4564                "FilePathConflictsWithSubmodulePathException" => {
4565                    return RusotoError::Service(
4566                        CreateCommitError::FilePathConflictsWithSubmodulePath(err.msg),
4567                    )
4568                }
4569                "FolderContentSizeLimitExceededException" => {
4570                    return RusotoError::Service(CreateCommitError::FolderContentSizeLimitExceeded(
4571                        err.msg,
4572                    ))
4573                }
4574                "InvalidBranchNameException" => {
4575                    return RusotoError::Service(CreateCommitError::InvalidBranchName(err.msg))
4576                }
4577                "InvalidDeletionParameterException" => {
4578                    return RusotoError::Service(CreateCommitError::InvalidDeletionParameter(
4579                        err.msg,
4580                    ))
4581                }
4582                "InvalidEmailException" => {
4583                    return RusotoError::Service(CreateCommitError::InvalidEmail(err.msg))
4584                }
4585                "InvalidFileModeException" => {
4586                    return RusotoError::Service(CreateCommitError::InvalidFileMode(err.msg))
4587                }
4588                "InvalidParentCommitIdException" => {
4589                    return RusotoError::Service(CreateCommitError::InvalidParentCommitId(err.msg))
4590                }
4591                "InvalidPathException" => {
4592                    return RusotoError::Service(CreateCommitError::InvalidPath(err.msg))
4593                }
4594                "InvalidRepositoryNameException" => {
4595                    return RusotoError::Service(CreateCommitError::InvalidRepositoryName(err.msg))
4596                }
4597                "MaximumFileEntriesExceededException" => {
4598                    return RusotoError::Service(CreateCommitError::MaximumFileEntriesExceeded(
4599                        err.msg,
4600                    ))
4601                }
4602                "NameLengthExceededException" => {
4603                    return RusotoError::Service(CreateCommitError::NameLengthExceeded(err.msg))
4604                }
4605                "NoChangeException" => {
4606                    return RusotoError::Service(CreateCommitError::NoChange(err.msg))
4607                }
4608                "ParentCommitDoesNotExistException" => {
4609                    return RusotoError::Service(CreateCommitError::ParentCommitDoesNotExist(
4610                        err.msg,
4611                    ))
4612                }
4613                "ParentCommitIdOutdatedException" => {
4614                    return RusotoError::Service(CreateCommitError::ParentCommitIdOutdated(err.msg))
4615                }
4616                "ParentCommitIdRequiredException" => {
4617                    return RusotoError::Service(CreateCommitError::ParentCommitIdRequired(err.msg))
4618                }
4619                "PathRequiredException" => {
4620                    return RusotoError::Service(CreateCommitError::PathRequired(err.msg))
4621                }
4622                "PutFileEntryConflictException" => {
4623                    return RusotoError::Service(CreateCommitError::PutFileEntryConflict(err.msg))
4624                }
4625                "RepositoryDoesNotExistException" => {
4626                    return RusotoError::Service(CreateCommitError::RepositoryDoesNotExist(err.msg))
4627                }
4628                "RepositoryNameRequiredException" => {
4629                    return RusotoError::Service(CreateCommitError::RepositoryNameRequired(err.msg))
4630                }
4631                "RestrictedSourceFileException" => {
4632                    return RusotoError::Service(CreateCommitError::RestrictedSourceFile(err.msg))
4633                }
4634                "SamePathRequestException" => {
4635                    return RusotoError::Service(CreateCommitError::SamePathRequest(err.msg))
4636                }
4637                "SourceFileOrContentRequiredException" => {
4638                    return RusotoError::Service(CreateCommitError::SourceFileOrContentRequired(
4639                        err.msg,
4640                    ))
4641                }
4642                "ValidationException" => return RusotoError::Validation(err.msg),
4643                _ => {}
4644            }
4645        }
4646        RusotoError::Unknown(res)
4647    }
4648}
4649impl fmt::Display for CreateCommitError {
4650    #[allow(unused_variables)]
4651    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4652        match *self {
4653            CreateCommitError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
4654            CreateCommitError::BranchNameIsTagName(ref cause) => write!(f, "{}", cause),
4655            CreateCommitError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
4656            CreateCommitError::CommitMessageLengthExceeded(ref cause) => write!(f, "{}", cause),
4657            CreateCommitError::DirectoryNameConflictsWithFileName(ref cause) => {
4658                write!(f, "{}", cause)
4659            }
4660            CreateCommitError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
4661            CreateCommitError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
4662            CreateCommitError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
4663            CreateCommitError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
4664            CreateCommitError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
4665            CreateCommitError::FileContentAndSourceFileSpecified(ref cause) => {
4666                write!(f, "{}", cause)
4667            }
4668            CreateCommitError::FileContentSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
4669            CreateCommitError::FileDoesNotExist(ref cause) => write!(f, "{}", cause),
4670            CreateCommitError::FileEntryRequired(ref cause) => write!(f, "{}", cause),
4671            CreateCommitError::FileModeRequired(ref cause) => write!(f, "{}", cause),
4672            CreateCommitError::FileNameConflictsWithDirectoryName(ref cause) => {
4673                write!(f, "{}", cause)
4674            }
4675            CreateCommitError::FilePathConflictsWithSubmodulePath(ref cause) => {
4676                write!(f, "{}", cause)
4677            }
4678            CreateCommitError::FolderContentSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
4679            CreateCommitError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
4680            CreateCommitError::InvalidDeletionParameter(ref cause) => write!(f, "{}", cause),
4681            CreateCommitError::InvalidEmail(ref cause) => write!(f, "{}", cause),
4682            CreateCommitError::InvalidFileMode(ref cause) => write!(f, "{}", cause),
4683            CreateCommitError::InvalidParentCommitId(ref cause) => write!(f, "{}", cause),
4684            CreateCommitError::InvalidPath(ref cause) => write!(f, "{}", cause),
4685            CreateCommitError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
4686            CreateCommitError::MaximumFileEntriesExceeded(ref cause) => write!(f, "{}", cause),
4687            CreateCommitError::NameLengthExceeded(ref cause) => write!(f, "{}", cause),
4688            CreateCommitError::NoChange(ref cause) => write!(f, "{}", cause),
4689            CreateCommitError::ParentCommitDoesNotExist(ref cause) => write!(f, "{}", cause),
4690            CreateCommitError::ParentCommitIdOutdated(ref cause) => write!(f, "{}", cause),
4691            CreateCommitError::ParentCommitIdRequired(ref cause) => write!(f, "{}", cause),
4692            CreateCommitError::PathRequired(ref cause) => write!(f, "{}", cause),
4693            CreateCommitError::PutFileEntryConflict(ref cause) => write!(f, "{}", cause),
4694            CreateCommitError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
4695            CreateCommitError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
4696            CreateCommitError::RestrictedSourceFile(ref cause) => write!(f, "{}", cause),
4697            CreateCommitError::SamePathRequest(ref cause) => write!(f, "{}", cause),
4698            CreateCommitError::SourceFileOrContentRequired(ref cause) => write!(f, "{}", cause),
4699        }
4700    }
4701}
4702impl Error for CreateCommitError {}
4703/// Errors returned by CreatePullRequest
4704#[derive(Debug, PartialEq)]
4705pub enum CreatePullRequestError {
4706    /// <p>A client request token is required. A client request token is an unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
4707    ClientRequestTokenRequired(String),
4708    /// <p>An encryption integrity check failed.</p>
4709    EncryptionIntegrityChecksFailed(String),
4710    /// <p>An encryption key could not be accessed.</p>
4711    EncryptionKeyAccessDenied(String),
4712    /// <p>The encryption key is disabled.</p>
4713    EncryptionKeyDisabled(String),
4714    /// <p>No encryption key was found.</p>
4715    EncryptionKeyNotFound(String),
4716    /// <p>The encryption key is not available.</p>
4717    EncryptionKeyUnavailable(String),
4718    /// <p>The client request token is not valid. Either the token is not in a valid format, or the token has been used in a previous request and cannot be reused.</p>
4719    IdempotencyParameterMismatch(String),
4720    /// <p>The client request token is not valid.</p>
4721    InvalidClientRequestToken(String),
4722    /// <p>The pull request description is not valid. Descriptions cannot be more than 1,000 characters.</p>
4723    InvalidDescription(String),
4724    /// <p>The specified reference name format is not valid. Reference names must conform to the Git references format (for example, refs/heads/master). For more information, see <a href="https://git-scm.com/book/en/v2/Git-Internals-Git-References">Git Internals - Git References</a> or consult your Git documentation.</p>
4725    InvalidReferenceName(String),
4726    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
4727    InvalidRepositoryName(String),
4728    /// <p>The target for the pull request is not valid. A target must contain the full values for the repository name, source branch, and destination branch for the pull request.</p>
4729    InvalidTarget(String),
4730    /// <p>The targets for the pull request is not valid or not in a valid format. Targets are a list of target objects. Each target object must contain the full values for the repository name, source branch, and destination branch for a pull request.</p>
4731    InvalidTargets(String),
4732    /// <p>The title of the pull request is not valid. Pull request titles cannot exceed 100 characters in length.</p>
4733    InvalidTitle(String),
4734    /// <p>You cannot create the pull request because the repository has too many open pull requests. The maximum number of open pull requests for a repository is 1,000. Close one or more open pull requests, and then try again.</p>
4735    MaximumOpenPullRequestsExceeded(String),
4736    /// <p>You cannot include more than one repository in a pull request. Make sure you have specified only one repository name in your request, and then try again.</p>
4737    MultipleRepositoriesInPullRequest(String),
4738    /// <p>The specified reference does not exist. You must provide a full commit ID.</p>
4739    ReferenceDoesNotExist(String),
4740    /// <p>A reference name is required, but none was provided.</p>
4741    ReferenceNameRequired(String),
4742    /// <p>The specified reference is not a supported type. </p>
4743    ReferenceTypeNotSupported(String),
4744    /// <p>The specified repository does not exist.</p>
4745    RepositoryDoesNotExist(String),
4746    /// <p>A repository name is required, but was not specified.</p>
4747    RepositoryNameRequired(String),
4748    /// <p>The source branch and destination branch for the pull request are the same. You must specify different branches for the source and destination.</p>
4749    SourceAndDestinationAreSame(String),
4750    /// <p>A pull request target is required. It cannot be empty or null. A pull request target must contain the full values for the repository name, source branch, and destination branch for the pull request.</p>
4751    TargetRequired(String),
4752    /// <p>An array of target objects is required. It cannot be empty or null.</p>
4753    TargetsRequired(String),
4754    /// <p>A pull request title is required. It cannot be empty or null.</p>
4755    TitleRequired(String),
4756}
4757
4758impl CreatePullRequestError {
4759    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreatePullRequestError> {
4760        if let Some(err) = proto::json::Error::parse(&res) {
4761            match err.typ.as_str() {
4762                "ClientRequestTokenRequiredException" => {
4763                    return RusotoError::Service(
4764                        CreatePullRequestError::ClientRequestTokenRequired(err.msg),
4765                    )
4766                }
4767                "EncryptionIntegrityChecksFailedException" => {
4768                    return RusotoError::Service(
4769                        CreatePullRequestError::EncryptionIntegrityChecksFailed(err.msg),
4770                    )
4771                }
4772                "EncryptionKeyAccessDeniedException" => {
4773                    return RusotoError::Service(CreatePullRequestError::EncryptionKeyAccessDenied(
4774                        err.msg,
4775                    ))
4776                }
4777                "EncryptionKeyDisabledException" => {
4778                    return RusotoError::Service(CreatePullRequestError::EncryptionKeyDisabled(
4779                        err.msg,
4780                    ))
4781                }
4782                "EncryptionKeyNotFoundException" => {
4783                    return RusotoError::Service(CreatePullRequestError::EncryptionKeyNotFound(
4784                        err.msg,
4785                    ))
4786                }
4787                "EncryptionKeyUnavailableException" => {
4788                    return RusotoError::Service(CreatePullRequestError::EncryptionKeyUnavailable(
4789                        err.msg,
4790                    ))
4791                }
4792                "IdempotencyParameterMismatchException" => {
4793                    return RusotoError::Service(
4794                        CreatePullRequestError::IdempotencyParameterMismatch(err.msg),
4795                    )
4796                }
4797                "InvalidClientRequestTokenException" => {
4798                    return RusotoError::Service(CreatePullRequestError::InvalidClientRequestToken(
4799                        err.msg,
4800                    ))
4801                }
4802                "InvalidDescriptionException" => {
4803                    return RusotoError::Service(CreatePullRequestError::InvalidDescription(
4804                        err.msg,
4805                    ))
4806                }
4807                "InvalidReferenceNameException" => {
4808                    return RusotoError::Service(CreatePullRequestError::InvalidReferenceName(
4809                        err.msg,
4810                    ))
4811                }
4812                "InvalidRepositoryNameException" => {
4813                    return RusotoError::Service(CreatePullRequestError::InvalidRepositoryName(
4814                        err.msg,
4815                    ))
4816                }
4817                "InvalidTargetException" => {
4818                    return RusotoError::Service(CreatePullRequestError::InvalidTarget(err.msg))
4819                }
4820                "InvalidTargetsException" => {
4821                    return RusotoError::Service(CreatePullRequestError::InvalidTargets(err.msg))
4822                }
4823                "InvalidTitleException" => {
4824                    return RusotoError::Service(CreatePullRequestError::InvalidTitle(err.msg))
4825                }
4826                "MaximumOpenPullRequestsExceededException" => {
4827                    return RusotoError::Service(
4828                        CreatePullRequestError::MaximumOpenPullRequestsExceeded(err.msg),
4829                    )
4830                }
4831                "MultipleRepositoriesInPullRequestException" => {
4832                    return RusotoError::Service(
4833                        CreatePullRequestError::MultipleRepositoriesInPullRequest(err.msg),
4834                    )
4835                }
4836                "ReferenceDoesNotExistException" => {
4837                    return RusotoError::Service(CreatePullRequestError::ReferenceDoesNotExist(
4838                        err.msg,
4839                    ))
4840                }
4841                "ReferenceNameRequiredException" => {
4842                    return RusotoError::Service(CreatePullRequestError::ReferenceNameRequired(
4843                        err.msg,
4844                    ))
4845                }
4846                "ReferenceTypeNotSupportedException" => {
4847                    return RusotoError::Service(CreatePullRequestError::ReferenceTypeNotSupported(
4848                        err.msg,
4849                    ))
4850                }
4851                "RepositoryDoesNotExistException" => {
4852                    return RusotoError::Service(CreatePullRequestError::RepositoryDoesNotExist(
4853                        err.msg,
4854                    ))
4855                }
4856                "RepositoryNameRequiredException" => {
4857                    return RusotoError::Service(CreatePullRequestError::RepositoryNameRequired(
4858                        err.msg,
4859                    ))
4860                }
4861                "SourceAndDestinationAreSameException" => {
4862                    return RusotoError::Service(
4863                        CreatePullRequestError::SourceAndDestinationAreSame(err.msg),
4864                    )
4865                }
4866                "TargetRequiredException" => {
4867                    return RusotoError::Service(CreatePullRequestError::TargetRequired(err.msg))
4868                }
4869                "TargetsRequiredException" => {
4870                    return RusotoError::Service(CreatePullRequestError::TargetsRequired(err.msg))
4871                }
4872                "TitleRequiredException" => {
4873                    return RusotoError::Service(CreatePullRequestError::TitleRequired(err.msg))
4874                }
4875                "ValidationException" => return RusotoError::Validation(err.msg),
4876                _ => {}
4877            }
4878        }
4879        RusotoError::Unknown(res)
4880    }
4881}
4882impl fmt::Display for CreatePullRequestError {
4883    #[allow(unused_variables)]
4884    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4885        match *self {
4886            CreatePullRequestError::ClientRequestTokenRequired(ref cause) => write!(f, "{}", cause),
4887            CreatePullRequestError::EncryptionIntegrityChecksFailed(ref cause) => {
4888                write!(f, "{}", cause)
4889            }
4890            CreatePullRequestError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
4891            CreatePullRequestError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
4892            CreatePullRequestError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
4893            CreatePullRequestError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
4894            CreatePullRequestError::IdempotencyParameterMismatch(ref cause) => {
4895                write!(f, "{}", cause)
4896            }
4897            CreatePullRequestError::InvalidClientRequestToken(ref cause) => write!(f, "{}", cause),
4898            CreatePullRequestError::InvalidDescription(ref cause) => write!(f, "{}", cause),
4899            CreatePullRequestError::InvalidReferenceName(ref cause) => write!(f, "{}", cause),
4900            CreatePullRequestError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
4901            CreatePullRequestError::InvalidTarget(ref cause) => write!(f, "{}", cause),
4902            CreatePullRequestError::InvalidTargets(ref cause) => write!(f, "{}", cause),
4903            CreatePullRequestError::InvalidTitle(ref cause) => write!(f, "{}", cause),
4904            CreatePullRequestError::MaximumOpenPullRequestsExceeded(ref cause) => {
4905                write!(f, "{}", cause)
4906            }
4907            CreatePullRequestError::MultipleRepositoriesInPullRequest(ref cause) => {
4908                write!(f, "{}", cause)
4909            }
4910            CreatePullRequestError::ReferenceDoesNotExist(ref cause) => write!(f, "{}", cause),
4911            CreatePullRequestError::ReferenceNameRequired(ref cause) => write!(f, "{}", cause),
4912            CreatePullRequestError::ReferenceTypeNotSupported(ref cause) => write!(f, "{}", cause),
4913            CreatePullRequestError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
4914            CreatePullRequestError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
4915            CreatePullRequestError::SourceAndDestinationAreSame(ref cause) => {
4916                write!(f, "{}", cause)
4917            }
4918            CreatePullRequestError::TargetRequired(ref cause) => write!(f, "{}", cause),
4919            CreatePullRequestError::TargetsRequired(ref cause) => write!(f, "{}", cause),
4920            CreatePullRequestError::TitleRequired(ref cause) => write!(f, "{}", cause),
4921        }
4922    }
4923}
4924impl Error for CreatePullRequestError {}
4925/// Errors returned by CreatePullRequestApprovalRule
4926#[derive(Debug, PartialEq)]
4927pub enum CreatePullRequestApprovalRuleError {
4928    /// <p>The content for the approval rule is empty. You must provide some content for an approval rule. The content cannot be null.</p>
4929    ApprovalRuleContentRequired(String),
4930    /// <p>An approval rule with that name already exists. Approval rule names must be unique within the scope of a pull request.</p>
4931    ApprovalRuleNameAlreadyExists(String),
4932    /// <p>An approval rule name is required, but was not specified.</p>
4933    ApprovalRuleNameRequired(String),
4934    /// <p>An encryption integrity check failed.</p>
4935    EncryptionIntegrityChecksFailed(String),
4936    /// <p>An encryption key could not be accessed.</p>
4937    EncryptionKeyAccessDenied(String),
4938    /// <p>The encryption key is disabled.</p>
4939    EncryptionKeyDisabled(String),
4940    /// <p>No encryption key was found.</p>
4941    EncryptionKeyNotFound(String),
4942    /// <p>The encryption key is not available.</p>
4943    EncryptionKeyUnavailable(String),
4944    /// <p>The content for the approval rule is not valid.</p>
4945    InvalidApprovalRuleContent(String),
4946    /// <p>The name for the approval rule is not valid.</p>
4947    InvalidApprovalRuleName(String),
4948    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
4949    InvalidPullRequestId(String),
4950    /// <p>The approval rule cannot be added. The pull request has the maximum number of approval rules associated with it.</p>
4951    NumberOfRulesExceeded(String),
4952    /// <p>The pull request status cannot be updated because it is already closed.</p>
4953    PullRequestAlreadyClosed(String),
4954    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
4955    PullRequestDoesNotExist(String),
4956    /// <p>A pull request ID is required, but none was provided.</p>
4957    PullRequestIdRequired(String),
4958}
4959
4960impl CreatePullRequestApprovalRuleError {
4961    pub fn from_response(
4962        res: BufferedHttpResponse,
4963    ) -> RusotoError<CreatePullRequestApprovalRuleError> {
4964        if let Some(err) = proto::json::Error::parse(&res) {
4965            match err.typ.as_str() {
4966                "ApprovalRuleContentRequiredException" => {
4967                    return RusotoError::Service(
4968                        CreatePullRequestApprovalRuleError::ApprovalRuleContentRequired(err.msg),
4969                    )
4970                }
4971                "ApprovalRuleNameAlreadyExistsException" => {
4972                    return RusotoError::Service(
4973                        CreatePullRequestApprovalRuleError::ApprovalRuleNameAlreadyExists(err.msg),
4974                    )
4975                }
4976                "ApprovalRuleNameRequiredException" => {
4977                    return RusotoError::Service(
4978                        CreatePullRequestApprovalRuleError::ApprovalRuleNameRequired(err.msg),
4979                    )
4980                }
4981                "EncryptionIntegrityChecksFailedException" => {
4982                    return RusotoError::Service(
4983                        CreatePullRequestApprovalRuleError::EncryptionIntegrityChecksFailed(
4984                            err.msg,
4985                        ),
4986                    )
4987                }
4988                "EncryptionKeyAccessDeniedException" => {
4989                    return RusotoError::Service(
4990                        CreatePullRequestApprovalRuleError::EncryptionKeyAccessDenied(err.msg),
4991                    )
4992                }
4993                "EncryptionKeyDisabledException" => {
4994                    return RusotoError::Service(
4995                        CreatePullRequestApprovalRuleError::EncryptionKeyDisabled(err.msg),
4996                    )
4997                }
4998                "EncryptionKeyNotFoundException" => {
4999                    return RusotoError::Service(
5000                        CreatePullRequestApprovalRuleError::EncryptionKeyNotFound(err.msg),
5001                    )
5002                }
5003                "EncryptionKeyUnavailableException" => {
5004                    return RusotoError::Service(
5005                        CreatePullRequestApprovalRuleError::EncryptionKeyUnavailable(err.msg),
5006                    )
5007                }
5008                "InvalidApprovalRuleContentException" => {
5009                    return RusotoError::Service(
5010                        CreatePullRequestApprovalRuleError::InvalidApprovalRuleContent(err.msg),
5011                    )
5012                }
5013                "InvalidApprovalRuleNameException" => {
5014                    return RusotoError::Service(
5015                        CreatePullRequestApprovalRuleError::InvalidApprovalRuleName(err.msg),
5016                    )
5017                }
5018                "InvalidPullRequestIdException" => {
5019                    return RusotoError::Service(
5020                        CreatePullRequestApprovalRuleError::InvalidPullRequestId(err.msg),
5021                    )
5022                }
5023                "NumberOfRulesExceededException" => {
5024                    return RusotoError::Service(
5025                        CreatePullRequestApprovalRuleError::NumberOfRulesExceeded(err.msg),
5026                    )
5027                }
5028                "PullRequestAlreadyClosedException" => {
5029                    return RusotoError::Service(
5030                        CreatePullRequestApprovalRuleError::PullRequestAlreadyClosed(err.msg),
5031                    )
5032                }
5033                "PullRequestDoesNotExistException" => {
5034                    return RusotoError::Service(
5035                        CreatePullRequestApprovalRuleError::PullRequestDoesNotExist(err.msg),
5036                    )
5037                }
5038                "PullRequestIdRequiredException" => {
5039                    return RusotoError::Service(
5040                        CreatePullRequestApprovalRuleError::PullRequestIdRequired(err.msg),
5041                    )
5042                }
5043                "ValidationException" => return RusotoError::Validation(err.msg),
5044                _ => {}
5045            }
5046        }
5047        RusotoError::Unknown(res)
5048    }
5049}
5050impl fmt::Display for CreatePullRequestApprovalRuleError {
5051    #[allow(unused_variables)]
5052    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5053        match *self {
5054            CreatePullRequestApprovalRuleError::ApprovalRuleContentRequired(ref cause) => {
5055                write!(f, "{}", cause)
5056            }
5057            CreatePullRequestApprovalRuleError::ApprovalRuleNameAlreadyExists(ref cause) => {
5058                write!(f, "{}", cause)
5059            }
5060            CreatePullRequestApprovalRuleError::ApprovalRuleNameRequired(ref cause) => {
5061                write!(f, "{}", cause)
5062            }
5063            CreatePullRequestApprovalRuleError::EncryptionIntegrityChecksFailed(ref cause) => {
5064                write!(f, "{}", cause)
5065            }
5066            CreatePullRequestApprovalRuleError::EncryptionKeyAccessDenied(ref cause) => {
5067                write!(f, "{}", cause)
5068            }
5069            CreatePullRequestApprovalRuleError::EncryptionKeyDisabled(ref cause) => {
5070                write!(f, "{}", cause)
5071            }
5072            CreatePullRequestApprovalRuleError::EncryptionKeyNotFound(ref cause) => {
5073                write!(f, "{}", cause)
5074            }
5075            CreatePullRequestApprovalRuleError::EncryptionKeyUnavailable(ref cause) => {
5076                write!(f, "{}", cause)
5077            }
5078            CreatePullRequestApprovalRuleError::InvalidApprovalRuleContent(ref cause) => {
5079                write!(f, "{}", cause)
5080            }
5081            CreatePullRequestApprovalRuleError::InvalidApprovalRuleName(ref cause) => {
5082                write!(f, "{}", cause)
5083            }
5084            CreatePullRequestApprovalRuleError::InvalidPullRequestId(ref cause) => {
5085                write!(f, "{}", cause)
5086            }
5087            CreatePullRequestApprovalRuleError::NumberOfRulesExceeded(ref cause) => {
5088                write!(f, "{}", cause)
5089            }
5090            CreatePullRequestApprovalRuleError::PullRequestAlreadyClosed(ref cause) => {
5091                write!(f, "{}", cause)
5092            }
5093            CreatePullRequestApprovalRuleError::PullRequestDoesNotExist(ref cause) => {
5094                write!(f, "{}", cause)
5095            }
5096            CreatePullRequestApprovalRuleError::PullRequestIdRequired(ref cause) => {
5097                write!(f, "{}", cause)
5098            }
5099        }
5100    }
5101}
5102impl Error for CreatePullRequestApprovalRuleError {}
5103/// Errors returned by CreateRepository
5104#[derive(Debug, PartialEq)]
5105pub enum CreateRepositoryError {
5106    /// <p>An encryption integrity check failed.</p>
5107    EncryptionIntegrityChecksFailed(String),
5108    /// <p>An encryption key could not be accessed.</p>
5109    EncryptionKeyAccessDenied(String),
5110    /// <p>The encryption key is disabled.</p>
5111    EncryptionKeyDisabled(String),
5112    /// <p>No encryption key was found.</p>
5113    EncryptionKeyNotFound(String),
5114    /// <p>The encryption key is not available.</p>
5115    EncryptionKeyUnavailable(String),
5116    /// <p>The specified repository description is not valid.</p>
5117    InvalidRepositoryDescription(String),
5118    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
5119    InvalidRepositoryName(String),
5120    /// <p>The specified tag is not valid. Key names cannot be prefixed with aws:.</p>
5121    InvalidSystemTagUsage(String),
5122    /// <p>The map of tags is not valid.</p>
5123    InvalidTagsMap(String),
5124    /// <p>A repository resource limit was exceeded.</p>
5125    RepositoryLimitExceeded(String),
5126    /// <p>The specified repository name already exists.</p>
5127    RepositoryNameExists(String),
5128    /// <p>A repository name is required, but was not specified.</p>
5129    RepositoryNameRequired(String),
5130    /// <p>The tag policy is not valid.</p>
5131    TagPolicy(String),
5132    /// <p>The maximum number of tags for an AWS CodeCommit resource has been exceeded.</p>
5133    TooManyTags(String),
5134}
5135
5136impl CreateRepositoryError {
5137    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateRepositoryError> {
5138        if let Some(err) = proto::json::Error::parse(&res) {
5139            match err.typ.as_str() {
5140                "EncryptionIntegrityChecksFailedException" => {
5141                    return RusotoError::Service(
5142                        CreateRepositoryError::EncryptionIntegrityChecksFailed(err.msg),
5143                    )
5144                }
5145                "EncryptionKeyAccessDeniedException" => {
5146                    return RusotoError::Service(CreateRepositoryError::EncryptionKeyAccessDenied(
5147                        err.msg,
5148                    ))
5149                }
5150                "EncryptionKeyDisabledException" => {
5151                    return RusotoError::Service(CreateRepositoryError::EncryptionKeyDisabled(
5152                        err.msg,
5153                    ))
5154                }
5155                "EncryptionKeyNotFoundException" => {
5156                    return RusotoError::Service(CreateRepositoryError::EncryptionKeyNotFound(
5157                        err.msg,
5158                    ))
5159                }
5160                "EncryptionKeyUnavailableException" => {
5161                    return RusotoError::Service(CreateRepositoryError::EncryptionKeyUnavailable(
5162                        err.msg,
5163                    ))
5164                }
5165                "InvalidRepositoryDescriptionException" => {
5166                    return RusotoError::Service(
5167                        CreateRepositoryError::InvalidRepositoryDescription(err.msg),
5168                    )
5169                }
5170                "InvalidRepositoryNameException" => {
5171                    return RusotoError::Service(CreateRepositoryError::InvalidRepositoryName(
5172                        err.msg,
5173                    ))
5174                }
5175                "InvalidSystemTagUsageException" => {
5176                    return RusotoError::Service(CreateRepositoryError::InvalidSystemTagUsage(
5177                        err.msg,
5178                    ))
5179                }
5180                "InvalidTagsMapException" => {
5181                    return RusotoError::Service(CreateRepositoryError::InvalidTagsMap(err.msg))
5182                }
5183                "RepositoryLimitExceededException" => {
5184                    return RusotoError::Service(CreateRepositoryError::RepositoryLimitExceeded(
5185                        err.msg,
5186                    ))
5187                }
5188                "RepositoryNameExistsException" => {
5189                    return RusotoError::Service(CreateRepositoryError::RepositoryNameExists(
5190                        err.msg,
5191                    ))
5192                }
5193                "RepositoryNameRequiredException" => {
5194                    return RusotoError::Service(CreateRepositoryError::RepositoryNameRequired(
5195                        err.msg,
5196                    ))
5197                }
5198                "TagPolicyException" => {
5199                    return RusotoError::Service(CreateRepositoryError::TagPolicy(err.msg))
5200                }
5201                "TooManyTagsException" => {
5202                    return RusotoError::Service(CreateRepositoryError::TooManyTags(err.msg))
5203                }
5204                "ValidationException" => return RusotoError::Validation(err.msg),
5205                _ => {}
5206            }
5207        }
5208        RusotoError::Unknown(res)
5209    }
5210}
5211impl fmt::Display for CreateRepositoryError {
5212    #[allow(unused_variables)]
5213    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5214        match *self {
5215            CreateRepositoryError::EncryptionIntegrityChecksFailed(ref cause) => {
5216                write!(f, "{}", cause)
5217            }
5218            CreateRepositoryError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
5219            CreateRepositoryError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
5220            CreateRepositoryError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
5221            CreateRepositoryError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
5222            CreateRepositoryError::InvalidRepositoryDescription(ref cause) => {
5223                write!(f, "{}", cause)
5224            }
5225            CreateRepositoryError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
5226            CreateRepositoryError::InvalidSystemTagUsage(ref cause) => write!(f, "{}", cause),
5227            CreateRepositoryError::InvalidTagsMap(ref cause) => write!(f, "{}", cause),
5228            CreateRepositoryError::RepositoryLimitExceeded(ref cause) => write!(f, "{}", cause),
5229            CreateRepositoryError::RepositoryNameExists(ref cause) => write!(f, "{}", cause),
5230            CreateRepositoryError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
5231            CreateRepositoryError::TagPolicy(ref cause) => write!(f, "{}", cause),
5232            CreateRepositoryError::TooManyTags(ref cause) => write!(f, "{}", cause),
5233        }
5234    }
5235}
5236impl Error for CreateRepositoryError {}
5237/// Errors returned by CreateUnreferencedMergeCommit
5238#[derive(Debug, PartialEq)]
5239pub enum CreateUnreferencedMergeCommitError {
5240    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
5241    CommitDoesNotExist(String),
5242    /// <p>The commit message is too long. Provide a shorter string. </p>
5243    CommitMessageLengthExceeded(String),
5244    /// <p>A commit was not specified.</p>
5245    CommitRequired(String),
5246    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
5247    ConcurrentReferenceUpdate(String),
5248    /// <p>An encryption integrity check failed.</p>
5249    EncryptionIntegrityChecksFailed(String),
5250    /// <p>An encryption key could not be accessed.</p>
5251    EncryptionKeyAccessDenied(String),
5252    /// <p>The encryption key is disabled.</p>
5253    EncryptionKeyDisabled(String),
5254    /// <p>No encryption key was found.</p>
5255    EncryptionKeyNotFound(String),
5256    /// <p>The encryption key is not available.</p>
5257    EncryptionKeyUnavailable(String),
5258    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
5259    FileContentSizeLimitExceeded(String),
5260    /// <p>The commit cannot be created because no file mode has been specified. A file mode is required to update mode permissions for a file.</p>
5261    FileModeRequired(String),
5262    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
5263    FolderContentSizeLimitExceeded(String),
5264    /// <p>The specified commit is not valid.</p>
5265    InvalidCommit(String),
5266    /// <p>The specified conflict detail level is not valid.</p>
5267    InvalidConflictDetailLevel(String),
5268    /// <p>The specified conflict resolution list is not valid.</p>
5269    InvalidConflictResolution(String),
5270    /// <p>The specified conflict resolution strategy is not valid.</p>
5271    InvalidConflictResolutionStrategy(String),
5272    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
5273    InvalidEmail(String),
5274    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
5275    InvalidFileMode(String),
5276    /// <p>The specified merge option is not valid for this operation. Not all merge strategies are supported for all operations.</p>
5277    InvalidMergeOption(String),
5278    /// <p>The specified path is not valid.</p>
5279    InvalidPath(String),
5280    /// <p>Automerge was specified for resolving the conflict, but the replacement type is not valid or content is missing. </p>
5281    InvalidReplacementContent(String),
5282    /// <p>Automerge was specified for resolving the conflict, but the specified replacement type is not valid.</p>
5283    InvalidReplacementType(String),
5284    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
5285    InvalidRepositoryName(String),
5286    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
5287    ManualMergeRequired(String),
5288    /// <p>The number of allowed conflict resolution entries was exceeded.</p>
5289    MaximumConflictResolutionEntriesExceeded(String),
5290    /// <p>The number of files to load exceeds the allowed limit.</p>
5291    MaximumFileContentToLoadExceeded(String),
5292    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
5293    MaximumItemsToCompareExceeded(String),
5294    /// <p>A merge option or stategy is required, and none was provided.</p>
5295    MergeOptionRequired(String),
5296    /// <p>More than one conflict resolution entries exists for the conflict. A conflict can have only one conflict resolution entry.</p>
5297    MultipleConflictResolutionEntries(String),
5298    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
5299    NameLengthExceeded(String),
5300    /// <p>The folderPath for a location cannot be null.</p>
5301    PathRequired(String),
5302    /// <p>USE_NEW_CONTENT was specified, but no replacement content has been provided.</p>
5303    ReplacementContentRequired(String),
5304    /// <p>A replacement type is required.</p>
5305    ReplacementTypeRequired(String),
5306    /// <p>The specified repository does not exist.</p>
5307    RepositoryDoesNotExist(String),
5308    /// <p>A repository name is required, but was not specified.</p>
5309    RepositoryNameRequired(String),
5310    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
5311    TipsDivergenceExceeded(String),
5312}
5313
5314impl CreateUnreferencedMergeCommitError {
5315    pub fn from_response(
5316        res: BufferedHttpResponse,
5317    ) -> RusotoError<CreateUnreferencedMergeCommitError> {
5318        if let Some(err) = proto::json::Error::parse(&res) {
5319            match err.typ.as_str() {
5320                "CommitDoesNotExistException" => {
5321                    return RusotoError::Service(
5322                        CreateUnreferencedMergeCommitError::CommitDoesNotExist(err.msg),
5323                    )
5324                }
5325                "CommitMessageLengthExceededException" => {
5326                    return RusotoError::Service(
5327                        CreateUnreferencedMergeCommitError::CommitMessageLengthExceeded(err.msg),
5328                    )
5329                }
5330                "CommitRequiredException" => {
5331                    return RusotoError::Service(
5332                        CreateUnreferencedMergeCommitError::CommitRequired(err.msg),
5333                    )
5334                }
5335                "ConcurrentReferenceUpdateException" => {
5336                    return RusotoError::Service(
5337                        CreateUnreferencedMergeCommitError::ConcurrentReferenceUpdate(err.msg),
5338                    )
5339                }
5340                "EncryptionIntegrityChecksFailedException" => {
5341                    return RusotoError::Service(
5342                        CreateUnreferencedMergeCommitError::EncryptionIntegrityChecksFailed(
5343                            err.msg,
5344                        ),
5345                    )
5346                }
5347                "EncryptionKeyAccessDeniedException" => {
5348                    return RusotoError::Service(
5349                        CreateUnreferencedMergeCommitError::EncryptionKeyAccessDenied(err.msg),
5350                    )
5351                }
5352                "EncryptionKeyDisabledException" => {
5353                    return RusotoError::Service(
5354                        CreateUnreferencedMergeCommitError::EncryptionKeyDisabled(err.msg),
5355                    )
5356                }
5357                "EncryptionKeyNotFoundException" => {
5358                    return RusotoError::Service(
5359                        CreateUnreferencedMergeCommitError::EncryptionKeyNotFound(err.msg),
5360                    )
5361                }
5362                "EncryptionKeyUnavailableException" => {
5363                    return RusotoError::Service(
5364                        CreateUnreferencedMergeCommitError::EncryptionKeyUnavailable(err.msg),
5365                    )
5366                }
5367                "FileContentSizeLimitExceededException" => {
5368                    return RusotoError::Service(
5369                        CreateUnreferencedMergeCommitError::FileContentSizeLimitExceeded(err.msg),
5370                    )
5371                }
5372                "FileModeRequiredException" => {
5373                    return RusotoError::Service(
5374                        CreateUnreferencedMergeCommitError::FileModeRequired(err.msg),
5375                    )
5376                }
5377                "FolderContentSizeLimitExceededException" => {
5378                    return RusotoError::Service(
5379                        CreateUnreferencedMergeCommitError::FolderContentSizeLimitExceeded(err.msg),
5380                    )
5381                }
5382                "InvalidCommitException" => {
5383                    return RusotoError::Service(CreateUnreferencedMergeCommitError::InvalidCommit(
5384                        err.msg,
5385                    ))
5386                }
5387                "InvalidConflictDetailLevelException" => {
5388                    return RusotoError::Service(
5389                        CreateUnreferencedMergeCommitError::InvalidConflictDetailLevel(err.msg),
5390                    )
5391                }
5392                "InvalidConflictResolutionException" => {
5393                    return RusotoError::Service(
5394                        CreateUnreferencedMergeCommitError::InvalidConflictResolution(err.msg),
5395                    )
5396                }
5397                "InvalidConflictResolutionStrategyException" => {
5398                    return RusotoError::Service(
5399                        CreateUnreferencedMergeCommitError::InvalidConflictResolutionStrategy(
5400                            err.msg,
5401                        ),
5402                    )
5403                }
5404                "InvalidEmailException" => {
5405                    return RusotoError::Service(CreateUnreferencedMergeCommitError::InvalidEmail(
5406                        err.msg,
5407                    ))
5408                }
5409                "InvalidFileModeException" => {
5410                    return RusotoError::Service(
5411                        CreateUnreferencedMergeCommitError::InvalidFileMode(err.msg),
5412                    )
5413                }
5414                "InvalidMergeOptionException" => {
5415                    return RusotoError::Service(
5416                        CreateUnreferencedMergeCommitError::InvalidMergeOption(err.msg),
5417                    )
5418                }
5419                "InvalidPathException" => {
5420                    return RusotoError::Service(CreateUnreferencedMergeCommitError::InvalidPath(
5421                        err.msg,
5422                    ))
5423                }
5424                "InvalidReplacementContentException" => {
5425                    return RusotoError::Service(
5426                        CreateUnreferencedMergeCommitError::InvalidReplacementContent(err.msg),
5427                    )
5428                }
5429                "InvalidReplacementTypeException" => {
5430                    return RusotoError::Service(
5431                        CreateUnreferencedMergeCommitError::InvalidReplacementType(err.msg),
5432                    )
5433                }
5434                "InvalidRepositoryNameException" => {
5435                    return RusotoError::Service(
5436                        CreateUnreferencedMergeCommitError::InvalidRepositoryName(err.msg),
5437                    )
5438                }
5439                "ManualMergeRequiredException" => {
5440                    return RusotoError::Service(
5441                        CreateUnreferencedMergeCommitError::ManualMergeRequired(err.msg),
5442                    )
5443                }
5444                "MaximumConflictResolutionEntriesExceededException" => return RusotoError::Service(
5445                    CreateUnreferencedMergeCommitError::MaximumConflictResolutionEntriesExceeded(
5446                        err.msg,
5447                    ),
5448                ),
5449                "MaximumFileContentToLoadExceededException" => {
5450                    return RusotoError::Service(
5451                        CreateUnreferencedMergeCommitError::MaximumFileContentToLoadExceeded(
5452                            err.msg,
5453                        ),
5454                    )
5455                }
5456                "MaximumItemsToCompareExceededException" => {
5457                    return RusotoError::Service(
5458                        CreateUnreferencedMergeCommitError::MaximumItemsToCompareExceeded(err.msg),
5459                    )
5460                }
5461                "MergeOptionRequiredException" => {
5462                    return RusotoError::Service(
5463                        CreateUnreferencedMergeCommitError::MergeOptionRequired(err.msg),
5464                    )
5465                }
5466                "MultipleConflictResolutionEntriesException" => {
5467                    return RusotoError::Service(
5468                        CreateUnreferencedMergeCommitError::MultipleConflictResolutionEntries(
5469                            err.msg,
5470                        ),
5471                    )
5472                }
5473                "NameLengthExceededException" => {
5474                    return RusotoError::Service(
5475                        CreateUnreferencedMergeCommitError::NameLengthExceeded(err.msg),
5476                    )
5477                }
5478                "PathRequiredException" => {
5479                    return RusotoError::Service(CreateUnreferencedMergeCommitError::PathRequired(
5480                        err.msg,
5481                    ))
5482                }
5483                "ReplacementContentRequiredException" => {
5484                    return RusotoError::Service(
5485                        CreateUnreferencedMergeCommitError::ReplacementContentRequired(err.msg),
5486                    )
5487                }
5488                "ReplacementTypeRequiredException" => {
5489                    return RusotoError::Service(
5490                        CreateUnreferencedMergeCommitError::ReplacementTypeRequired(err.msg),
5491                    )
5492                }
5493                "RepositoryDoesNotExistException" => {
5494                    return RusotoError::Service(
5495                        CreateUnreferencedMergeCommitError::RepositoryDoesNotExist(err.msg),
5496                    )
5497                }
5498                "RepositoryNameRequiredException" => {
5499                    return RusotoError::Service(
5500                        CreateUnreferencedMergeCommitError::RepositoryNameRequired(err.msg),
5501                    )
5502                }
5503                "TipsDivergenceExceededException" => {
5504                    return RusotoError::Service(
5505                        CreateUnreferencedMergeCommitError::TipsDivergenceExceeded(err.msg),
5506                    )
5507                }
5508                "ValidationException" => return RusotoError::Validation(err.msg),
5509                _ => {}
5510            }
5511        }
5512        RusotoError::Unknown(res)
5513    }
5514}
5515impl fmt::Display for CreateUnreferencedMergeCommitError {
5516    #[allow(unused_variables)]
5517    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5518        match *self {
5519            CreateUnreferencedMergeCommitError::CommitDoesNotExist(ref cause) => {
5520                write!(f, "{}", cause)
5521            }
5522            CreateUnreferencedMergeCommitError::CommitMessageLengthExceeded(ref cause) => {
5523                write!(f, "{}", cause)
5524            }
5525            CreateUnreferencedMergeCommitError::CommitRequired(ref cause) => write!(f, "{}", cause),
5526            CreateUnreferencedMergeCommitError::ConcurrentReferenceUpdate(ref cause) => {
5527                write!(f, "{}", cause)
5528            }
5529            CreateUnreferencedMergeCommitError::EncryptionIntegrityChecksFailed(ref cause) => {
5530                write!(f, "{}", cause)
5531            }
5532            CreateUnreferencedMergeCommitError::EncryptionKeyAccessDenied(ref cause) => {
5533                write!(f, "{}", cause)
5534            }
5535            CreateUnreferencedMergeCommitError::EncryptionKeyDisabled(ref cause) => {
5536                write!(f, "{}", cause)
5537            }
5538            CreateUnreferencedMergeCommitError::EncryptionKeyNotFound(ref cause) => {
5539                write!(f, "{}", cause)
5540            }
5541            CreateUnreferencedMergeCommitError::EncryptionKeyUnavailable(ref cause) => {
5542                write!(f, "{}", cause)
5543            }
5544            CreateUnreferencedMergeCommitError::FileContentSizeLimitExceeded(ref cause) => {
5545                write!(f, "{}", cause)
5546            }
5547            CreateUnreferencedMergeCommitError::FileModeRequired(ref cause) => {
5548                write!(f, "{}", cause)
5549            }
5550            CreateUnreferencedMergeCommitError::FolderContentSizeLimitExceeded(ref cause) => {
5551                write!(f, "{}", cause)
5552            }
5553            CreateUnreferencedMergeCommitError::InvalidCommit(ref cause) => write!(f, "{}", cause),
5554            CreateUnreferencedMergeCommitError::InvalidConflictDetailLevel(ref cause) => {
5555                write!(f, "{}", cause)
5556            }
5557            CreateUnreferencedMergeCommitError::InvalidConflictResolution(ref cause) => {
5558                write!(f, "{}", cause)
5559            }
5560            CreateUnreferencedMergeCommitError::InvalidConflictResolutionStrategy(ref cause) => {
5561                write!(f, "{}", cause)
5562            }
5563            CreateUnreferencedMergeCommitError::InvalidEmail(ref cause) => write!(f, "{}", cause),
5564            CreateUnreferencedMergeCommitError::InvalidFileMode(ref cause) => {
5565                write!(f, "{}", cause)
5566            }
5567            CreateUnreferencedMergeCommitError::InvalidMergeOption(ref cause) => {
5568                write!(f, "{}", cause)
5569            }
5570            CreateUnreferencedMergeCommitError::InvalidPath(ref cause) => write!(f, "{}", cause),
5571            CreateUnreferencedMergeCommitError::InvalidReplacementContent(ref cause) => {
5572                write!(f, "{}", cause)
5573            }
5574            CreateUnreferencedMergeCommitError::InvalidReplacementType(ref cause) => {
5575                write!(f, "{}", cause)
5576            }
5577            CreateUnreferencedMergeCommitError::InvalidRepositoryName(ref cause) => {
5578                write!(f, "{}", cause)
5579            }
5580            CreateUnreferencedMergeCommitError::ManualMergeRequired(ref cause) => {
5581                write!(f, "{}", cause)
5582            }
5583            CreateUnreferencedMergeCommitError::MaximumConflictResolutionEntriesExceeded(
5584                ref cause,
5585            ) => write!(f, "{}", cause),
5586            CreateUnreferencedMergeCommitError::MaximumFileContentToLoadExceeded(ref cause) => {
5587                write!(f, "{}", cause)
5588            }
5589            CreateUnreferencedMergeCommitError::MaximumItemsToCompareExceeded(ref cause) => {
5590                write!(f, "{}", cause)
5591            }
5592            CreateUnreferencedMergeCommitError::MergeOptionRequired(ref cause) => {
5593                write!(f, "{}", cause)
5594            }
5595            CreateUnreferencedMergeCommitError::MultipleConflictResolutionEntries(ref cause) => {
5596                write!(f, "{}", cause)
5597            }
5598            CreateUnreferencedMergeCommitError::NameLengthExceeded(ref cause) => {
5599                write!(f, "{}", cause)
5600            }
5601            CreateUnreferencedMergeCommitError::PathRequired(ref cause) => write!(f, "{}", cause),
5602            CreateUnreferencedMergeCommitError::ReplacementContentRequired(ref cause) => {
5603                write!(f, "{}", cause)
5604            }
5605            CreateUnreferencedMergeCommitError::ReplacementTypeRequired(ref cause) => {
5606                write!(f, "{}", cause)
5607            }
5608            CreateUnreferencedMergeCommitError::RepositoryDoesNotExist(ref cause) => {
5609                write!(f, "{}", cause)
5610            }
5611            CreateUnreferencedMergeCommitError::RepositoryNameRequired(ref cause) => {
5612                write!(f, "{}", cause)
5613            }
5614            CreateUnreferencedMergeCommitError::TipsDivergenceExceeded(ref cause) => {
5615                write!(f, "{}", cause)
5616            }
5617        }
5618    }
5619}
5620impl Error for CreateUnreferencedMergeCommitError {}
5621/// Errors returned by DeleteApprovalRuleTemplate
5622#[derive(Debug, PartialEq)]
5623pub enum DeleteApprovalRuleTemplateError {
5624    /// <p>The approval rule template is associated with one or more repositories. You cannot delete a template that is associated with a repository. Remove all associations, and then try again.</p>
5625    ApprovalRuleTemplateInUse(String),
5626    /// <p>An approval rule template name is required, but was not specified.</p>
5627    ApprovalRuleTemplateNameRequired(String),
5628    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
5629    InvalidApprovalRuleTemplateName(String),
5630}
5631
5632impl DeleteApprovalRuleTemplateError {
5633    pub fn from_response(
5634        res: BufferedHttpResponse,
5635    ) -> RusotoError<DeleteApprovalRuleTemplateError> {
5636        if let Some(err) = proto::json::Error::parse(&res) {
5637            match err.typ.as_str() {
5638                "ApprovalRuleTemplateInUseException" => {
5639                    return RusotoError::Service(
5640                        DeleteApprovalRuleTemplateError::ApprovalRuleTemplateInUse(err.msg),
5641                    )
5642                }
5643                "ApprovalRuleTemplateNameRequiredException" => {
5644                    return RusotoError::Service(
5645                        DeleteApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(err.msg),
5646                    )
5647                }
5648                "InvalidApprovalRuleTemplateNameException" => {
5649                    return RusotoError::Service(
5650                        DeleteApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(err.msg),
5651                    )
5652                }
5653                "ValidationException" => return RusotoError::Validation(err.msg),
5654                _ => {}
5655            }
5656        }
5657        RusotoError::Unknown(res)
5658    }
5659}
5660impl fmt::Display for DeleteApprovalRuleTemplateError {
5661    #[allow(unused_variables)]
5662    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5663        match *self {
5664            DeleteApprovalRuleTemplateError::ApprovalRuleTemplateInUse(ref cause) => {
5665                write!(f, "{}", cause)
5666            }
5667            DeleteApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(ref cause) => {
5668                write!(f, "{}", cause)
5669            }
5670            DeleteApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(ref cause) => {
5671                write!(f, "{}", cause)
5672            }
5673        }
5674    }
5675}
5676impl Error for DeleteApprovalRuleTemplateError {}
5677/// Errors returned by DeleteBranch
5678#[derive(Debug, PartialEq)]
5679pub enum DeleteBranchError {
5680    /// <p>A branch name is required, but was not specified.</p>
5681    BranchNameRequired(String),
5682    /// <p>The specified branch is the default branch for the repository, and cannot be deleted. To delete this branch, you must first set another branch as the default branch.</p>
5683    DefaultBranchCannotBeDeleted(String),
5684    /// <p>An encryption integrity check failed.</p>
5685    EncryptionIntegrityChecksFailed(String),
5686    /// <p>An encryption key could not be accessed.</p>
5687    EncryptionKeyAccessDenied(String),
5688    /// <p>The encryption key is disabled.</p>
5689    EncryptionKeyDisabled(String),
5690    /// <p>No encryption key was found.</p>
5691    EncryptionKeyNotFound(String),
5692    /// <p>The encryption key is not available.</p>
5693    EncryptionKeyUnavailable(String),
5694    /// <p>The specified reference name is not valid.</p>
5695    InvalidBranchName(String),
5696    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
5697    InvalidRepositoryName(String),
5698    /// <p>The specified repository does not exist.</p>
5699    RepositoryDoesNotExist(String),
5700    /// <p>A repository name is required, but was not specified.</p>
5701    RepositoryNameRequired(String),
5702}
5703
5704impl DeleteBranchError {
5705    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteBranchError> {
5706        if let Some(err) = proto::json::Error::parse(&res) {
5707            match err.typ.as_str() {
5708                "BranchNameRequiredException" => {
5709                    return RusotoError::Service(DeleteBranchError::BranchNameRequired(err.msg))
5710                }
5711                "DefaultBranchCannotBeDeletedException" => {
5712                    return RusotoError::Service(DeleteBranchError::DefaultBranchCannotBeDeleted(
5713                        err.msg,
5714                    ))
5715                }
5716                "EncryptionIntegrityChecksFailedException" => {
5717                    return RusotoError::Service(
5718                        DeleteBranchError::EncryptionIntegrityChecksFailed(err.msg),
5719                    )
5720                }
5721                "EncryptionKeyAccessDeniedException" => {
5722                    return RusotoError::Service(DeleteBranchError::EncryptionKeyAccessDenied(
5723                        err.msg,
5724                    ))
5725                }
5726                "EncryptionKeyDisabledException" => {
5727                    return RusotoError::Service(DeleteBranchError::EncryptionKeyDisabled(err.msg))
5728                }
5729                "EncryptionKeyNotFoundException" => {
5730                    return RusotoError::Service(DeleteBranchError::EncryptionKeyNotFound(err.msg))
5731                }
5732                "EncryptionKeyUnavailableException" => {
5733                    return RusotoError::Service(DeleteBranchError::EncryptionKeyUnavailable(
5734                        err.msg,
5735                    ))
5736                }
5737                "InvalidBranchNameException" => {
5738                    return RusotoError::Service(DeleteBranchError::InvalidBranchName(err.msg))
5739                }
5740                "InvalidRepositoryNameException" => {
5741                    return RusotoError::Service(DeleteBranchError::InvalidRepositoryName(err.msg))
5742                }
5743                "RepositoryDoesNotExistException" => {
5744                    return RusotoError::Service(DeleteBranchError::RepositoryDoesNotExist(err.msg))
5745                }
5746                "RepositoryNameRequiredException" => {
5747                    return RusotoError::Service(DeleteBranchError::RepositoryNameRequired(err.msg))
5748                }
5749                "ValidationException" => return RusotoError::Validation(err.msg),
5750                _ => {}
5751            }
5752        }
5753        RusotoError::Unknown(res)
5754    }
5755}
5756impl fmt::Display for DeleteBranchError {
5757    #[allow(unused_variables)]
5758    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5759        match *self {
5760            DeleteBranchError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
5761            DeleteBranchError::DefaultBranchCannotBeDeleted(ref cause) => write!(f, "{}", cause),
5762            DeleteBranchError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
5763            DeleteBranchError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
5764            DeleteBranchError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
5765            DeleteBranchError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
5766            DeleteBranchError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
5767            DeleteBranchError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
5768            DeleteBranchError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
5769            DeleteBranchError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
5770            DeleteBranchError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
5771        }
5772    }
5773}
5774impl Error for DeleteBranchError {}
5775/// Errors returned by DeleteCommentContent
5776#[derive(Debug, PartialEq)]
5777pub enum DeleteCommentContentError {
5778    /// <p>This comment has already been deleted. You cannot edit or delete a deleted comment.</p>
5779    CommentDeleted(String),
5780    /// <p>No comment exists with the provided ID. Verify that you have used the correct ID, and then try again.</p>
5781    CommentDoesNotExist(String),
5782    /// <p>The comment ID is missing or null. A comment ID is required.</p>
5783    CommentIdRequired(String),
5784    /// <p>The comment ID is not in a valid format. Make sure that you have provided the full comment ID.</p>
5785    InvalidCommentId(String),
5786}
5787
5788impl DeleteCommentContentError {
5789    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteCommentContentError> {
5790        if let Some(err) = proto::json::Error::parse(&res) {
5791            match err.typ.as_str() {
5792                "CommentDeletedException" => {
5793                    return RusotoError::Service(DeleteCommentContentError::CommentDeleted(err.msg))
5794                }
5795                "CommentDoesNotExistException" => {
5796                    return RusotoError::Service(DeleteCommentContentError::CommentDoesNotExist(
5797                        err.msg,
5798                    ))
5799                }
5800                "CommentIdRequiredException" => {
5801                    return RusotoError::Service(DeleteCommentContentError::CommentIdRequired(
5802                        err.msg,
5803                    ))
5804                }
5805                "InvalidCommentIdException" => {
5806                    return RusotoError::Service(DeleteCommentContentError::InvalidCommentId(
5807                        err.msg,
5808                    ))
5809                }
5810                "ValidationException" => return RusotoError::Validation(err.msg),
5811                _ => {}
5812            }
5813        }
5814        RusotoError::Unknown(res)
5815    }
5816}
5817impl fmt::Display for DeleteCommentContentError {
5818    #[allow(unused_variables)]
5819    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5820        match *self {
5821            DeleteCommentContentError::CommentDeleted(ref cause) => write!(f, "{}", cause),
5822            DeleteCommentContentError::CommentDoesNotExist(ref cause) => write!(f, "{}", cause),
5823            DeleteCommentContentError::CommentIdRequired(ref cause) => write!(f, "{}", cause),
5824            DeleteCommentContentError::InvalidCommentId(ref cause) => write!(f, "{}", cause),
5825        }
5826    }
5827}
5828impl Error for DeleteCommentContentError {}
5829/// Errors returned by DeleteFile
5830#[derive(Debug, PartialEq)]
5831pub enum DeleteFileError {
5832    /// <p>The specified branch does not exist.</p>
5833    BranchDoesNotExist(String),
5834    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <a>ListBranches</a>.</p>
5835    BranchNameIsTagName(String),
5836    /// <p>A branch name is required, but was not specified.</p>
5837    BranchNameRequired(String),
5838    /// <p>The commit message is too long. Provide a shorter string. </p>
5839    CommitMessageLengthExceeded(String),
5840    /// <p>An encryption integrity check failed.</p>
5841    EncryptionIntegrityChecksFailed(String),
5842    /// <p>An encryption key could not be accessed.</p>
5843    EncryptionKeyAccessDenied(String),
5844    /// <p>The encryption key is disabled.</p>
5845    EncryptionKeyDisabled(String),
5846    /// <p>No encryption key was found.</p>
5847    EncryptionKeyNotFound(String),
5848    /// <p>The encryption key is not available.</p>
5849    EncryptionKeyUnavailable(String),
5850    /// <p>The specified file does not exist. Verify that you have used the correct file name, full path, and extension.</p>
5851    FileDoesNotExist(String),
5852    /// <p>The specified reference name is not valid.</p>
5853    InvalidBranchName(String),
5854    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
5855    InvalidEmail(String),
5856    /// <p>The parent commit ID is not valid. The commit ID cannot be empty, and must match the head commit ID for the branch of the repository where you want to add or update a file.</p>
5857    InvalidParentCommitId(String),
5858    /// <p>The specified path is not valid.</p>
5859    InvalidPath(String),
5860    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
5861    InvalidRepositoryName(String),
5862    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
5863    NameLengthExceeded(String),
5864    /// <p>The parent commit ID is not valid because it does not exist. The specified parent commit ID does not exist in the specified branch of the repository.</p>
5865    ParentCommitDoesNotExist(String),
5866    /// <p>The file could not be added because the provided parent commit ID is not the current tip of the specified branch. To view the full commit ID of the current head of the branch, use <a>GetBranch</a>.</p>
5867    ParentCommitIdOutdated(String),
5868    /// <p>A parent commit ID is required. To view the full commit ID of a branch in a repository, use <a>GetBranch</a> or a Git command (for example, git pull or git log).</p>
5869    ParentCommitIdRequired(String),
5870    /// <p>The folderPath for a location cannot be null.</p>
5871    PathRequired(String),
5872    /// <p>The specified repository does not exist.</p>
5873    RepositoryDoesNotExist(String),
5874    /// <p>A repository name is required, but was not specified.</p>
5875    RepositoryNameRequired(String),
5876}
5877
5878impl DeleteFileError {
5879    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteFileError> {
5880        if let Some(err) = proto::json::Error::parse(&res) {
5881            match err.typ.as_str() {
5882                "BranchDoesNotExistException" => {
5883                    return RusotoError::Service(DeleteFileError::BranchDoesNotExist(err.msg))
5884                }
5885                "BranchNameIsTagNameException" => {
5886                    return RusotoError::Service(DeleteFileError::BranchNameIsTagName(err.msg))
5887                }
5888                "BranchNameRequiredException" => {
5889                    return RusotoError::Service(DeleteFileError::BranchNameRequired(err.msg))
5890                }
5891                "CommitMessageLengthExceededException" => {
5892                    return RusotoError::Service(DeleteFileError::CommitMessageLengthExceeded(
5893                        err.msg,
5894                    ))
5895                }
5896                "EncryptionIntegrityChecksFailedException" => {
5897                    return RusotoError::Service(DeleteFileError::EncryptionIntegrityChecksFailed(
5898                        err.msg,
5899                    ))
5900                }
5901                "EncryptionKeyAccessDeniedException" => {
5902                    return RusotoError::Service(DeleteFileError::EncryptionKeyAccessDenied(
5903                        err.msg,
5904                    ))
5905                }
5906                "EncryptionKeyDisabledException" => {
5907                    return RusotoError::Service(DeleteFileError::EncryptionKeyDisabled(err.msg))
5908                }
5909                "EncryptionKeyNotFoundException" => {
5910                    return RusotoError::Service(DeleteFileError::EncryptionKeyNotFound(err.msg))
5911                }
5912                "EncryptionKeyUnavailableException" => {
5913                    return RusotoError::Service(DeleteFileError::EncryptionKeyUnavailable(err.msg))
5914                }
5915                "FileDoesNotExistException" => {
5916                    return RusotoError::Service(DeleteFileError::FileDoesNotExist(err.msg))
5917                }
5918                "InvalidBranchNameException" => {
5919                    return RusotoError::Service(DeleteFileError::InvalidBranchName(err.msg))
5920                }
5921                "InvalidEmailException" => {
5922                    return RusotoError::Service(DeleteFileError::InvalidEmail(err.msg))
5923                }
5924                "InvalidParentCommitIdException" => {
5925                    return RusotoError::Service(DeleteFileError::InvalidParentCommitId(err.msg))
5926                }
5927                "InvalidPathException" => {
5928                    return RusotoError::Service(DeleteFileError::InvalidPath(err.msg))
5929                }
5930                "InvalidRepositoryNameException" => {
5931                    return RusotoError::Service(DeleteFileError::InvalidRepositoryName(err.msg))
5932                }
5933                "NameLengthExceededException" => {
5934                    return RusotoError::Service(DeleteFileError::NameLengthExceeded(err.msg))
5935                }
5936                "ParentCommitDoesNotExistException" => {
5937                    return RusotoError::Service(DeleteFileError::ParentCommitDoesNotExist(err.msg))
5938                }
5939                "ParentCommitIdOutdatedException" => {
5940                    return RusotoError::Service(DeleteFileError::ParentCommitIdOutdated(err.msg))
5941                }
5942                "ParentCommitIdRequiredException" => {
5943                    return RusotoError::Service(DeleteFileError::ParentCommitIdRequired(err.msg))
5944                }
5945                "PathRequiredException" => {
5946                    return RusotoError::Service(DeleteFileError::PathRequired(err.msg))
5947                }
5948                "RepositoryDoesNotExistException" => {
5949                    return RusotoError::Service(DeleteFileError::RepositoryDoesNotExist(err.msg))
5950                }
5951                "RepositoryNameRequiredException" => {
5952                    return RusotoError::Service(DeleteFileError::RepositoryNameRequired(err.msg))
5953                }
5954                "ValidationException" => return RusotoError::Validation(err.msg),
5955                _ => {}
5956            }
5957        }
5958        RusotoError::Unknown(res)
5959    }
5960}
5961impl fmt::Display for DeleteFileError {
5962    #[allow(unused_variables)]
5963    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
5964        match *self {
5965            DeleteFileError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
5966            DeleteFileError::BranchNameIsTagName(ref cause) => write!(f, "{}", cause),
5967            DeleteFileError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
5968            DeleteFileError::CommitMessageLengthExceeded(ref cause) => write!(f, "{}", cause),
5969            DeleteFileError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
5970            DeleteFileError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
5971            DeleteFileError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
5972            DeleteFileError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
5973            DeleteFileError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
5974            DeleteFileError::FileDoesNotExist(ref cause) => write!(f, "{}", cause),
5975            DeleteFileError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
5976            DeleteFileError::InvalidEmail(ref cause) => write!(f, "{}", cause),
5977            DeleteFileError::InvalidParentCommitId(ref cause) => write!(f, "{}", cause),
5978            DeleteFileError::InvalidPath(ref cause) => write!(f, "{}", cause),
5979            DeleteFileError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
5980            DeleteFileError::NameLengthExceeded(ref cause) => write!(f, "{}", cause),
5981            DeleteFileError::ParentCommitDoesNotExist(ref cause) => write!(f, "{}", cause),
5982            DeleteFileError::ParentCommitIdOutdated(ref cause) => write!(f, "{}", cause),
5983            DeleteFileError::ParentCommitIdRequired(ref cause) => write!(f, "{}", cause),
5984            DeleteFileError::PathRequired(ref cause) => write!(f, "{}", cause),
5985            DeleteFileError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
5986            DeleteFileError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
5987        }
5988    }
5989}
5990impl Error for DeleteFileError {}
5991/// Errors returned by DeletePullRequestApprovalRule
5992#[derive(Debug, PartialEq)]
5993pub enum DeletePullRequestApprovalRuleError {
5994    /// <p>An approval rule name is required, but was not specified.</p>
5995    ApprovalRuleNameRequired(String),
5996    /// <p>The approval rule cannot be deleted from the pull request because it was created by an approval rule template and applied to the pull request automatically.</p>
5997    CannotDeleteApprovalRuleFromTemplate(String),
5998    /// <p>An encryption integrity check failed.</p>
5999    EncryptionIntegrityChecksFailed(String),
6000    /// <p>An encryption key could not be accessed.</p>
6001    EncryptionKeyAccessDenied(String),
6002    /// <p>The encryption key is disabled.</p>
6003    EncryptionKeyDisabled(String),
6004    /// <p>No encryption key was found.</p>
6005    EncryptionKeyNotFound(String),
6006    /// <p>The encryption key is not available.</p>
6007    EncryptionKeyUnavailable(String),
6008    /// <p>The name for the approval rule is not valid.</p>
6009    InvalidApprovalRuleName(String),
6010    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
6011    InvalidPullRequestId(String),
6012    /// <p>The pull request status cannot be updated because it is already closed.</p>
6013    PullRequestAlreadyClosed(String),
6014    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
6015    PullRequestDoesNotExist(String),
6016    /// <p>A pull request ID is required, but none was provided.</p>
6017    PullRequestIdRequired(String),
6018}
6019
6020impl DeletePullRequestApprovalRuleError {
6021    pub fn from_response(
6022        res: BufferedHttpResponse,
6023    ) -> RusotoError<DeletePullRequestApprovalRuleError> {
6024        if let Some(err) = proto::json::Error::parse(&res) {
6025            match err.typ.as_str() {
6026                "ApprovalRuleNameRequiredException" => {
6027                    return RusotoError::Service(
6028                        DeletePullRequestApprovalRuleError::ApprovalRuleNameRequired(err.msg),
6029                    )
6030                }
6031                "CannotDeleteApprovalRuleFromTemplateException" => {
6032                    return RusotoError::Service(
6033                        DeletePullRequestApprovalRuleError::CannotDeleteApprovalRuleFromTemplate(
6034                            err.msg,
6035                        ),
6036                    )
6037                }
6038                "EncryptionIntegrityChecksFailedException" => {
6039                    return RusotoError::Service(
6040                        DeletePullRequestApprovalRuleError::EncryptionIntegrityChecksFailed(
6041                            err.msg,
6042                        ),
6043                    )
6044                }
6045                "EncryptionKeyAccessDeniedException" => {
6046                    return RusotoError::Service(
6047                        DeletePullRequestApprovalRuleError::EncryptionKeyAccessDenied(err.msg),
6048                    )
6049                }
6050                "EncryptionKeyDisabledException" => {
6051                    return RusotoError::Service(
6052                        DeletePullRequestApprovalRuleError::EncryptionKeyDisabled(err.msg),
6053                    )
6054                }
6055                "EncryptionKeyNotFoundException" => {
6056                    return RusotoError::Service(
6057                        DeletePullRequestApprovalRuleError::EncryptionKeyNotFound(err.msg),
6058                    )
6059                }
6060                "EncryptionKeyUnavailableException" => {
6061                    return RusotoError::Service(
6062                        DeletePullRequestApprovalRuleError::EncryptionKeyUnavailable(err.msg),
6063                    )
6064                }
6065                "InvalidApprovalRuleNameException" => {
6066                    return RusotoError::Service(
6067                        DeletePullRequestApprovalRuleError::InvalidApprovalRuleName(err.msg),
6068                    )
6069                }
6070                "InvalidPullRequestIdException" => {
6071                    return RusotoError::Service(
6072                        DeletePullRequestApprovalRuleError::InvalidPullRequestId(err.msg),
6073                    )
6074                }
6075                "PullRequestAlreadyClosedException" => {
6076                    return RusotoError::Service(
6077                        DeletePullRequestApprovalRuleError::PullRequestAlreadyClosed(err.msg),
6078                    )
6079                }
6080                "PullRequestDoesNotExistException" => {
6081                    return RusotoError::Service(
6082                        DeletePullRequestApprovalRuleError::PullRequestDoesNotExist(err.msg),
6083                    )
6084                }
6085                "PullRequestIdRequiredException" => {
6086                    return RusotoError::Service(
6087                        DeletePullRequestApprovalRuleError::PullRequestIdRequired(err.msg),
6088                    )
6089                }
6090                "ValidationException" => return RusotoError::Validation(err.msg),
6091                _ => {}
6092            }
6093        }
6094        RusotoError::Unknown(res)
6095    }
6096}
6097impl fmt::Display for DeletePullRequestApprovalRuleError {
6098    #[allow(unused_variables)]
6099    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6100        match *self {
6101            DeletePullRequestApprovalRuleError::ApprovalRuleNameRequired(ref cause) => {
6102                write!(f, "{}", cause)
6103            }
6104            DeletePullRequestApprovalRuleError::CannotDeleteApprovalRuleFromTemplate(ref cause) => {
6105                write!(f, "{}", cause)
6106            }
6107            DeletePullRequestApprovalRuleError::EncryptionIntegrityChecksFailed(ref cause) => {
6108                write!(f, "{}", cause)
6109            }
6110            DeletePullRequestApprovalRuleError::EncryptionKeyAccessDenied(ref cause) => {
6111                write!(f, "{}", cause)
6112            }
6113            DeletePullRequestApprovalRuleError::EncryptionKeyDisabled(ref cause) => {
6114                write!(f, "{}", cause)
6115            }
6116            DeletePullRequestApprovalRuleError::EncryptionKeyNotFound(ref cause) => {
6117                write!(f, "{}", cause)
6118            }
6119            DeletePullRequestApprovalRuleError::EncryptionKeyUnavailable(ref cause) => {
6120                write!(f, "{}", cause)
6121            }
6122            DeletePullRequestApprovalRuleError::InvalidApprovalRuleName(ref cause) => {
6123                write!(f, "{}", cause)
6124            }
6125            DeletePullRequestApprovalRuleError::InvalidPullRequestId(ref cause) => {
6126                write!(f, "{}", cause)
6127            }
6128            DeletePullRequestApprovalRuleError::PullRequestAlreadyClosed(ref cause) => {
6129                write!(f, "{}", cause)
6130            }
6131            DeletePullRequestApprovalRuleError::PullRequestDoesNotExist(ref cause) => {
6132                write!(f, "{}", cause)
6133            }
6134            DeletePullRequestApprovalRuleError::PullRequestIdRequired(ref cause) => {
6135                write!(f, "{}", cause)
6136            }
6137        }
6138    }
6139}
6140impl Error for DeletePullRequestApprovalRuleError {}
6141/// Errors returned by DeleteRepository
6142#[derive(Debug, PartialEq)]
6143pub enum DeleteRepositoryError {
6144    /// <p>An encryption integrity check failed.</p>
6145    EncryptionIntegrityChecksFailed(String),
6146    /// <p>An encryption key could not be accessed.</p>
6147    EncryptionKeyAccessDenied(String),
6148    /// <p>The encryption key is disabled.</p>
6149    EncryptionKeyDisabled(String),
6150    /// <p>No encryption key was found.</p>
6151    EncryptionKeyNotFound(String),
6152    /// <p>The encryption key is not available.</p>
6153    EncryptionKeyUnavailable(String),
6154    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
6155    InvalidRepositoryName(String),
6156    /// <p>A repository name is required, but was not specified.</p>
6157    RepositoryNameRequired(String),
6158}
6159
6160impl DeleteRepositoryError {
6161    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteRepositoryError> {
6162        if let Some(err) = proto::json::Error::parse(&res) {
6163            match err.typ.as_str() {
6164                "EncryptionIntegrityChecksFailedException" => {
6165                    return RusotoError::Service(
6166                        DeleteRepositoryError::EncryptionIntegrityChecksFailed(err.msg),
6167                    )
6168                }
6169                "EncryptionKeyAccessDeniedException" => {
6170                    return RusotoError::Service(DeleteRepositoryError::EncryptionKeyAccessDenied(
6171                        err.msg,
6172                    ))
6173                }
6174                "EncryptionKeyDisabledException" => {
6175                    return RusotoError::Service(DeleteRepositoryError::EncryptionKeyDisabled(
6176                        err.msg,
6177                    ))
6178                }
6179                "EncryptionKeyNotFoundException" => {
6180                    return RusotoError::Service(DeleteRepositoryError::EncryptionKeyNotFound(
6181                        err.msg,
6182                    ))
6183                }
6184                "EncryptionKeyUnavailableException" => {
6185                    return RusotoError::Service(DeleteRepositoryError::EncryptionKeyUnavailable(
6186                        err.msg,
6187                    ))
6188                }
6189                "InvalidRepositoryNameException" => {
6190                    return RusotoError::Service(DeleteRepositoryError::InvalidRepositoryName(
6191                        err.msg,
6192                    ))
6193                }
6194                "RepositoryNameRequiredException" => {
6195                    return RusotoError::Service(DeleteRepositoryError::RepositoryNameRequired(
6196                        err.msg,
6197                    ))
6198                }
6199                "ValidationException" => return RusotoError::Validation(err.msg),
6200                _ => {}
6201            }
6202        }
6203        RusotoError::Unknown(res)
6204    }
6205}
6206impl fmt::Display for DeleteRepositoryError {
6207    #[allow(unused_variables)]
6208    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6209        match *self {
6210            DeleteRepositoryError::EncryptionIntegrityChecksFailed(ref cause) => {
6211                write!(f, "{}", cause)
6212            }
6213            DeleteRepositoryError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
6214            DeleteRepositoryError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
6215            DeleteRepositoryError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
6216            DeleteRepositoryError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
6217            DeleteRepositoryError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
6218            DeleteRepositoryError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
6219        }
6220    }
6221}
6222impl Error for DeleteRepositoryError {}
6223/// Errors returned by DescribeMergeConflicts
6224#[derive(Debug, PartialEq)]
6225pub enum DescribeMergeConflictsError {
6226    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
6227    CommitDoesNotExist(String),
6228    /// <p>A commit was not specified.</p>
6229    CommitRequired(String),
6230    /// <p>An encryption integrity check failed.</p>
6231    EncryptionIntegrityChecksFailed(String),
6232    /// <p>An encryption key could not be accessed.</p>
6233    EncryptionKeyAccessDenied(String),
6234    /// <p>The encryption key is disabled.</p>
6235    EncryptionKeyDisabled(String),
6236    /// <p>No encryption key was found.</p>
6237    EncryptionKeyNotFound(String),
6238    /// <p>The encryption key is not available.</p>
6239    EncryptionKeyUnavailable(String),
6240    /// <p>The specified file does not exist. Verify that you have used the correct file name, full path, and extension.</p>
6241    FileDoesNotExist(String),
6242    /// <p>The specified commit is not valid.</p>
6243    InvalidCommit(String),
6244    /// <p>The specified conflict detail level is not valid.</p>
6245    InvalidConflictDetailLevel(String),
6246    /// <p>The specified conflict resolution strategy is not valid.</p>
6247    InvalidConflictResolutionStrategy(String),
6248    /// <p>The specified continuation token is not valid.</p>
6249    InvalidContinuationToken(String),
6250    /// <p>The specified value for the number of merge hunks to return is not valid.</p>
6251    InvalidMaxMergeHunks(String),
6252    /// <p>The specified merge option is not valid for this operation. Not all merge strategies are supported for all operations.</p>
6253    InvalidMergeOption(String),
6254    /// <p>The specified path is not valid.</p>
6255    InvalidPath(String),
6256    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
6257    InvalidRepositoryName(String),
6258    /// <p>The number of files to load exceeds the allowed limit.</p>
6259    MaximumFileContentToLoadExceeded(String),
6260    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
6261    MaximumItemsToCompareExceeded(String),
6262    /// <p>A merge option or stategy is required, and none was provided.</p>
6263    MergeOptionRequired(String),
6264    /// <p>The folderPath for a location cannot be null.</p>
6265    PathRequired(String),
6266    /// <p>The specified repository does not exist.</p>
6267    RepositoryDoesNotExist(String),
6268    /// <p>A repository name is required, but was not specified.</p>
6269    RepositoryNameRequired(String),
6270    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
6271    TipsDivergenceExceeded(String),
6272}
6273
6274impl DescribeMergeConflictsError {
6275    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeMergeConflictsError> {
6276        if let Some(err) = proto::json::Error::parse(&res) {
6277            match err.typ.as_str() {
6278                "CommitDoesNotExistException" => {
6279                    return RusotoError::Service(DescribeMergeConflictsError::CommitDoesNotExist(
6280                        err.msg,
6281                    ))
6282                }
6283                "CommitRequiredException" => {
6284                    return RusotoError::Service(DescribeMergeConflictsError::CommitRequired(
6285                        err.msg,
6286                    ))
6287                }
6288                "EncryptionIntegrityChecksFailedException" => {
6289                    return RusotoError::Service(
6290                        DescribeMergeConflictsError::EncryptionIntegrityChecksFailed(err.msg),
6291                    )
6292                }
6293                "EncryptionKeyAccessDeniedException" => {
6294                    return RusotoError::Service(
6295                        DescribeMergeConflictsError::EncryptionKeyAccessDenied(err.msg),
6296                    )
6297                }
6298                "EncryptionKeyDisabledException" => {
6299                    return RusotoError::Service(
6300                        DescribeMergeConflictsError::EncryptionKeyDisabled(err.msg),
6301                    )
6302                }
6303                "EncryptionKeyNotFoundException" => {
6304                    return RusotoError::Service(
6305                        DescribeMergeConflictsError::EncryptionKeyNotFound(err.msg),
6306                    )
6307                }
6308                "EncryptionKeyUnavailableException" => {
6309                    return RusotoError::Service(
6310                        DescribeMergeConflictsError::EncryptionKeyUnavailable(err.msg),
6311                    )
6312                }
6313                "FileDoesNotExistException" => {
6314                    return RusotoError::Service(DescribeMergeConflictsError::FileDoesNotExist(
6315                        err.msg,
6316                    ))
6317                }
6318                "InvalidCommitException" => {
6319                    return RusotoError::Service(DescribeMergeConflictsError::InvalidCommit(
6320                        err.msg,
6321                    ))
6322                }
6323                "InvalidConflictDetailLevelException" => {
6324                    return RusotoError::Service(
6325                        DescribeMergeConflictsError::InvalidConflictDetailLevel(err.msg),
6326                    )
6327                }
6328                "InvalidConflictResolutionStrategyException" => {
6329                    return RusotoError::Service(
6330                        DescribeMergeConflictsError::InvalidConflictResolutionStrategy(err.msg),
6331                    )
6332                }
6333                "InvalidContinuationTokenException" => {
6334                    return RusotoError::Service(
6335                        DescribeMergeConflictsError::InvalidContinuationToken(err.msg),
6336                    )
6337                }
6338                "InvalidMaxMergeHunksException" => {
6339                    return RusotoError::Service(DescribeMergeConflictsError::InvalidMaxMergeHunks(
6340                        err.msg,
6341                    ))
6342                }
6343                "InvalidMergeOptionException" => {
6344                    return RusotoError::Service(DescribeMergeConflictsError::InvalidMergeOption(
6345                        err.msg,
6346                    ))
6347                }
6348                "InvalidPathException" => {
6349                    return RusotoError::Service(DescribeMergeConflictsError::InvalidPath(err.msg))
6350                }
6351                "InvalidRepositoryNameException" => {
6352                    return RusotoError::Service(
6353                        DescribeMergeConflictsError::InvalidRepositoryName(err.msg),
6354                    )
6355                }
6356                "MaximumFileContentToLoadExceededException" => {
6357                    return RusotoError::Service(
6358                        DescribeMergeConflictsError::MaximumFileContentToLoadExceeded(err.msg),
6359                    )
6360                }
6361                "MaximumItemsToCompareExceededException" => {
6362                    return RusotoError::Service(
6363                        DescribeMergeConflictsError::MaximumItemsToCompareExceeded(err.msg),
6364                    )
6365                }
6366                "MergeOptionRequiredException" => {
6367                    return RusotoError::Service(DescribeMergeConflictsError::MergeOptionRequired(
6368                        err.msg,
6369                    ))
6370                }
6371                "PathRequiredException" => {
6372                    return RusotoError::Service(DescribeMergeConflictsError::PathRequired(err.msg))
6373                }
6374                "RepositoryDoesNotExistException" => {
6375                    return RusotoError::Service(
6376                        DescribeMergeConflictsError::RepositoryDoesNotExist(err.msg),
6377                    )
6378                }
6379                "RepositoryNameRequiredException" => {
6380                    return RusotoError::Service(
6381                        DescribeMergeConflictsError::RepositoryNameRequired(err.msg),
6382                    )
6383                }
6384                "TipsDivergenceExceededException" => {
6385                    return RusotoError::Service(
6386                        DescribeMergeConflictsError::TipsDivergenceExceeded(err.msg),
6387                    )
6388                }
6389                "ValidationException" => return RusotoError::Validation(err.msg),
6390                _ => {}
6391            }
6392        }
6393        RusotoError::Unknown(res)
6394    }
6395}
6396impl fmt::Display for DescribeMergeConflictsError {
6397    #[allow(unused_variables)]
6398    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6399        match *self {
6400            DescribeMergeConflictsError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
6401            DescribeMergeConflictsError::CommitRequired(ref cause) => write!(f, "{}", cause),
6402            DescribeMergeConflictsError::EncryptionIntegrityChecksFailed(ref cause) => {
6403                write!(f, "{}", cause)
6404            }
6405            DescribeMergeConflictsError::EncryptionKeyAccessDenied(ref cause) => {
6406                write!(f, "{}", cause)
6407            }
6408            DescribeMergeConflictsError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
6409            DescribeMergeConflictsError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
6410            DescribeMergeConflictsError::EncryptionKeyUnavailable(ref cause) => {
6411                write!(f, "{}", cause)
6412            }
6413            DescribeMergeConflictsError::FileDoesNotExist(ref cause) => write!(f, "{}", cause),
6414            DescribeMergeConflictsError::InvalidCommit(ref cause) => write!(f, "{}", cause),
6415            DescribeMergeConflictsError::InvalidConflictDetailLevel(ref cause) => {
6416                write!(f, "{}", cause)
6417            }
6418            DescribeMergeConflictsError::InvalidConflictResolutionStrategy(ref cause) => {
6419                write!(f, "{}", cause)
6420            }
6421            DescribeMergeConflictsError::InvalidContinuationToken(ref cause) => {
6422                write!(f, "{}", cause)
6423            }
6424            DescribeMergeConflictsError::InvalidMaxMergeHunks(ref cause) => write!(f, "{}", cause),
6425            DescribeMergeConflictsError::InvalidMergeOption(ref cause) => write!(f, "{}", cause),
6426            DescribeMergeConflictsError::InvalidPath(ref cause) => write!(f, "{}", cause),
6427            DescribeMergeConflictsError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
6428            DescribeMergeConflictsError::MaximumFileContentToLoadExceeded(ref cause) => {
6429                write!(f, "{}", cause)
6430            }
6431            DescribeMergeConflictsError::MaximumItemsToCompareExceeded(ref cause) => {
6432                write!(f, "{}", cause)
6433            }
6434            DescribeMergeConflictsError::MergeOptionRequired(ref cause) => write!(f, "{}", cause),
6435            DescribeMergeConflictsError::PathRequired(ref cause) => write!(f, "{}", cause),
6436            DescribeMergeConflictsError::RepositoryDoesNotExist(ref cause) => {
6437                write!(f, "{}", cause)
6438            }
6439            DescribeMergeConflictsError::RepositoryNameRequired(ref cause) => {
6440                write!(f, "{}", cause)
6441            }
6442            DescribeMergeConflictsError::TipsDivergenceExceeded(ref cause) => {
6443                write!(f, "{}", cause)
6444            }
6445        }
6446    }
6447}
6448impl Error for DescribeMergeConflictsError {}
6449/// Errors returned by DescribePullRequestEvents
6450#[derive(Debug, PartialEq)]
6451pub enum DescribePullRequestEventsError {
6452    /// <p>The specified Amazon Resource Name (ARN) does not exist in the AWS account.</p>
6453    ActorDoesNotExist(String),
6454    /// <p>An encryption integrity check failed.</p>
6455    EncryptionIntegrityChecksFailed(String),
6456    /// <p>An encryption key could not be accessed.</p>
6457    EncryptionKeyAccessDenied(String),
6458    /// <p>The encryption key is disabled.</p>
6459    EncryptionKeyDisabled(String),
6460    /// <p>No encryption key was found.</p>
6461    EncryptionKeyNotFound(String),
6462    /// <p>The encryption key is not available.</p>
6463    EncryptionKeyUnavailable(String),
6464    /// <p>The Amazon Resource Name (ARN) is not valid. Make sure that you have provided the full ARN for the user who initiated the change for the pull request, and then try again.</p>
6465    InvalidActorArn(String),
6466    /// <p>The specified continuation token is not valid.</p>
6467    InvalidContinuationToken(String),
6468    /// <p>The specified number of maximum results is not valid.</p>
6469    InvalidMaxResults(String),
6470    /// <p>The pull request event type is not valid. </p>
6471    InvalidPullRequestEventType(String),
6472    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
6473    InvalidPullRequestId(String),
6474    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
6475    PullRequestDoesNotExist(String),
6476    /// <p>A pull request ID is required, but none was provided.</p>
6477    PullRequestIdRequired(String),
6478}
6479
6480impl DescribePullRequestEventsError {
6481    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribePullRequestEventsError> {
6482        if let Some(err) = proto::json::Error::parse(&res) {
6483            match err.typ.as_str() {
6484                "ActorDoesNotExistException" => {
6485                    return RusotoError::Service(DescribePullRequestEventsError::ActorDoesNotExist(
6486                        err.msg,
6487                    ))
6488                }
6489                "EncryptionIntegrityChecksFailedException" => {
6490                    return RusotoError::Service(
6491                        DescribePullRequestEventsError::EncryptionIntegrityChecksFailed(err.msg),
6492                    )
6493                }
6494                "EncryptionKeyAccessDeniedException" => {
6495                    return RusotoError::Service(
6496                        DescribePullRequestEventsError::EncryptionKeyAccessDenied(err.msg),
6497                    )
6498                }
6499                "EncryptionKeyDisabledException" => {
6500                    return RusotoError::Service(
6501                        DescribePullRequestEventsError::EncryptionKeyDisabled(err.msg),
6502                    )
6503                }
6504                "EncryptionKeyNotFoundException" => {
6505                    return RusotoError::Service(
6506                        DescribePullRequestEventsError::EncryptionKeyNotFound(err.msg),
6507                    )
6508                }
6509                "EncryptionKeyUnavailableException" => {
6510                    return RusotoError::Service(
6511                        DescribePullRequestEventsError::EncryptionKeyUnavailable(err.msg),
6512                    )
6513                }
6514                "InvalidActorArnException" => {
6515                    return RusotoError::Service(DescribePullRequestEventsError::InvalidActorArn(
6516                        err.msg,
6517                    ))
6518                }
6519                "InvalidContinuationTokenException" => {
6520                    return RusotoError::Service(
6521                        DescribePullRequestEventsError::InvalidContinuationToken(err.msg),
6522                    )
6523                }
6524                "InvalidMaxResultsException" => {
6525                    return RusotoError::Service(DescribePullRequestEventsError::InvalidMaxResults(
6526                        err.msg,
6527                    ))
6528                }
6529                "InvalidPullRequestEventTypeException" => {
6530                    return RusotoError::Service(
6531                        DescribePullRequestEventsError::InvalidPullRequestEventType(err.msg),
6532                    )
6533                }
6534                "InvalidPullRequestIdException" => {
6535                    return RusotoError::Service(
6536                        DescribePullRequestEventsError::InvalidPullRequestId(err.msg),
6537                    )
6538                }
6539                "PullRequestDoesNotExistException" => {
6540                    return RusotoError::Service(
6541                        DescribePullRequestEventsError::PullRequestDoesNotExist(err.msg),
6542                    )
6543                }
6544                "PullRequestIdRequiredException" => {
6545                    return RusotoError::Service(
6546                        DescribePullRequestEventsError::PullRequestIdRequired(err.msg),
6547                    )
6548                }
6549                "ValidationException" => return RusotoError::Validation(err.msg),
6550                _ => {}
6551            }
6552        }
6553        RusotoError::Unknown(res)
6554    }
6555}
6556impl fmt::Display for DescribePullRequestEventsError {
6557    #[allow(unused_variables)]
6558    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6559        match *self {
6560            DescribePullRequestEventsError::ActorDoesNotExist(ref cause) => write!(f, "{}", cause),
6561            DescribePullRequestEventsError::EncryptionIntegrityChecksFailed(ref cause) => {
6562                write!(f, "{}", cause)
6563            }
6564            DescribePullRequestEventsError::EncryptionKeyAccessDenied(ref cause) => {
6565                write!(f, "{}", cause)
6566            }
6567            DescribePullRequestEventsError::EncryptionKeyDisabled(ref cause) => {
6568                write!(f, "{}", cause)
6569            }
6570            DescribePullRequestEventsError::EncryptionKeyNotFound(ref cause) => {
6571                write!(f, "{}", cause)
6572            }
6573            DescribePullRequestEventsError::EncryptionKeyUnavailable(ref cause) => {
6574                write!(f, "{}", cause)
6575            }
6576            DescribePullRequestEventsError::InvalidActorArn(ref cause) => write!(f, "{}", cause),
6577            DescribePullRequestEventsError::InvalidContinuationToken(ref cause) => {
6578                write!(f, "{}", cause)
6579            }
6580            DescribePullRequestEventsError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
6581            DescribePullRequestEventsError::InvalidPullRequestEventType(ref cause) => {
6582                write!(f, "{}", cause)
6583            }
6584            DescribePullRequestEventsError::InvalidPullRequestId(ref cause) => {
6585                write!(f, "{}", cause)
6586            }
6587            DescribePullRequestEventsError::PullRequestDoesNotExist(ref cause) => {
6588                write!(f, "{}", cause)
6589            }
6590            DescribePullRequestEventsError::PullRequestIdRequired(ref cause) => {
6591                write!(f, "{}", cause)
6592            }
6593        }
6594    }
6595}
6596impl Error for DescribePullRequestEventsError {}
6597/// Errors returned by DisassociateApprovalRuleTemplateFromRepository
6598#[derive(Debug, PartialEq)]
6599pub enum DisassociateApprovalRuleTemplateFromRepositoryError {
6600    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
6601    ApprovalRuleTemplateDoesNotExist(String),
6602    /// <p>An approval rule template name is required, but was not specified.</p>
6603    ApprovalRuleTemplateNameRequired(String),
6604    /// <p>An encryption integrity check failed.</p>
6605    EncryptionIntegrityChecksFailed(String),
6606    /// <p>An encryption key could not be accessed.</p>
6607    EncryptionKeyAccessDenied(String),
6608    /// <p>The encryption key is disabled.</p>
6609    EncryptionKeyDisabled(String),
6610    /// <p>No encryption key was found.</p>
6611    EncryptionKeyNotFound(String),
6612    /// <p>The encryption key is not available.</p>
6613    EncryptionKeyUnavailable(String),
6614    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
6615    InvalidApprovalRuleTemplateName(String),
6616    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
6617    InvalidRepositoryName(String),
6618    /// <p>The specified repository does not exist.</p>
6619    RepositoryDoesNotExist(String),
6620    /// <p>A repository name is required, but was not specified.</p>
6621    RepositoryNameRequired(String),
6622}
6623
6624impl DisassociateApprovalRuleTemplateFromRepositoryError {
6625    pub fn from_response(
6626        res: BufferedHttpResponse,
6627    ) -> RusotoError<DisassociateApprovalRuleTemplateFromRepositoryError> {
6628        if let Some(err) = proto::json::Error::parse(&res) {
6629            match err.typ.as_str() {
6630                                "ApprovalRuleTemplateDoesNotExistException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::ApprovalRuleTemplateDoesNotExist(err.msg)),
6631"ApprovalRuleTemplateNameRequiredException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::ApprovalRuleTemplateNameRequired(err.msg)),
6632"EncryptionIntegrityChecksFailedException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionIntegrityChecksFailed(err.msg)),
6633"EncryptionKeyAccessDeniedException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyAccessDenied(err.msg)),
6634"EncryptionKeyDisabledException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyDisabled(err.msg)),
6635"EncryptionKeyNotFoundException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyNotFound(err.msg)),
6636"EncryptionKeyUnavailableException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyUnavailable(err.msg)),
6637"InvalidApprovalRuleTemplateNameException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::InvalidApprovalRuleTemplateName(err.msg)),
6638"InvalidRepositoryNameException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::InvalidRepositoryName(err.msg)),
6639"RepositoryDoesNotExistException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::RepositoryDoesNotExist(err.msg)),
6640"RepositoryNameRequiredException" => return RusotoError::Service(DisassociateApprovalRuleTemplateFromRepositoryError::RepositoryNameRequired(err.msg)),
6641"ValidationException" => return RusotoError::Validation(err.msg),
6642_ => {}
6643                            }
6644        }
6645        RusotoError::Unknown(res)
6646    }
6647}
6648impl fmt::Display for DisassociateApprovalRuleTemplateFromRepositoryError {
6649    #[allow(unused_variables)]
6650    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6651        match *self {
6652                            DisassociateApprovalRuleTemplateFromRepositoryError::ApprovalRuleTemplateDoesNotExist(ref cause) => write!(f, "{}", cause),
6653DisassociateApprovalRuleTemplateFromRepositoryError::ApprovalRuleTemplateNameRequired(ref cause) => write!(f, "{}", cause),
6654DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
6655DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
6656DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
6657DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
6658DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
6659DisassociateApprovalRuleTemplateFromRepositoryError::InvalidApprovalRuleTemplateName(ref cause) => write!(f, "{}", cause),
6660DisassociateApprovalRuleTemplateFromRepositoryError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
6661DisassociateApprovalRuleTemplateFromRepositoryError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
6662DisassociateApprovalRuleTemplateFromRepositoryError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause)
6663                        }
6664    }
6665}
6666impl Error for DisassociateApprovalRuleTemplateFromRepositoryError {}
6667/// Errors returned by EvaluatePullRequestApprovalRules
6668#[derive(Debug, PartialEq)]
6669pub enum EvaluatePullRequestApprovalRulesError {
6670    /// <p>An encryption integrity check failed.</p>
6671    EncryptionIntegrityChecksFailed(String),
6672    /// <p>An encryption key could not be accessed.</p>
6673    EncryptionKeyAccessDenied(String),
6674    /// <p>The encryption key is disabled.</p>
6675    EncryptionKeyDisabled(String),
6676    /// <p>No encryption key was found.</p>
6677    EncryptionKeyNotFound(String),
6678    /// <p>The encryption key is not available.</p>
6679    EncryptionKeyUnavailable(String),
6680    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
6681    InvalidPullRequestId(String),
6682    /// <p>The revision ID is not valid. Use GetPullRequest to determine the value.</p>
6683    InvalidRevisionId(String),
6684    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
6685    PullRequestDoesNotExist(String),
6686    /// <p>A pull request ID is required, but none was provided.</p>
6687    PullRequestIdRequired(String),
6688    /// <p>A revision ID is required, but was not provided.</p>
6689    RevisionIdRequired(String),
6690    /// <p>The revision ID provided in the request does not match the current revision ID. Use GetPullRequest to retrieve the current revision ID.</p>
6691    RevisionNotCurrent(String),
6692}
6693
6694impl EvaluatePullRequestApprovalRulesError {
6695    pub fn from_response(
6696        res: BufferedHttpResponse,
6697    ) -> RusotoError<EvaluatePullRequestApprovalRulesError> {
6698        if let Some(err) = proto::json::Error::parse(&res) {
6699            match err.typ.as_str() {
6700                "EncryptionIntegrityChecksFailedException" => {
6701                    return RusotoError::Service(
6702                        EvaluatePullRequestApprovalRulesError::EncryptionIntegrityChecksFailed(
6703                            err.msg,
6704                        ),
6705                    )
6706                }
6707                "EncryptionKeyAccessDeniedException" => {
6708                    return RusotoError::Service(
6709                        EvaluatePullRequestApprovalRulesError::EncryptionKeyAccessDenied(err.msg),
6710                    )
6711                }
6712                "EncryptionKeyDisabledException" => {
6713                    return RusotoError::Service(
6714                        EvaluatePullRequestApprovalRulesError::EncryptionKeyDisabled(err.msg),
6715                    )
6716                }
6717                "EncryptionKeyNotFoundException" => {
6718                    return RusotoError::Service(
6719                        EvaluatePullRequestApprovalRulesError::EncryptionKeyNotFound(err.msg),
6720                    )
6721                }
6722                "EncryptionKeyUnavailableException" => {
6723                    return RusotoError::Service(
6724                        EvaluatePullRequestApprovalRulesError::EncryptionKeyUnavailable(err.msg),
6725                    )
6726                }
6727                "InvalidPullRequestIdException" => {
6728                    return RusotoError::Service(
6729                        EvaluatePullRequestApprovalRulesError::InvalidPullRequestId(err.msg),
6730                    )
6731                }
6732                "InvalidRevisionIdException" => {
6733                    return RusotoError::Service(
6734                        EvaluatePullRequestApprovalRulesError::InvalidRevisionId(err.msg),
6735                    )
6736                }
6737                "PullRequestDoesNotExistException" => {
6738                    return RusotoError::Service(
6739                        EvaluatePullRequestApprovalRulesError::PullRequestDoesNotExist(err.msg),
6740                    )
6741                }
6742                "PullRequestIdRequiredException" => {
6743                    return RusotoError::Service(
6744                        EvaluatePullRequestApprovalRulesError::PullRequestIdRequired(err.msg),
6745                    )
6746                }
6747                "RevisionIdRequiredException" => {
6748                    return RusotoError::Service(
6749                        EvaluatePullRequestApprovalRulesError::RevisionIdRequired(err.msg),
6750                    )
6751                }
6752                "RevisionNotCurrentException" => {
6753                    return RusotoError::Service(
6754                        EvaluatePullRequestApprovalRulesError::RevisionNotCurrent(err.msg),
6755                    )
6756                }
6757                "ValidationException" => return RusotoError::Validation(err.msg),
6758                _ => {}
6759            }
6760        }
6761        RusotoError::Unknown(res)
6762    }
6763}
6764impl fmt::Display for EvaluatePullRequestApprovalRulesError {
6765    #[allow(unused_variables)]
6766    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6767        match *self {
6768            EvaluatePullRequestApprovalRulesError::EncryptionIntegrityChecksFailed(ref cause) => {
6769                write!(f, "{}", cause)
6770            }
6771            EvaluatePullRequestApprovalRulesError::EncryptionKeyAccessDenied(ref cause) => {
6772                write!(f, "{}", cause)
6773            }
6774            EvaluatePullRequestApprovalRulesError::EncryptionKeyDisabled(ref cause) => {
6775                write!(f, "{}", cause)
6776            }
6777            EvaluatePullRequestApprovalRulesError::EncryptionKeyNotFound(ref cause) => {
6778                write!(f, "{}", cause)
6779            }
6780            EvaluatePullRequestApprovalRulesError::EncryptionKeyUnavailable(ref cause) => {
6781                write!(f, "{}", cause)
6782            }
6783            EvaluatePullRequestApprovalRulesError::InvalidPullRequestId(ref cause) => {
6784                write!(f, "{}", cause)
6785            }
6786            EvaluatePullRequestApprovalRulesError::InvalidRevisionId(ref cause) => {
6787                write!(f, "{}", cause)
6788            }
6789            EvaluatePullRequestApprovalRulesError::PullRequestDoesNotExist(ref cause) => {
6790                write!(f, "{}", cause)
6791            }
6792            EvaluatePullRequestApprovalRulesError::PullRequestIdRequired(ref cause) => {
6793                write!(f, "{}", cause)
6794            }
6795            EvaluatePullRequestApprovalRulesError::RevisionIdRequired(ref cause) => {
6796                write!(f, "{}", cause)
6797            }
6798            EvaluatePullRequestApprovalRulesError::RevisionNotCurrent(ref cause) => {
6799                write!(f, "{}", cause)
6800            }
6801        }
6802    }
6803}
6804impl Error for EvaluatePullRequestApprovalRulesError {}
6805/// Errors returned by GetApprovalRuleTemplate
6806#[derive(Debug, PartialEq)]
6807pub enum GetApprovalRuleTemplateError {
6808    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
6809    ApprovalRuleTemplateDoesNotExist(String),
6810    /// <p>An approval rule template name is required, but was not specified.</p>
6811    ApprovalRuleTemplateNameRequired(String),
6812    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
6813    InvalidApprovalRuleTemplateName(String),
6814}
6815
6816impl GetApprovalRuleTemplateError {
6817    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetApprovalRuleTemplateError> {
6818        if let Some(err) = proto::json::Error::parse(&res) {
6819            match err.typ.as_str() {
6820                "ApprovalRuleTemplateDoesNotExistException" => {
6821                    return RusotoError::Service(
6822                        GetApprovalRuleTemplateError::ApprovalRuleTemplateDoesNotExist(err.msg),
6823                    )
6824                }
6825                "ApprovalRuleTemplateNameRequiredException" => {
6826                    return RusotoError::Service(
6827                        GetApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(err.msg),
6828                    )
6829                }
6830                "InvalidApprovalRuleTemplateNameException" => {
6831                    return RusotoError::Service(
6832                        GetApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(err.msg),
6833                    )
6834                }
6835                "ValidationException" => return RusotoError::Validation(err.msg),
6836                _ => {}
6837            }
6838        }
6839        RusotoError::Unknown(res)
6840    }
6841}
6842impl fmt::Display for GetApprovalRuleTemplateError {
6843    #[allow(unused_variables)]
6844    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6845        match *self {
6846            GetApprovalRuleTemplateError::ApprovalRuleTemplateDoesNotExist(ref cause) => {
6847                write!(f, "{}", cause)
6848            }
6849            GetApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(ref cause) => {
6850                write!(f, "{}", cause)
6851            }
6852            GetApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(ref cause) => {
6853                write!(f, "{}", cause)
6854            }
6855        }
6856    }
6857}
6858impl Error for GetApprovalRuleTemplateError {}
6859/// Errors returned by GetBlob
6860#[derive(Debug, PartialEq)]
6861pub enum GetBlobError {
6862    /// <p>The specified blob does not exist.</p>
6863    BlobIdDoesNotExist(String),
6864    /// <p>A blob ID is required, but was not specified.</p>
6865    BlobIdRequired(String),
6866    /// <p>An encryption integrity check failed.</p>
6867    EncryptionIntegrityChecksFailed(String),
6868    /// <p>An encryption key could not be accessed.</p>
6869    EncryptionKeyAccessDenied(String),
6870    /// <p>The encryption key is disabled.</p>
6871    EncryptionKeyDisabled(String),
6872    /// <p>No encryption key was found.</p>
6873    EncryptionKeyNotFound(String),
6874    /// <p>The encryption key is not available.</p>
6875    EncryptionKeyUnavailable(String),
6876    /// <p>The specified file exceeds the file size limit for AWS CodeCommit. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
6877    FileTooLarge(String),
6878    /// <p>The specified blob is not valid.</p>
6879    InvalidBlobId(String),
6880    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
6881    InvalidRepositoryName(String),
6882    /// <p>The specified repository does not exist.</p>
6883    RepositoryDoesNotExist(String),
6884    /// <p>A repository name is required, but was not specified.</p>
6885    RepositoryNameRequired(String),
6886}
6887
6888impl GetBlobError {
6889    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetBlobError> {
6890        if let Some(err) = proto::json::Error::parse(&res) {
6891            match err.typ.as_str() {
6892                "BlobIdDoesNotExistException" => {
6893                    return RusotoError::Service(GetBlobError::BlobIdDoesNotExist(err.msg))
6894                }
6895                "BlobIdRequiredException" => {
6896                    return RusotoError::Service(GetBlobError::BlobIdRequired(err.msg))
6897                }
6898                "EncryptionIntegrityChecksFailedException" => {
6899                    return RusotoError::Service(GetBlobError::EncryptionIntegrityChecksFailed(
6900                        err.msg,
6901                    ))
6902                }
6903                "EncryptionKeyAccessDeniedException" => {
6904                    return RusotoError::Service(GetBlobError::EncryptionKeyAccessDenied(err.msg))
6905                }
6906                "EncryptionKeyDisabledException" => {
6907                    return RusotoError::Service(GetBlobError::EncryptionKeyDisabled(err.msg))
6908                }
6909                "EncryptionKeyNotFoundException" => {
6910                    return RusotoError::Service(GetBlobError::EncryptionKeyNotFound(err.msg))
6911                }
6912                "EncryptionKeyUnavailableException" => {
6913                    return RusotoError::Service(GetBlobError::EncryptionKeyUnavailable(err.msg))
6914                }
6915                "FileTooLargeException" => {
6916                    return RusotoError::Service(GetBlobError::FileTooLarge(err.msg))
6917                }
6918                "InvalidBlobIdException" => {
6919                    return RusotoError::Service(GetBlobError::InvalidBlobId(err.msg))
6920                }
6921                "InvalidRepositoryNameException" => {
6922                    return RusotoError::Service(GetBlobError::InvalidRepositoryName(err.msg))
6923                }
6924                "RepositoryDoesNotExistException" => {
6925                    return RusotoError::Service(GetBlobError::RepositoryDoesNotExist(err.msg))
6926                }
6927                "RepositoryNameRequiredException" => {
6928                    return RusotoError::Service(GetBlobError::RepositoryNameRequired(err.msg))
6929                }
6930                "ValidationException" => return RusotoError::Validation(err.msg),
6931                _ => {}
6932            }
6933        }
6934        RusotoError::Unknown(res)
6935    }
6936}
6937impl fmt::Display for GetBlobError {
6938    #[allow(unused_variables)]
6939    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
6940        match *self {
6941            GetBlobError::BlobIdDoesNotExist(ref cause) => write!(f, "{}", cause),
6942            GetBlobError::BlobIdRequired(ref cause) => write!(f, "{}", cause),
6943            GetBlobError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
6944            GetBlobError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
6945            GetBlobError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
6946            GetBlobError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
6947            GetBlobError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
6948            GetBlobError::FileTooLarge(ref cause) => write!(f, "{}", cause),
6949            GetBlobError::InvalidBlobId(ref cause) => write!(f, "{}", cause),
6950            GetBlobError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
6951            GetBlobError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
6952            GetBlobError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
6953        }
6954    }
6955}
6956impl Error for GetBlobError {}
6957/// Errors returned by GetBranch
6958#[derive(Debug, PartialEq)]
6959pub enum GetBranchError {
6960    /// <p>The specified branch does not exist.</p>
6961    BranchDoesNotExist(String),
6962    /// <p>A branch name is required, but was not specified.</p>
6963    BranchNameRequired(String),
6964    /// <p>An encryption integrity check failed.</p>
6965    EncryptionIntegrityChecksFailed(String),
6966    /// <p>An encryption key could not be accessed.</p>
6967    EncryptionKeyAccessDenied(String),
6968    /// <p>The encryption key is disabled.</p>
6969    EncryptionKeyDisabled(String),
6970    /// <p>No encryption key was found.</p>
6971    EncryptionKeyNotFound(String),
6972    /// <p>The encryption key is not available.</p>
6973    EncryptionKeyUnavailable(String),
6974    /// <p>The specified reference name is not valid.</p>
6975    InvalidBranchName(String),
6976    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
6977    InvalidRepositoryName(String),
6978    /// <p>The specified repository does not exist.</p>
6979    RepositoryDoesNotExist(String),
6980    /// <p>A repository name is required, but was not specified.</p>
6981    RepositoryNameRequired(String),
6982}
6983
6984impl GetBranchError {
6985    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetBranchError> {
6986        if let Some(err) = proto::json::Error::parse(&res) {
6987            match err.typ.as_str() {
6988                "BranchDoesNotExistException" => {
6989                    return RusotoError::Service(GetBranchError::BranchDoesNotExist(err.msg))
6990                }
6991                "BranchNameRequiredException" => {
6992                    return RusotoError::Service(GetBranchError::BranchNameRequired(err.msg))
6993                }
6994                "EncryptionIntegrityChecksFailedException" => {
6995                    return RusotoError::Service(GetBranchError::EncryptionIntegrityChecksFailed(
6996                        err.msg,
6997                    ))
6998                }
6999                "EncryptionKeyAccessDeniedException" => {
7000                    return RusotoError::Service(GetBranchError::EncryptionKeyAccessDenied(err.msg))
7001                }
7002                "EncryptionKeyDisabledException" => {
7003                    return RusotoError::Service(GetBranchError::EncryptionKeyDisabled(err.msg))
7004                }
7005                "EncryptionKeyNotFoundException" => {
7006                    return RusotoError::Service(GetBranchError::EncryptionKeyNotFound(err.msg))
7007                }
7008                "EncryptionKeyUnavailableException" => {
7009                    return RusotoError::Service(GetBranchError::EncryptionKeyUnavailable(err.msg))
7010                }
7011                "InvalidBranchNameException" => {
7012                    return RusotoError::Service(GetBranchError::InvalidBranchName(err.msg))
7013                }
7014                "InvalidRepositoryNameException" => {
7015                    return RusotoError::Service(GetBranchError::InvalidRepositoryName(err.msg))
7016                }
7017                "RepositoryDoesNotExistException" => {
7018                    return RusotoError::Service(GetBranchError::RepositoryDoesNotExist(err.msg))
7019                }
7020                "RepositoryNameRequiredException" => {
7021                    return RusotoError::Service(GetBranchError::RepositoryNameRequired(err.msg))
7022                }
7023                "ValidationException" => return RusotoError::Validation(err.msg),
7024                _ => {}
7025            }
7026        }
7027        RusotoError::Unknown(res)
7028    }
7029}
7030impl fmt::Display for GetBranchError {
7031    #[allow(unused_variables)]
7032    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7033        match *self {
7034            GetBranchError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
7035            GetBranchError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
7036            GetBranchError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
7037            GetBranchError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
7038            GetBranchError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
7039            GetBranchError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
7040            GetBranchError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
7041            GetBranchError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
7042            GetBranchError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
7043            GetBranchError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
7044            GetBranchError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
7045        }
7046    }
7047}
7048impl Error for GetBranchError {}
7049/// Errors returned by GetComment
7050#[derive(Debug, PartialEq)]
7051pub enum GetCommentError {
7052    /// <p>This comment has already been deleted. You cannot edit or delete a deleted comment.</p>
7053    CommentDeleted(String),
7054    /// <p>No comment exists with the provided ID. Verify that you have used the correct ID, and then try again.</p>
7055    CommentDoesNotExist(String),
7056    /// <p>The comment ID is missing or null. A comment ID is required.</p>
7057    CommentIdRequired(String),
7058    /// <p>An encryption integrity check failed.</p>
7059    EncryptionIntegrityChecksFailed(String),
7060    /// <p>An encryption key could not be accessed.</p>
7061    EncryptionKeyAccessDenied(String),
7062    /// <p>The encryption key is disabled.</p>
7063    EncryptionKeyDisabled(String),
7064    /// <p>No encryption key was found.</p>
7065    EncryptionKeyNotFound(String),
7066    /// <p>The encryption key is not available.</p>
7067    EncryptionKeyUnavailable(String),
7068    /// <p>The comment ID is not in a valid format. Make sure that you have provided the full comment ID.</p>
7069    InvalidCommentId(String),
7070}
7071
7072impl GetCommentError {
7073    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetCommentError> {
7074        if let Some(err) = proto::json::Error::parse(&res) {
7075            match err.typ.as_str() {
7076                "CommentDeletedException" => {
7077                    return RusotoError::Service(GetCommentError::CommentDeleted(err.msg))
7078                }
7079                "CommentDoesNotExistException" => {
7080                    return RusotoError::Service(GetCommentError::CommentDoesNotExist(err.msg))
7081                }
7082                "CommentIdRequiredException" => {
7083                    return RusotoError::Service(GetCommentError::CommentIdRequired(err.msg))
7084                }
7085                "EncryptionIntegrityChecksFailedException" => {
7086                    return RusotoError::Service(GetCommentError::EncryptionIntegrityChecksFailed(
7087                        err.msg,
7088                    ))
7089                }
7090                "EncryptionKeyAccessDeniedException" => {
7091                    return RusotoError::Service(GetCommentError::EncryptionKeyAccessDenied(
7092                        err.msg,
7093                    ))
7094                }
7095                "EncryptionKeyDisabledException" => {
7096                    return RusotoError::Service(GetCommentError::EncryptionKeyDisabled(err.msg))
7097                }
7098                "EncryptionKeyNotFoundException" => {
7099                    return RusotoError::Service(GetCommentError::EncryptionKeyNotFound(err.msg))
7100                }
7101                "EncryptionKeyUnavailableException" => {
7102                    return RusotoError::Service(GetCommentError::EncryptionKeyUnavailable(err.msg))
7103                }
7104                "InvalidCommentIdException" => {
7105                    return RusotoError::Service(GetCommentError::InvalidCommentId(err.msg))
7106                }
7107                "ValidationException" => return RusotoError::Validation(err.msg),
7108                _ => {}
7109            }
7110        }
7111        RusotoError::Unknown(res)
7112    }
7113}
7114impl fmt::Display for GetCommentError {
7115    #[allow(unused_variables)]
7116    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7117        match *self {
7118            GetCommentError::CommentDeleted(ref cause) => write!(f, "{}", cause),
7119            GetCommentError::CommentDoesNotExist(ref cause) => write!(f, "{}", cause),
7120            GetCommentError::CommentIdRequired(ref cause) => write!(f, "{}", cause),
7121            GetCommentError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
7122            GetCommentError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
7123            GetCommentError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
7124            GetCommentError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
7125            GetCommentError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
7126            GetCommentError::InvalidCommentId(ref cause) => write!(f, "{}", cause),
7127        }
7128    }
7129}
7130impl Error for GetCommentError {}
7131/// Errors returned by GetCommentReactions
7132#[derive(Debug, PartialEq)]
7133pub enum GetCommentReactionsError {
7134    /// <p>This comment has already been deleted. You cannot edit or delete a deleted comment.</p>
7135    CommentDeleted(String),
7136    /// <p>No comment exists with the provided ID. Verify that you have used the correct ID, and then try again.</p>
7137    CommentDoesNotExist(String),
7138    /// <p>The comment ID is missing or null. A comment ID is required.</p>
7139    CommentIdRequired(String),
7140    /// <p>The comment ID is not in a valid format. Make sure that you have provided the full comment ID.</p>
7141    InvalidCommentId(String),
7142    /// <p>The specified continuation token is not valid.</p>
7143    InvalidContinuationToken(String),
7144    /// <p>The specified number of maximum results is not valid.</p>
7145    InvalidMaxResults(String),
7146    /// <p>The Amazon Resource Name (ARN) of the user or identity is not valid.</p>
7147    InvalidReactionUserArn(String),
7148}
7149
7150impl GetCommentReactionsError {
7151    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetCommentReactionsError> {
7152        if let Some(err) = proto::json::Error::parse(&res) {
7153            match err.typ.as_str() {
7154                "CommentDeletedException" => {
7155                    return RusotoError::Service(GetCommentReactionsError::CommentDeleted(err.msg))
7156                }
7157                "CommentDoesNotExistException" => {
7158                    return RusotoError::Service(GetCommentReactionsError::CommentDoesNotExist(
7159                        err.msg,
7160                    ))
7161                }
7162                "CommentIdRequiredException" => {
7163                    return RusotoError::Service(GetCommentReactionsError::CommentIdRequired(
7164                        err.msg,
7165                    ))
7166                }
7167                "InvalidCommentIdException" => {
7168                    return RusotoError::Service(GetCommentReactionsError::InvalidCommentId(
7169                        err.msg,
7170                    ))
7171                }
7172                "InvalidContinuationTokenException" => {
7173                    return RusotoError::Service(
7174                        GetCommentReactionsError::InvalidContinuationToken(err.msg),
7175                    )
7176                }
7177                "InvalidMaxResultsException" => {
7178                    return RusotoError::Service(GetCommentReactionsError::InvalidMaxResults(
7179                        err.msg,
7180                    ))
7181                }
7182                "InvalidReactionUserArnException" => {
7183                    return RusotoError::Service(GetCommentReactionsError::InvalidReactionUserArn(
7184                        err.msg,
7185                    ))
7186                }
7187                "ValidationException" => return RusotoError::Validation(err.msg),
7188                _ => {}
7189            }
7190        }
7191        RusotoError::Unknown(res)
7192    }
7193}
7194impl fmt::Display for GetCommentReactionsError {
7195    #[allow(unused_variables)]
7196    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7197        match *self {
7198            GetCommentReactionsError::CommentDeleted(ref cause) => write!(f, "{}", cause),
7199            GetCommentReactionsError::CommentDoesNotExist(ref cause) => write!(f, "{}", cause),
7200            GetCommentReactionsError::CommentIdRequired(ref cause) => write!(f, "{}", cause),
7201            GetCommentReactionsError::InvalidCommentId(ref cause) => write!(f, "{}", cause),
7202            GetCommentReactionsError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
7203            GetCommentReactionsError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
7204            GetCommentReactionsError::InvalidReactionUserArn(ref cause) => write!(f, "{}", cause),
7205        }
7206    }
7207}
7208impl Error for GetCommentReactionsError {}
7209/// Errors returned by GetCommentsForComparedCommit
7210#[derive(Debug, PartialEq)]
7211pub enum GetCommentsForComparedCommitError {
7212    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
7213    CommitDoesNotExist(String),
7214    /// <p>A commit ID was not specified.</p>
7215    CommitIdRequired(String),
7216    /// <p>An encryption integrity check failed.</p>
7217    EncryptionIntegrityChecksFailed(String),
7218    /// <p>An encryption key could not be accessed.</p>
7219    EncryptionKeyAccessDenied(String),
7220    /// <p>The encryption key is disabled.</p>
7221    EncryptionKeyDisabled(String),
7222    /// <p>No encryption key was found.</p>
7223    EncryptionKeyNotFound(String),
7224    /// <p>The encryption key is not available.</p>
7225    EncryptionKeyUnavailable(String),
7226    /// <p>The specified commit ID is not valid.</p>
7227    InvalidCommitId(String),
7228    /// <p>The specified continuation token is not valid.</p>
7229    InvalidContinuationToken(String),
7230    /// <p>The specified number of maximum results is not valid.</p>
7231    InvalidMaxResults(String),
7232    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
7233    InvalidRepositoryName(String),
7234    /// <p>The specified repository does not exist.</p>
7235    RepositoryDoesNotExist(String),
7236    /// <p>A repository name is required, but was not specified.</p>
7237    RepositoryNameRequired(String),
7238}
7239
7240impl GetCommentsForComparedCommitError {
7241    pub fn from_response(
7242        res: BufferedHttpResponse,
7243    ) -> RusotoError<GetCommentsForComparedCommitError> {
7244        if let Some(err) = proto::json::Error::parse(&res) {
7245            match err.typ.as_str() {
7246                "CommitDoesNotExistException" => {
7247                    return RusotoError::Service(
7248                        GetCommentsForComparedCommitError::CommitDoesNotExist(err.msg),
7249                    )
7250                }
7251                "CommitIdRequiredException" => {
7252                    return RusotoError::Service(
7253                        GetCommentsForComparedCommitError::CommitIdRequired(err.msg),
7254                    )
7255                }
7256                "EncryptionIntegrityChecksFailedException" => {
7257                    return RusotoError::Service(
7258                        GetCommentsForComparedCommitError::EncryptionIntegrityChecksFailed(err.msg),
7259                    )
7260                }
7261                "EncryptionKeyAccessDeniedException" => {
7262                    return RusotoError::Service(
7263                        GetCommentsForComparedCommitError::EncryptionKeyAccessDenied(err.msg),
7264                    )
7265                }
7266                "EncryptionKeyDisabledException" => {
7267                    return RusotoError::Service(
7268                        GetCommentsForComparedCommitError::EncryptionKeyDisabled(err.msg),
7269                    )
7270                }
7271                "EncryptionKeyNotFoundException" => {
7272                    return RusotoError::Service(
7273                        GetCommentsForComparedCommitError::EncryptionKeyNotFound(err.msg),
7274                    )
7275                }
7276                "EncryptionKeyUnavailableException" => {
7277                    return RusotoError::Service(
7278                        GetCommentsForComparedCommitError::EncryptionKeyUnavailable(err.msg),
7279                    )
7280                }
7281                "InvalidCommitIdException" => {
7282                    return RusotoError::Service(
7283                        GetCommentsForComparedCommitError::InvalidCommitId(err.msg),
7284                    )
7285                }
7286                "InvalidContinuationTokenException" => {
7287                    return RusotoError::Service(
7288                        GetCommentsForComparedCommitError::InvalidContinuationToken(err.msg),
7289                    )
7290                }
7291                "InvalidMaxResultsException" => {
7292                    return RusotoError::Service(
7293                        GetCommentsForComparedCommitError::InvalidMaxResults(err.msg),
7294                    )
7295                }
7296                "InvalidRepositoryNameException" => {
7297                    return RusotoError::Service(
7298                        GetCommentsForComparedCommitError::InvalidRepositoryName(err.msg),
7299                    )
7300                }
7301                "RepositoryDoesNotExistException" => {
7302                    return RusotoError::Service(
7303                        GetCommentsForComparedCommitError::RepositoryDoesNotExist(err.msg),
7304                    )
7305                }
7306                "RepositoryNameRequiredException" => {
7307                    return RusotoError::Service(
7308                        GetCommentsForComparedCommitError::RepositoryNameRequired(err.msg),
7309                    )
7310                }
7311                "ValidationException" => return RusotoError::Validation(err.msg),
7312                _ => {}
7313            }
7314        }
7315        RusotoError::Unknown(res)
7316    }
7317}
7318impl fmt::Display for GetCommentsForComparedCommitError {
7319    #[allow(unused_variables)]
7320    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7321        match *self {
7322            GetCommentsForComparedCommitError::CommitDoesNotExist(ref cause) => {
7323                write!(f, "{}", cause)
7324            }
7325            GetCommentsForComparedCommitError::CommitIdRequired(ref cause) => {
7326                write!(f, "{}", cause)
7327            }
7328            GetCommentsForComparedCommitError::EncryptionIntegrityChecksFailed(ref cause) => {
7329                write!(f, "{}", cause)
7330            }
7331            GetCommentsForComparedCommitError::EncryptionKeyAccessDenied(ref cause) => {
7332                write!(f, "{}", cause)
7333            }
7334            GetCommentsForComparedCommitError::EncryptionKeyDisabled(ref cause) => {
7335                write!(f, "{}", cause)
7336            }
7337            GetCommentsForComparedCommitError::EncryptionKeyNotFound(ref cause) => {
7338                write!(f, "{}", cause)
7339            }
7340            GetCommentsForComparedCommitError::EncryptionKeyUnavailable(ref cause) => {
7341                write!(f, "{}", cause)
7342            }
7343            GetCommentsForComparedCommitError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
7344            GetCommentsForComparedCommitError::InvalidContinuationToken(ref cause) => {
7345                write!(f, "{}", cause)
7346            }
7347            GetCommentsForComparedCommitError::InvalidMaxResults(ref cause) => {
7348                write!(f, "{}", cause)
7349            }
7350            GetCommentsForComparedCommitError::InvalidRepositoryName(ref cause) => {
7351                write!(f, "{}", cause)
7352            }
7353            GetCommentsForComparedCommitError::RepositoryDoesNotExist(ref cause) => {
7354                write!(f, "{}", cause)
7355            }
7356            GetCommentsForComparedCommitError::RepositoryNameRequired(ref cause) => {
7357                write!(f, "{}", cause)
7358            }
7359        }
7360    }
7361}
7362impl Error for GetCommentsForComparedCommitError {}
7363/// Errors returned by GetCommentsForPullRequest
7364#[derive(Debug, PartialEq)]
7365pub enum GetCommentsForPullRequestError {
7366    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
7367    CommitDoesNotExist(String),
7368    /// <p>A commit ID was not specified.</p>
7369    CommitIdRequired(String),
7370    /// <p>An encryption integrity check failed.</p>
7371    EncryptionIntegrityChecksFailed(String),
7372    /// <p>An encryption key could not be accessed.</p>
7373    EncryptionKeyAccessDenied(String),
7374    /// <p>The encryption key is disabled.</p>
7375    EncryptionKeyDisabled(String),
7376    /// <p>No encryption key was found.</p>
7377    EncryptionKeyNotFound(String),
7378    /// <p>The encryption key is not available.</p>
7379    EncryptionKeyUnavailable(String),
7380    /// <p>The specified commit ID is not valid.</p>
7381    InvalidCommitId(String),
7382    /// <p>The specified continuation token is not valid.</p>
7383    InvalidContinuationToken(String),
7384    /// <p>The specified number of maximum results is not valid.</p>
7385    InvalidMaxResults(String),
7386    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
7387    InvalidPullRequestId(String),
7388    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
7389    InvalidRepositoryName(String),
7390    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
7391    PullRequestDoesNotExist(String),
7392    /// <p>A pull request ID is required, but none was provided.</p>
7393    PullRequestIdRequired(String),
7394    /// <p>The specified repository does not exist.</p>
7395    RepositoryDoesNotExist(String),
7396    /// <p>A repository name is required, but was not specified.</p>
7397    RepositoryNameRequired(String),
7398    /// <p>The repository does not contain any pull requests with that pull request ID. Use GetPullRequest to verify the correct repository name for the pull request ID.</p>
7399    RepositoryNotAssociatedWithPullRequest(String),
7400}
7401
7402impl GetCommentsForPullRequestError {
7403    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetCommentsForPullRequestError> {
7404        if let Some(err) = proto::json::Error::parse(&res) {
7405            match err.typ.as_str() {
7406                "CommitDoesNotExistException" => {
7407                    return RusotoError::Service(
7408                        GetCommentsForPullRequestError::CommitDoesNotExist(err.msg),
7409                    )
7410                }
7411                "CommitIdRequiredException" => {
7412                    return RusotoError::Service(GetCommentsForPullRequestError::CommitIdRequired(
7413                        err.msg,
7414                    ))
7415                }
7416                "EncryptionIntegrityChecksFailedException" => {
7417                    return RusotoError::Service(
7418                        GetCommentsForPullRequestError::EncryptionIntegrityChecksFailed(err.msg),
7419                    )
7420                }
7421                "EncryptionKeyAccessDeniedException" => {
7422                    return RusotoError::Service(
7423                        GetCommentsForPullRequestError::EncryptionKeyAccessDenied(err.msg),
7424                    )
7425                }
7426                "EncryptionKeyDisabledException" => {
7427                    return RusotoError::Service(
7428                        GetCommentsForPullRequestError::EncryptionKeyDisabled(err.msg),
7429                    )
7430                }
7431                "EncryptionKeyNotFoundException" => {
7432                    return RusotoError::Service(
7433                        GetCommentsForPullRequestError::EncryptionKeyNotFound(err.msg),
7434                    )
7435                }
7436                "EncryptionKeyUnavailableException" => {
7437                    return RusotoError::Service(
7438                        GetCommentsForPullRequestError::EncryptionKeyUnavailable(err.msg),
7439                    )
7440                }
7441                "InvalidCommitIdException" => {
7442                    return RusotoError::Service(GetCommentsForPullRequestError::InvalidCommitId(
7443                        err.msg,
7444                    ))
7445                }
7446                "InvalidContinuationTokenException" => {
7447                    return RusotoError::Service(
7448                        GetCommentsForPullRequestError::InvalidContinuationToken(err.msg),
7449                    )
7450                }
7451                "InvalidMaxResultsException" => {
7452                    return RusotoError::Service(GetCommentsForPullRequestError::InvalidMaxResults(
7453                        err.msg,
7454                    ))
7455                }
7456                "InvalidPullRequestIdException" => {
7457                    return RusotoError::Service(
7458                        GetCommentsForPullRequestError::InvalidPullRequestId(err.msg),
7459                    )
7460                }
7461                "InvalidRepositoryNameException" => {
7462                    return RusotoError::Service(
7463                        GetCommentsForPullRequestError::InvalidRepositoryName(err.msg),
7464                    )
7465                }
7466                "PullRequestDoesNotExistException" => {
7467                    return RusotoError::Service(
7468                        GetCommentsForPullRequestError::PullRequestDoesNotExist(err.msg),
7469                    )
7470                }
7471                "PullRequestIdRequiredException" => {
7472                    return RusotoError::Service(
7473                        GetCommentsForPullRequestError::PullRequestIdRequired(err.msg),
7474                    )
7475                }
7476                "RepositoryDoesNotExistException" => {
7477                    return RusotoError::Service(
7478                        GetCommentsForPullRequestError::RepositoryDoesNotExist(err.msg),
7479                    )
7480                }
7481                "RepositoryNameRequiredException" => {
7482                    return RusotoError::Service(
7483                        GetCommentsForPullRequestError::RepositoryNameRequired(err.msg),
7484                    )
7485                }
7486                "RepositoryNotAssociatedWithPullRequestException" => {
7487                    return RusotoError::Service(
7488                        GetCommentsForPullRequestError::RepositoryNotAssociatedWithPullRequest(
7489                            err.msg,
7490                        ),
7491                    )
7492                }
7493                "ValidationException" => return RusotoError::Validation(err.msg),
7494                _ => {}
7495            }
7496        }
7497        RusotoError::Unknown(res)
7498    }
7499}
7500impl fmt::Display for GetCommentsForPullRequestError {
7501    #[allow(unused_variables)]
7502    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7503        match *self {
7504            GetCommentsForPullRequestError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
7505            GetCommentsForPullRequestError::CommitIdRequired(ref cause) => write!(f, "{}", cause),
7506            GetCommentsForPullRequestError::EncryptionIntegrityChecksFailed(ref cause) => {
7507                write!(f, "{}", cause)
7508            }
7509            GetCommentsForPullRequestError::EncryptionKeyAccessDenied(ref cause) => {
7510                write!(f, "{}", cause)
7511            }
7512            GetCommentsForPullRequestError::EncryptionKeyDisabled(ref cause) => {
7513                write!(f, "{}", cause)
7514            }
7515            GetCommentsForPullRequestError::EncryptionKeyNotFound(ref cause) => {
7516                write!(f, "{}", cause)
7517            }
7518            GetCommentsForPullRequestError::EncryptionKeyUnavailable(ref cause) => {
7519                write!(f, "{}", cause)
7520            }
7521            GetCommentsForPullRequestError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
7522            GetCommentsForPullRequestError::InvalidContinuationToken(ref cause) => {
7523                write!(f, "{}", cause)
7524            }
7525            GetCommentsForPullRequestError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
7526            GetCommentsForPullRequestError::InvalidPullRequestId(ref cause) => {
7527                write!(f, "{}", cause)
7528            }
7529            GetCommentsForPullRequestError::InvalidRepositoryName(ref cause) => {
7530                write!(f, "{}", cause)
7531            }
7532            GetCommentsForPullRequestError::PullRequestDoesNotExist(ref cause) => {
7533                write!(f, "{}", cause)
7534            }
7535            GetCommentsForPullRequestError::PullRequestIdRequired(ref cause) => {
7536                write!(f, "{}", cause)
7537            }
7538            GetCommentsForPullRequestError::RepositoryDoesNotExist(ref cause) => {
7539                write!(f, "{}", cause)
7540            }
7541            GetCommentsForPullRequestError::RepositoryNameRequired(ref cause) => {
7542                write!(f, "{}", cause)
7543            }
7544            GetCommentsForPullRequestError::RepositoryNotAssociatedWithPullRequest(ref cause) => {
7545                write!(f, "{}", cause)
7546            }
7547        }
7548    }
7549}
7550impl Error for GetCommentsForPullRequestError {}
7551/// Errors returned by GetCommit
7552#[derive(Debug, PartialEq)]
7553pub enum GetCommitError {
7554    /// <p>The specified commit ID does not exist.</p>
7555    CommitIdDoesNotExist(String),
7556    /// <p>A commit ID was not specified.</p>
7557    CommitIdRequired(String),
7558    /// <p>An encryption integrity check failed.</p>
7559    EncryptionIntegrityChecksFailed(String),
7560    /// <p>An encryption key could not be accessed.</p>
7561    EncryptionKeyAccessDenied(String),
7562    /// <p>The encryption key is disabled.</p>
7563    EncryptionKeyDisabled(String),
7564    /// <p>No encryption key was found.</p>
7565    EncryptionKeyNotFound(String),
7566    /// <p>The encryption key is not available.</p>
7567    EncryptionKeyUnavailable(String),
7568    /// <p>The specified commit ID is not valid.</p>
7569    InvalidCommitId(String),
7570    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
7571    InvalidRepositoryName(String),
7572    /// <p>The specified repository does not exist.</p>
7573    RepositoryDoesNotExist(String),
7574    /// <p>A repository name is required, but was not specified.</p>
7575    RepositoryNameRequired(String),
7576}
7577
7578impl GetCommitError {
7579    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetCommitError> {
7580        if let Some(err) = proto::json::Error::parse(&res) {
7581            match err.typ.as_str() {
7582                "CommitIdDoesNotExistException" => {
7583                    return RusotoError::Service(GetCommitError::CommitIdDoesNotExist(err.msg))
7584                }
7585                "CommitIdRequiredException" => {
7586                    return RusotoError::Service(GetCommitError::CommitIdRequired(err.msg))
7587                }
7588                "EncryptionIntegrityChecksFailedException" => {
7589                    return RusotoError::Service(GetCommitError::EncryptionIntegrityChecksFailed(
7590                        err.msg,
7591                    ))
7592                }
7593                "EncryptionKeyAccessDeniedException" => {
7594                    return RusotoError::Service(GetCommitError::EncryptionKeyAccessDenied(err.msg))
7595                }
7596                "EncryptionKeyDisabledException" => {
7597                    return RusotoError::Service(GetCommitError::EncryptionKeyDisabled(err.msg))
7598                }
7599                "EncryptionKeyNotFoundException" => {
7600                    return RusotoError::Service(GetCommitError::EncryptionKeyNotFound(err.msg))
7601                }
7602                "EncryptionKeyUnavailableException" => {
7603                    return RusotoError::Service(GetCommitError::EncryptionKeyUnavailable(err.msg))
7604                }
7605                "InvalidCommitIdException" => {
7606                    return RusotoError::Service(GetCommitError::InvalidCommitId(err.msg))
7607                }
7608                "InvalidRepositoryNameException" => {
7609                    return RusotoError::Service(GetCommitError::InvalidRepositoryName(err.msg))
7610                }
7611                "RepositoryDoesNotExistException" => {
7612                    return RusotoError::Service(GetCommitError::RepositoryDoesNotExist(err.msg))
7613                }
7614                "RepositoryNameRequiredException" => {
7615                    return RusotoError::Service(GetCommitError::RepositoryNameRequired(err.msg))
7616                }
7617                "ValidationException" => return RusotoError::Validation(err.msg),
7618                _ => {}
7619            }
7620        }
7621        RusotoError::Unknown(res)
7622    }
7623}
7624impl fmt::Display for GetCommitError {
7625    #[allow(unused_variables)]
7626    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7627        match *self {
7628            GetCommitError::CommitIdDoesNotExist(ref cause) => write!(f, "{}", cause),
7629            GetCommitError::CommitIdRequired(ref cause) => write!(f, "{}", cause),
7630            GetCommitError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
7631            GetCommitError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
7632            GetCommitError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
7633            GetCommitError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
7634            GetCommitError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
7635            GetCommitError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
7636            GetCommitError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
7637            GetCommitError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
7638            GetCommitError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
7639        }
7640    }
7641}
7642impl Error for GetCommitError {}
7643/// Errors returned by GetDifferences
7644#[derive(Debug, PartialEq)]
7645pub enum GetDifferencesError {
7646    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
7647    CommitDoesNotExist(String),
7648    /// <p>A commit was not specified.</p>
7649    CommitRequired(String),
7650    /// <p>An encryption integrity check failed.</p>
7651    EncryptionIntegrityChecksFailed(String),
7652    /// <p>An encryption key could not be accessed.</p>
7653    EncryptionKeyAccessDenied(String),
7654    /// <p>The encryption key is disabled.</p>
7655    EncryptionKeyDisabled(String),
7656    /// <p>No encryption key was found.</p>
7657    EncryptionKeyNotFound(String),
7658    /// <p>The encryption key is not available.</p>
7659    EncryptionKeyUnavailable(String),
7660    /// <p>The specified commit is not valid.</p>
7661    InvalidCommit(String),
7662    /// <p>The specified commit ID is not valid.</p>
7663    InvalidCommitId(String),
7664    /// <p>The specified continuation token is not valid.</p>
7665    InvalidContinuationToken(String),
7666    /// <p>The specified number of maximum results is not valid.</p>
7667    InvalidMaxResults(String),
7668    /// <p>The specified path is not valid.</p>
7669    InvalidPath(String),
7670    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
7671    InvalidRepositoryName(String),
7672    /// <p>The specified path does not exist.</p>
7673    PathDoesNotExist(String),
7674    /// <p>The specified repository does not exist.</p>
7675    RepositoryDoesNotExist(String),
7676    /// <p>A repository name is required, but was not specified.</p>
7677    RepositoryNameRequired(String),
7678}
7679
7680impl GetDifferencesError {
7681    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDifferencesError> {
7682        if let Some(err) = proto::json::Error::parse(&res) {
7683            match err.typ.as_str() {
7684                "CommitDoesNotExistException" => {
7685                    return RusotoError::Service(GetDifferencesError::CommitDoesNotExist(err.msg))
7686                }
7687                "CommitRequiredException" => {
7688                    return RusotoError::Service(GetDifferencesError::CommitRequired(err.msg))
7689                }
7690                "EncryptionIntegrityChecksFailedException" => {
7691                    return RusotoError::Service(
7692                        GetDifferencesError::EncryptionIntegrityChecksFailed(err.msg),
7693                    )
7694                }
7695                "EncryptionKeyAccessDeniedException" => {
7696                    return RusotoError::Service(GetDifferencesError::EncryptionKeyAccessDenied(
7697                        err.msg,
7698                    ))
7699                }
7700                "EncryptionKeyDisabledException" => {
7701                    return RusotoError::Service(GetDifferencesError::EncryptionKeyDisabled(
7702                        err.msg,
7703                    ))
7704                }
7705                "EncryptionKeyNotFoundException" => {
7706                    return RusotoError::Service(GetDifferencesError::EncryptionKeyNotFound(
7707                        err.msg,
7708                    ))
7709                }
7710                "EncryptionKeyUnavailableException" => {
7711                    return RusotoError::Service(GetDifferencesError::EncryptionKeyUnavailable(
7712                        err.msg,
7713                    ))
7714                }
7715                "InvalidCommitException" => {
7716                    return RusotoError::Service(GetDifferencesError::InvalidCommit(err.msg))
7717                }
7718                "InvalidCommitIdException" => {
7719                    return RusotoError::Service(GetDifferencesError::InvalidCommitId(err.msg))
7720                }
7721                "InvalidContinuationTokenException" => {
7722                    return RusotoError::Service(GetDifferencesError::InvalidContinuationToken(
7723                        err.msg,
7724                    ))
7725                }
7726                "InvalidMaxResultsException" => {
7727                    return RusotoError::Service(GetDifferencesError::InvalidMaxResults(err.msg))
7728                }
7729                "InvalidPathException" => {
7730                    return RusotoError::Service(GetDifferencesError::InvalidPath(err.msg))
7731                }
7732                "InvalidRepositoryNameException" => {
7733                    return RusotoError::Service(GetDifferencesError::InvalidRepositoryName(
7734                        err.msg,
7735                    ))
7736                }
7737                "PathDoesNotExistException" => {
7738                    return RusotoError::Service(GetDifferencesError::PathDoesNotExist(err.msg))
7739                }
7740                "RepositoryDoesNotExistException" => {
7741                    return RusotoError::Service(GetDifferencesError::RepositoryDoesNotExist(
7742                        err.msg,
7743                    ))
7744                }
7745                "RepositoryNameRequiredException" => {
7746                    return RusotoError::Service(GetDifferencesError::RepositoryNameRequired(
7747                        err.msg,
7748                    ))
7749                }
7750                "ValidationException" => return RusotoError::Validation(err.msg),
7751                _ => {}
7752            }
7753        }
7754        RusotoError::Unknown(res)
7755    }
7756}
7757impl fmt::Display for GetDifferencesError {
7758    #[allow(unused_variables)]
7759    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7760        match *self {
7761            GetDifferencesError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
7762            GetDifferencesError::CommitRequired(ref cause) => write!(f, "{}", cause),
7763            GetDifferencesError::EncryptionIntegrityChecksFailed(ref cause) => {
7764                write!(f, "{}", cause)
7765            }
7766            GetDifferencesError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
7767            GetDifferencesError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
7768            GetDifferencesError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
7769            GetDifferencesError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
7770            GetDifferencesError::InvalidCommit(ref cause) => write!(f, "{}", cause),
7771            GetDifferencesError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
7772            GetDifferencesError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
7773            GetDifferencesError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
7774            GetDifferencesError::InvalidPath(ref cause) => write!(f, "{}", cause),
7775            GetDifferencesError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
7776            GetDifferencesError::PathDoesNotExist(ref cause) => write!(f, "{}", cause),
7777            GetDifferencesError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
7778            GetDifferencesError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
7779        }
7780    }
7781}
7782impl Error for GetDifferencesError {}
7783/// Errors returned by GetFile
7784#[derive(Debug, PartialEq)]
7785pub enum GetFileError {
7786    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
7787    CommitDoesNotExist(String),
7788    /// <p>An encryption integrity check failed.</p>
7789    EncryptionIntegrityChecksFailed(String),
7790    /// <p>An encryption key could not be accessed.</p>
7791    EncryptionKeyAccessDenied(String),
7792    /// <p>The encryption key is disabled.</p>
7793    EncryptionKeyDisabled(String),
7794    /// <p>No encryption key was found.</p>
7795    EncryptionKeyNotFound(String),
7796    /// <p>The encryption key is not available.</p>
7797    EncryptionKeyUnavailable(String),
7798    /// <p>The specified file does not exist. Verify that you have used the correct file name, full path, and extension.</p>
7799    FileDoesNotExist(String),
7800    /// <p>The specified file exceeds the file size limit for AWS CodeCommit. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
7801    FileTooLarge(String),
7802    /// <p>The specified commit is not valid.</p>
7803    InvalidCommit(String),
7804    /// <p>The specified path is not valid.</p>
7805    InvalidPath(String),
7806    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
7807    InvalidRepositoryName(String),
7808    /// <p>The folderPath for a location cannot be null.</p>
7809    PathRequired(String),
7810    /// <p>The specified repository does not exist.</p>
7811    RepositoryDoesNotExist(String),
7812    /// <p>A repository name is required, but was not specified.</p>
7813    RepositoryNameRequired(String),
7814}
7815
7816impl GetFileError {
7817    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetFileError> {
7818        if let Some(err) = proto::json::Error::parse(&res) {
7819            match err.typ.as_str() {
7820                "CommitDoesNotExistException" => {
7821                    return RusotoError::Service(GetFileError::CommitDoesNotExist(err.msg))
7822                }
7823                "EncryptionIntegrityChecksFailedException" => {
7824                    return RusotoError::Service(GetFileError::EncryptionIntegrityChecksFailed(
7825                        err.msg,
7826                    ))
7827                }
7828                "EncryptionKeyAccessDeniedException" => {
7829                    return RusotoError::Service(GetFileError::EncryptionKeyAccessDenied(err.msg))
7830                }
7831                "EncryptionKeyDisabledException" => {
7832                    return RusotoError::Service(GetFileError::EncryptionKeyDisabled(err.msg))
7833                }
7834                "EncryptionKeyNotFoundException" => {
7835                    return RusotoError::Service(GetFileError::EncryptionKeyNotFound(err.msg))
7836                }
7837                "EncryptionKeyUnavailableException" => {
7838                    return RusotoError::Service(GetFileError::EncryptionKeyUnavailable(err.msg))
7839                }
7840                "FileDoesNotExistException" => {
7841                    return RusotoError::Service(GetFileError::FileDoesNotExist(err.msg))
7842                }
7843                "FileTooLargeException" => {
7844                    return RusotoError::Service(GetFileError::FileTooLarge(err.msg))
7845                }
7846                "InvalidCommitException" => {
7847                    return RusotoError::Service(GetFileError::InvalidCommit(err.msg))
7848                }
7849                "InvalidPathException" => {
7850                    return RusotoError::Service(GetFileError::InvalidPath(err.msg))
7851                }
7852                "InvalidRepositoryNameException" => {
7853                    return RusotoError::Service(GetFileError::InvalidRepositoryName(err.msg))
7854                }
7855                "PathRequiredException" => {
7856                    return RusotoError::Service(GetFileError::PathRequired(err.msg))
7857                }
7858                "RepositoryDoesNotExistException" => {
7859                    return RusotoError::Service(GetFileError::RepositoryDoesNotExist(err.msg))
7860                }
7861                "RepositoryNameRequiredException" => {
7862                    return RusotoError::Service(GetFileError::RepositoryNameRequired(err.msg))
7863                }
7864                "ValidationException" => return RusotoError::Validation(err.msg),
7865                _ => {}
7866            }
7867        }
7868        RusotoError::Unknown(res)
7869    }
7870}
7871impl fmt::Display for GetFileError {
7872    #[allow(unused_variables)]
7873    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7874        match *self {
7875            GetFileError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
7876            GetFileError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
7877            GetFileError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
7878            GetFileError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
7879            GetFileError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
7880            GetFileError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
7881            GetFileError::FileDoesNotExist(ref cause) => write!(f, "{}", cause),
7882            GetFileError::FileTooLarge(ref cause) => write!(f, "{}", cause),
7883            GetFileError::InvalidCommit(ref cause) => write!(f, "{}", cause),
7884            GetFileError::InvalidPath(ref cause) => write!(f, "{}", cause),
7885            GetFileError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
7886            GetFileError::PathRequired(ref cause) => write!(f, "{}", cause),
7887            GetFileError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
7888            GetFileError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
7889        }
7890    }
7891}
7892impl Error for GetFileError {}
7893/// Errors returned by GetFolder
7894#[derive(Debug, PartialEq)]
7895pub enum GetFolderError {
7896    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
7897    CommitDoesNotExist(String),
7898    /// <p>An encryption integrity check failed.</p>
7899    EncryptionIntegrityChecksFailed(String),
7900    /// <p>An encryption key could not be accessed.</p>
7901    EncryptionKeyAccessDenied(String),
7902    /// <p>The encryption key is disabled.</p>
7903    EncryptionKeyDisabled(String),
7904    /// <p>No encryption key was found.</p>
7905    EncryptionKeyNotFound(String),
7906    /// <p>The encryption key is not available.</p>
7907    EncryptionKeyUnavailable(String),
7908    /// <p>The specified folder does not exist. Either the folder name is not correct, or you did not enter the full path to the folder.</p>
7909    FolderDoesNotExist(String),
7910    /// <p>The specified commit is not valid.</p>
7911    InvalidCommit(String),
7912    /// <p>The specified path is not valid.</p>
7913    InvalidPath(String),
7914    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
7915    InvalidRepositoryName(String),
7916    /// <p>The folderPath for a location cannot be null.</p>
7917    PathRequired(String),
7918    /// <p>The specified repository does not exist.</p>
7919    RepositoryDoesNotExist(String),
7920    /// <p>A repository name is required, but was not specified.</p>
7921    RepositoryNameRequired(String),
7922}
7923
7924impl GetFolderError {
7925    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetFolderError> {
7926        if let Some(err) = proto::json::Error::parse(&res) {
7927            match err.typ.as_str() {
7928                "CommitDoesNotExistException" => {
7929                    return RusotoError::Service(GetFolderError::CommitDoesNotExist(err.msg))
7930                }
7931                "EncryptionIntegrityChecksFailedException" => {
7932                    return RusotoError::Service(GetFolderError::EncryptionIntegrityChecksFailed(
7933                        err.msg,
7934                    ))
7935                }
7936                "EncryptionKeyAccessDeniedException" => {
7937                    return RusotoError::Service(GetFolderError::EncryptionKeyAccessDenied(err.msg))
7938                }
7939                "EncryptionKeyDisabledException" => {
7940                    return RusotoError::Service(GetFolderError::EncryptionKeyDisabled(err.msg))
7941                }
7942                "EncryptionKeyNotFoundException" => {
7943                    return RusotoError::Service(GetFolderError::EncryptionKeyNotFound(err.msg))
7944                }
7945                "EncryptionKeyUnavailableException" => {
7946                    return RusotoError::Service(GetFolderError::EncryptionKeyUnavailable(err.msg))
7947                }
7948                "FolderDoesNotExistException" => {
7949                    return RusotoError::Service(GetFolderError::FolderDoesNotExist(err.msg))
7950                }
7951                "InvalidCommitException" => {
7952                    return RusotoError::Service(GetFolderError::InvalidCommit(err.msg))
7953                }
7954                "InvalidPathException" => {
7955                    return RusotoError::Service(GetFolderError::InvalidPath(err.msg))
7956                }
7957                "InvalidRepositoryNameException" => {
7958                    return RusotoError::Service(GetFolderError::InvalidRepositoryName(err.msg))
7959                }
7960                "PathRequiredException" => {
7961                    return RusotoError::Service(GetFolderError::PathRequired(err.msg))
7962                }
7963                "RepositoryDoesNotExistException" => {
7964                    return RusotoError::Service(GetFolderError::RepositoryDoesNotExist(err.msg))
7965                }
7966                "RepositoryNameRequiredException" => {
7967                    return RusotoError::Service(GetFolderError::RepositoryNameRequired(err.msg))
7968                }
7969                "ValidationException" => return RusotoError::Validation(err.msg),
7970                _ => {}
7971            }
7972        }
7973        RusotoError::Unknown(res)
7974    }
7975}
7976impl fmt::Display for GetFolderError {
7977    #[allow(unused_variables)]
7978    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7979        match *self {
7980            GetFolderError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
7981            GetFolderError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
7982            GetFolderError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
7983            GetFolderError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
7984            GetFolderError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
7985            GetFolderError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
7986            GetFolderError::FolderDoesNotExist(ref cause) => write!(f, "{}", cause),
7987            GetFolderError::InvalidCommit(ref cause) => write!(f, "{}", cause),
7988            GetFolderError::InvalidPath(ref cause) => write!(f, "{}", cause),
7989            GetFolderError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
7990            GetFolderError::PathRequired(ref cause) => write!(f, "{}", cause),
7991            GetFolderError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
7992            GetFolderError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
7993        }
7994    }
7995}
7996impl Error for GetFolderError {}
7997/// Errors returned by GetMergeCommit
7998#[derive(Debug, PartialEq)]
7999pub enum GetMergeCommitError {
8000    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
8001    CommitDoesNotExist(String),
8002    /// <p>A commit was not specified.</p>
8003    CommitRequired(String),
8004    /// <p>An encryption integrity check failed.</p>
8005    EncryptionIntegrityChecksFailed(String),
8006    /// <p>An encryption key could not be accessed.</p>
8007    EncryptionKeyAccessDenied(String),
8008    /// <p>The encryption key is disabled.</p>
8009    EncryptionKeyDisabled(String),
8010    /// <p>No encryption key was found.</p>
8011    EncryptionKeyNotFound(String),
8012    /// <p>The encryption key is not available.</p>
8013    EncryptionKeyUnavailable(String),
8014    /// <p>The specified commit is not valid.</p>
8015    InvalidCommit(String),
8016    /// <p>The specified conflict detail level is not valid.</p>
8017    InvalidConflictDetailLevel(String),
8018    /// <p>The specified conflict resolution strategy is not valid.</p>
8019    InvalidConflictResolutionStrategy(String),
8020    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
8021    InvalidRepositoryName(String),
8022    /// <p>The specified repository does not exist.</p>
8023    RepositoryDoesNotExist(String),
8024    /// <p>A repository name is required, but was not specified.</p>
8025    RepositoryNameRequired(String),
8026}
8027
8028impl GetMergeCommitError {
8029    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetMergeCommitError> {
8030        if let Some(err) = proto::json::Error::parse(&res) {
8031            match err.typ.as_str() {
8032                "CommitDoesNotExistException" => {
8033                    return RusotoError::Service(GetMergeCommitError::CommitDoesNotExist(err.msg))
8034                }
8035                "CommitRequiredException" => {
8036                    return RusotoError::Service(GetMergeCommitError::CommitRequired(err.msg))
8037                }
8038                "EncryptionIntegrityChecksFailedException" => {
8039                    return RusotoError::Service(
8040                        GetMergeCommitError::EncryptionIntegrityChecksFailed(err.msg),
8041                    )
8042                }
8043                "EncryptionKeyAccessDeniedException" => {
8044                    return RusotoError::Service(GetMergeCommitError::EncryptionKeyAccessDenied(
8045                        err.msg,
8046                    ))
8047                }
8048                "EncryptionKeyDisabledException" => {
8049                    return RusotoError::Service(GetMergeCommitError::EncryptionKeyDisabled(
8050                        err.msg,
8051                    ))
8052                }
8053                "EncryptionKeyNotFoundException" => {
8054                    return RusotoError::Service(GetMergeCommitError::EncryptionKeyNotFound(
8055                        err.msg,
8056                    ))
8057                }
8058                "EncryptionKeyUnavailableException" => {
8059                    return RusotoError::Service(GetMergeCommitError::EncryptionKeyUnavailable(
8060                        err.msg,
8061                    ))
8062                }
8063                "InvalidCommitException" => {
8064                    return RusotoError::Service(GetMergeCommitError::InvalidCommit(err.msg))
8065                }
8066                "InvalidConflictDetailLevelException" => {
8067                    return RusotoError::Service(GetMergeCommitError::InvalidConflictDetailLevel(
8068                        err.msg,
8069                    ))
8070                }
8071                "InvalidConflictResolutionStrategyException" => {
8072                    return RusotoError::Service(
8073                        GetMergeCommitError::InvalidConflictResolutionStrategy(err.msg),
8074                    )
8075                }
8076                "InvalidRepositoryNameException" => {
8077                    return RusotoError::Service(GetMergeCommitError::InvalidRepositoryName(
8078                        err.msg,
8079                    ))
8080                }
8081                "RepositoryDoesNotExistException" => {
8082                    return RusotoError::Service(GetMergeCommitError::RepositoryDoesNotExist(
8083                        err.msg,
8084                    ))
8085                }
8086                "RepositoryNameRequiredException" => {
8087                    return RusotoError::Service(GetMergeCommitError::RepositoryNameRequired(
8088                        err.msg,
8089                    ))
8090                }
8091                "ValidationException" => return RusotoError::Validation(err.msg),
8092                _ => {}
8093            }
8094        }
8095        RusotoError::Unknown(res)
8096    }
8097}
8098impl fmt::Display for GetMergeCommitError {
8099    #[allow(unused_variables)]
8100    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8101        match *self {
8102            GetMergeCommitError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
8103            GetMergeCommitError::CommitRequired(ref cause) => write!(f, "{}", cause),
8104            GetMergeCommitError::EncryptionIntegrityChecksFailed(ref cause) => {
8105                write!(f, "{}", cause)
8106            }
8107            GetMergeCommitError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
8108            GetMergeCommitError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
8109            GetMergeCommitError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
8110            GetMergeCommitError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
8111            GetMergeCommitError::InvalidCommit(ref cause) => write!(f, "{}", cause),
8112            GetMergeCommitError::InvalidConflictDetailLevel(ref cause) => write!(f, "{}", cause),
8113            GetMergeCommitError::InvalidConflictResolutionStrategy(ref cause) => {
8114                write!(f, "{}", cause)
8115            }
8116            GetMergeCommitError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
8117            GetMergeCommitError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
8118            GetMergeCommitError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
8119        }
8120    }
8121}
8122impl Error for GetMergeCommitError {}
8123/// Errors returned by GetMergeConflicts
8124#[derive(Debug, PartialEq)]
8125pub enum GetMergeConflictsError {
8126    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
8127    CommitDoesNotExist(String),
8128    /// <p>A commit was not specified.</p>
8129    CommitRequired(String),
8130    /// <p>An encryption integrity check failed.</p>
8131    EncryptionIntegrityChecksFailed(String),
8132    /// <p>An encryption key could not be accessed.</p>
8133    EncryptionKeyAccessDenied(String),
8134    /// <p>The encryption key is disabled.</p>
8135    EncryptionKeyDisabled(String),
8136    /// <p>No encryption key was found.</p>
8137    EncryptionKeyNotFound(String),
8138    /// <p>The encryption key is not available.</p>
8139    EncryptionKeyUnavailable(String),
8140    /// <p>The specified commit is not valid.</p>
8141    InvalidCommit(String),
8142    /// <p>The specified conflict detail level is not valid.</p>
8143    InvalidConflictDetailLevel(String),
8144    /// <p>The specified conflict resolution strategy is not valid.</p>
8145    InvalidConflictResolutionStrategy(String),
8146    /// <p>The specified continuation token is not valid.</p>
8147    InvalidContinuationToken(String),
8148    /// <p>The destination commit specifier is not valid. You must provide a valid branch name, tag, or full commit ID. </p>
8149    InvalidDestinationCommitSpecifier(String),
8150    /// <p>The specified value for the number of conflict files to return is not valid.</p>
8151    InvalidMaxConflictFiles(String),
8152    /// <p>The specified merge option is not valid for this operation. Not all merge strategies are supported for all operations.</p>
8153    InvalidMergeOption(String),
8154    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
8155    InvalidRepositoryName(String),
8156    /// <p>The source commit specifier is not valid. You must provide a valid branch name, tag, or full commit ID.</p>
8157    InvalidSourceCommitSpecifier(String),
8158    /// <p>The number of files to load exceeds the allowed limit.</p>
8159    MaximumFileContentToLoadExceeded(String),
8160    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
8161    MaximumItemsToCompareExceeded(String),
8162    /// <p>A merge option or stategy is required, and none was provided.</p>
8163    MergeOptionRequired(String),
8164    /// <p>The specified repository does not exist.</p>
8165    RepositoryDoesNotExist(String),
8166    /// <p>A repository name is required, but was not specified.</p>
8167    RepositoryNameRequired(String),
8168    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
8169    TipsDivergenceExceeded(String),
8170}
8171
8172impl GetMergeConflictsError {
8173    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetMergeConflictsError> {
8174        if let Some(err) = proto::json::Error::parse(&res) {
8175            match err.typ.as_str() {
8176                "CommitDoesNotExistException" => {
8177                    return RusotoError::Service(GetMergeConflictsError::CommitDoesNotExist(
8178                        err.msg,
8179                    ))
8180                }
8181                "CommitRequiredException" => {
8182                    return RusotoError::Service(GetMergeConflictsError::CommitRequired(err.msg))
8183                }
8184                "EncryptionIntegrityChecksFailedException" => {
8185                    return RusotoError::Service(
8186                        GetMergeConflictsError::EncryptionIntegrityChecksFailed(err.msg),
8187                    )
8188                }
8189                "EncryptionKeyAccessDeniedException" => {
8190                    return RusotoError::Service(GetMergeConflictsError::EncryptionKeyAccessDenied(
8191                        err.msg,
8192                    ))
8193                }
8194                "EncryptionKeyDisabledException" => {
8195                    return RusotoError::Service(GetMergeConflictsError::EncryptionKeyDisabled(
8196                        err.msg,
8197                    ))
8198                }
8199                "EncryptionKeyNotFoundException" => {
8200                    return RusotoError::Service(GetMergeConflictsError::EncryptionKeyNotFound(
8201                        err.msg,
8202                    ))
8203                }
8204                "EncryptionKeyUnavailableException" => {
8205                    return RusotoError::Service(GetMergeConflictsError::EncryptionKeyUnavailable(
8206                        err.msg,
8207                    ))
8208                }
8209                "InvalidCommitException" => {
8210                    return RusotoError::Service(GetMergeConflictsError::InvalidCommit(err.msg))
8211                }
8212                "InvalidConflictDetailLevelException" => {
8213                    return RusotoError::Service(
8214                        GetMergeConflictsError::InvalidConflictDetailLevel(err.msg),
8215                    )
8216                }
8217                "InvalidConflictResolutionStrategyException" => {
8218                    return RusotoError::Service(
8219                        GetMergeConflictsError::InvalidConflictResolutionStrategy(err.msg),
8220                    )
8221                }
8222                "InvalidContinuationTokenException" => {
8223                    return RusotoError::Service(GetMergeConflictsError::InvalidContinuationToken(
8224                        err.msg,
8225                    ))
8226                }
8227                "InvalidDestinationCommitSpecifierException" => {
8228                    return RusotoError::Service(
8229                        GetMergeConflictsError::InvalidDestinationCommitSpecifier(err.msg),
8230                    )
8231                }
8232                "InvalidMaxConflictFilesException" => {
8233                    return RusotoError::Service(GetMergeConflictsError::InvalidMaxConflictFiles(
8234                        err.msg,
8235                    ))
8236                }
8237                "InvalidMergeOptionException" => {
8238                    return RusotoError::Service(GetMergeConflictsError::InvalidMergeOption(
8239                        err.msg,
8240                    ))
8241                }
8242                "InvalidRepositoryNameException" => {
8243                    return RusotoError::Service(GetMergeConflictsError::InvalidRepositoryName(
8244                        err.msg,
8245                    ))
8246                }
8247                "InvalidSourceCommitSpecifierException" => {
8248                    return RusotoError::Service(
8249                        GetMergeConflictsError::InvalidSourceCommitSpecifier(err.msg),
8250                    )
8251                }
8252                "MaximumFileContentToLoadExceededException" => {
8253                    return RusotoError::Service(
8254                        GetMergeConflictsError::MaximumFileContentToLoadExceeded(err.msg),
8255                    )
8256                }
8257                "MaximumItemsToCompareExceededException" => {
8258                    return RusotoError::Service(
8259                        GetMergeConflictsError::MaximumItemsToCompareExceeded(err.msg),
8260                    )
8261                }
8262                "MergeOptionRequiredException" => {
8263                    return RusotoError::Service(GetMergeConflictsError::MergeOptionRequired(
8264                        err.msg,
8265                    ))
8266                }
8267                "RepositoryDoesNotExistException" => {
8268                    return RusotoError::Service(GetMergeConflictsError::RepositoryDoesNotExist(
8269                        err.msg,
8270                    ))
8271                }
8272                "RepositoryNameRequiredException" => {
8273                    return RusotoError::Service(GetMergeConflictsError::RepositoryNameRequired(
8274                        err.msg,
8275                    ))
8276                }
8277                "TipsDivergenceExceededException" => {
8278                    return RusotoError::Service(GetMergeConflictsError::TipsDivergenceExceeded(
8279                        err.msg,
8280                    ))
8281                }
8282                "ValidationException" => return RusotoError::Validation(err.msg),
8283                _ => {}
8284            }
8285        }
8286        RusotoError::Unknown(res)
8287    }
8288}
8289impl fmt::Display for GetMergeConflictsError {
8290    #[allow(unused_variables)]
8291    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8292        match *self {
8293            GetMergeConflictsError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
8294            GetMergeConflictsError::CommitRequired(ref cause) => write!(f, "{}", cause),
8295            GetMergeConflictsError::EncryptionIntegrityChecksFailed(ref cause) => {
8296                write!(f, "{}", cause)
8297            }
8298            GetMergeConflictsError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
8299            GetMergeConflictsError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
8300            GetMergeConflictsError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
8301            GetMergeConflictsError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
8302            GetMergeConflictsError::InvalidCommit(ref cause) => write!(f, "{}", cause),
8303            GetMergeConflictsError::InvalidConflictDetailLevel(ref cause) => write!(f, "{}", cause),
8304            GetMergeConflictsError::InvalidConflictResolutionStrategy(ref cause) => {
8305                write!(f, "{}", cause)
8306            }
8307            GetMergeConflictsError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
8308            GetMergeConflictsError::InvalidDestinationCommitSpecifier(ref cause) => {
8309                write!(f, "{}", cause)
8310            }
8311            GetMergeConflictsError::InvalidMaxConflictFiles(ref cause) => write!(f, "{}", cause),
8312            GetMergeConflictsError::InvalidMergeOption(ref cause) => write!(f, "{}", cause),
8313            GetMergeConflictsError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
8314            GetMergeConflictsError::InvalidSourceCommitSpecifier(ref cause) => {
8315                write!(f, "{}", cause)
8316            }
8317            GetMergeConflictsError::MaximumFileContentToLoadExceeded(ref cause) => {
8318                write!(f, "{}", cause)
8319            }
8320            GetMergeConflictsError::MaximumItemsToCompareExceeded(ref cause) => {
8321                write!(f, "{}", cause)
8322            }
8323            GetMergeConflictsError::MergeOptionRequired(ref cause) => write!(f, "{}", cause),
8324            GetMergeConflictsError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
8325            GetMergeConflictsError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
8326            GetMergeConflictsError::TipsDivergenceExceeded(ref cause) => write!(f, "{}", cause),
8327        }
8328    }
8329}
8330impl Error for GetMergeConflictsError {}
8331/// Errors returned by GetMergeOptions
8332#[derive(Debug, PartialEq)]
8333pub enum GetMergeOptionsError {
8334    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
8335    CommitDoesNotExist(String),
8336    /// <p>A commit was not specified.</p>
8337    CommitRequired(String),
8338    /// <p>An encryption integrity check failed.</p>
8339    EncryptionIntegrityChecksFailed(String),
8340    /// <p>An encryption key could not be accessed.</p>
8341    EncryptionKeyAccessDenied(String),
8342    /// <p>The encryption key is disabled.</p>
8343    EncryptionKeyDisabled(String),
8344    /// <p>No encryption key was found.</p>
8345    EncryptionKeyNotFound(String),
8346    /// <p>The encryption key is not available.</p>
8347    EncryptionKeyUnavailable(String),
8348    /// <p>The specified commit is not valid.</p>
8349    InvalidCommit(String),
8350    /// <p>The specified conflict detail level is not valid.</p>
8351    InvalidConflictDetailLevel(String),
8352    /// <p>The specified conflict resolution strategy is not valid.</p>
8353    InvalidConflictResolutionStrategy(String),
8354    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
8355    InvalidRepositoryName(String),
8356    /// <p>The number of files to load exceeds the allowed limit.</p>
8357    MaximumFileContentToLoadExceeded(String),
8358    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
8359    MaximumItemsToCompareExceeded(String),
8360    /// <p>The specified repository does not exist.</p>
8361    RepositoryDoesNotExist(String),
8362    /// <p>A repository name is required, but was not specified.</p>
8363    RepositoryNameRequired(String),
8364    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
8365    TipsDivergenceExceeded(String),
8366}
8367
8368impl GetMergeOptionsError {
8369    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetMergeOptionsError> {
8370        if let Some(err) = proto::json::Error::parse(&res) {
8371            match err.typ.as_str() {
8372                "CommitDoesNotExistException" => {
8373                    return RusotoError::Service(GetMergeOptionsError::CommitDoesNotExist(err.msg))
8374                }
8375                "CommitRequiredException" => {
8376                    return RusotoError::Service(GetMergeOptionsError::CommitRequired(err.msg))
8377                }
8378                "EncryptionIntegrityChecksFailedException" => {
8379                    return RusotoError::Service(
8380                        GetMergeOptionsError::EncryptionIntegrityChecksFailed(err.msg),
8381                    )
8382                }
8383                "EncryptionKeyAccessDeniedException" => {
8384                    return RusotoError::Service(GetMergeOptionsError::EncryptionKeyAccessDenied(
8385                        err.msg,
8386                    ))
8387                }
8388                "EncryptionKeyDisabledException" => {
8389                    return RusotoError::Service(GetMergeOptionsError::EncryptionKeyDisabled(
8390                        err.msg,
8391                    ))
8392                }
8393                "EncryptionKeyNotFoundException" => {
8394                    return RusotoError::Service(GetMergeOptionsError::EncryptionKeyNotFound(
8395                        err.msg,
8396                    ))
8397                }
8398                "EncryptionKeyUnavailableException" => {
8399                    return RusotoError::Service(GetMergeOptionsError::EncryptionKeyUnavailable(
8400                        err.msg,
8401                    ))
8402                }
8403                "InvalidCommitException" => {
8404                    return RusotoError::Service(GetMergeOptionsError::InvalidCommit(err.msg))
8405                }
8406                "InvalidConflictDetailLevelException" => {
8407                    return RusotoError::Service(GetMergeOptionsError::InvalidConflictDetailLevel(
8408                        err.msg,
8409                    ))
8410                }
8411                "InvalidConflictResolutionStrategyException" => {
8412                    return RusotoError::Service(
8413                        GetMergeOptionsError::InvalidConflictResolutionStrategy(err.msg),
8414                    )
8415                }
8416                "InvalidRepositoryNameException" => {
8417                    return RusotoError::Service(GetMergeOptionsError::InvalidRepositoryName(
8418                        err.msg,
8419                    ))
8420                }
8421                "MaximumFileContentToLoadExceededException" => {
8422                    return RusotoError::Service(
8423                        GetMergeOptionsError::MaximumFileContentToLoadExceeded(err.msg),
8424                    )
8425                }
8426                "MaximumItemsToCompareExceededException" => {
8427                    return RusotoError::Service(
8428                        GetMergeOptionsError::MaximumItemsToCompareExceeded(err.msg),
8429                    )
8430                }
8431                "RepositoryDoesNotExistException" => {
8432                    return RusotoError::Service(GetMergeOptionsError::RepositoryDoesNotExist(
8433                        err.msg,
8434                    ))
8435                }
8436                "RepositoryNameRequiredException" => {
8437                    return RusotoError::Service(GetMergeOptionsError::RepositoryNameRequired(
8438                        err.msg,
8439                    ))
8440                }
8441                "TipsDivergenceExceededException" => {
8442                    return RusotoError::Service(GetMergeOptionsError::TipsDivergenceExceeded(
8443                        err.msg,
8444                    ))
8445                }
8446                "ValidationException" => return RusotoError::Validation(err.msg),
8447                _ => {}
8448            }
8449        }
8450        RusotoError::Unknown(res)
8451    }
8452}
8453impl fmt::Display for GetMergeOptionsError {
8454    #[allow(unused_variables)]
8455    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8456        match *self {
8457            GetMergeOptionsError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
8458            GetMergeOptionsError::CommitRequired(ref cause) => write!(f, "{}", cause),
8459            GetMergeOptionsError::EncryptionIntegrityChecksFailed(ref cause) => {
8460                write!(f, "{}", cause)
8461            }
8462            GetMergeOptionsError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
8463            GetMergeOptionsError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
8464            GetMergeOptionsError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
8465            GetMergeOptionsError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
8466            GetMergeOptionsError::InvalidCommit(ref cause) => write!(f, "{}", cause),
8467            GetMergeOptionsError::InvalidConflictDetailLevel(ref cause) => write!(f, "{}", cause),
8468            GetMergeOptionsError::InvalidConflictResolutionStrategy(ref cause) => {
8469                write!(f, "{}", cause)
8470            }
8471            GetMergeOptionsError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
8472            GetMergeOptionsError::MaximumFileContentToLoadExceeded(ref cause) => {
8473                write!(f, "{}", cause)
8474            }
8475            GetMergeOptionsError::MaximumItemsToCompareExceeded(ref cause) => {
8476                write!(f, "{}", cause)
8477            }
8478            GetMergeOptionsError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
8479            GetMergeOptionsError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
8480            GetMergeOptionsError::TipsDivergenceExceeded(ref cause) => write!(f, "{}", cause),
8481        }
8482    }
8483}
8484impl Error for GetMergeOptionsError {}
8485/// Errors returned by GetPullRequest
8486#[derive(Debug, PartialEq)]
8487pub enum GetPullRequestError {
8488    /// <p>An encryption integrity check failed.</p>
8489    EncryptionIntegrityChecksFailed(String),
8490    /// <p>An encryption key could not be accessed.</p>
8491    EncryptionKeyAccessDenied(String),
8492    /// <p>The encryption key is disabled.</p>
8493    EncryptionKeyDisabled(String),
8494    /// <p>No encryption key was found.</p>
8495    EncryptionKeyNotFound(String),
8496    /// <p>The encryption key is not available.</p>
8497    EncryptionKeyUnavailable(String),
8498    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
8499    InvalidPullRequestId(String),
8500    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
8501    PullRequestDoesNotExist(String),
8502    /// <p>A pull request ID is required, but none was provided.</p>
8503    PullRequestIdRequired(String),
8504}
8505
8506impl GetPullRequestError {
8507    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetPullRequestError> {
8508        if let Some(err) = proto::json::Error::parse(&res) {
8509            match err.typ.as_str() {
8510                "EncryptionIntegrityChecksFailedException" => {
8511                    return RusotoError::Service(
8512                        GetPullRequestError::EncryptionIntegrityChecksFailed(err.msg),
8513                    )
8514                }
8515                "EncryptionKeyAccessDeniedException" => {
8516                    return RusotoError::Service(GetPullRequestError::EncryptionKeyAccessDenied(
8517                        err.msg,
8518                    ))
8519                }
8520                "EncryptionKeyDisabledException" => {
8521                    return RusotoError::Service(GetPullRequestError::EncryptionKeyDisabled(
8522                        err.msg,
8523                    ))
8524                }
8525                "EncryptionKeyNotFoundException" => {
8526                    return RusotoError::Service(GetPullRequestError::EncryptionKeyNotFound(
8527                        err.msg,
8528                    ))
8529                }
8530                "EncryptionKeyUnavailableException" => {
8531                    return RusotoError::Service(GetPullRequestError::EncryptionKeyUnavailable(
8532                        err.msg,
8533                    ))
8534                }
8535                "InvalidPullRequestIdException" => {
8536                    return RusotoError::Service(GetPullRequestError::InvalidPullRequestId(err.msg))
8537                }
8538                "PullRequestDoesNotExistException" => {
8539                    return RusotoError::Service(GetPullRequestError::PullRequestDoesNotExist(
8540                        err.msg,
8541                    ))
8542                }
8543                "PullRequestIdRequiredException" => {
8544                    return RusotoError::Service(GetPullRequestError::PullRequestIdRequired(
8545                        err.msg,
8546                    ))
8547                }
8548                "ValidationException" => return RusotoError::Validation(err.msg),
8549                _ => {}
8550            }
8551        }
8552        RusotoError::Unknown(res)
8553    }
8554}
8555impl fmt::Display for GetPullRequestError {
8556    #[allow(unused_variables)]
8557    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8558        match *self {
8559            GetPullRequestError::EncryptionIntegrityChecksFailed(ref cause) => {
8560                write!(f, "{}", cause)
8561            }
8562            GetPullRequestError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
8563            GetPullRequestError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
8564            GetPullRequestError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
8565            GetPullRequestError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
8566            GetPullRequestError::InvalidPullRequestId(ref cause) => write!(f, "{}", cause),
8567            GetPullRequestError::PullRequestDoesNotExist(ref cause) => write!(f, "{}", cause),
8568            GetPullRequestError::PullRequestIdRequired(ref cause) => write!(f, "{}", cause),
8569        }
8570    }
8571}
8572impl Error for GetPullRequestError {}
8573/// Errors returned by GetPullRequestApprovalStates
8574#[derive(Debug, PartialEq)]
8575pub enum GetPullRequestApprovalStatesError {
8576    /// <p>An encryption integrity check failed.</p>
8577    EncryptionIntegrityChecksFailed(String),
8578    /// <p>An encryption key could not be accessed.</p>
8579    EncryptionKeyAccessDenied(String),
8580    /// <p>The encryption key is disabled.</p>
8581    EncryptionKeyDisabled(String),
8582    /// <p>No encryption key was found.</p>
8583    EncryptionKeyNotFound(String),
8584    /// <p>The encryption key is not available.</p>
8585    EncryptionKeyUnavailable(String),
8586    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
8587    InvalidPullRequestId(String),
8588    /// <p>The revision ID is not valid. Use GetPullRequest to determine the value.</p>
8589    InvalidRevisionId(String),
8590    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
8591    PullRequestDoesNotExist(String),
8592    /// <p>A pull request ID is required, but none was provided.</p>
8593    PullRequestIdRequired(String),
8594    /// <p>A revision ID is required, but was not provided.</p>
8595    RevisionIdRequired(String),
8596}
8597
8598impl GetPullRequestApprovalStatesError {
8599    pub fn from_response(
8600        res: BufferedHttpResponse,
8601    ) -> RusotoError<GetPullRequestApprovalStatesError> {
8602        if let Some(err) = proto::json::Error::parse(&res) {
8603            match err.typ.as_str() {
8604                "EncryptionIntegrityChecksFailedException" => {
8605                    return RusotoError::Service(
8606                        GetPullRequestApprovalStatesError::EncryptionIntegrityChecksFailed(err.msg),
8607                    )
8608                }
8609                "EncryptionKeyAccessDeniedException" => {
8610                    return RusotoError::Service(
8611                        GetPullRequestApprovalStatesError::EncryptionKeyAccessDenied(err.msg),
8612                    )
8613                }
8614                "EncryptionKeyDisabledException" => {
8615                    return RusotoError::Service(
8616                        GetPullRequestApprovalStatesError::EncryptionKeyDisabled(err.msg),
8617                    )
8618                }
8619                "EncryptionKeyNotFoundException" => {
8620                    return RusotoError::Service(
8621                        GetPullRequestApprovalStatesError::EncryptionKeyNotFound(err.msg),
8622                    )
8623                }
8624                "EncryptionKeyUnavailableException" => {
8625                    return RusotoError::Service(
8626                        GetPullRequestApprovalStatesError::EncryptionKeyUnavailable(err.msg),
8627                    )
8628                }
8629                "InvalidPullRequestIdException" => {
8630                    return RusotoError::Service(
8631                        GetPullRequestApprovalStatesError::InvalidPullRequestId(err.msg),
8632                    )
8633                }
8634                "InvalidRevisionIdException" => {
8635                    return RusotoError::Service(
8636                        GetPullRequestApprovalStatesError::InvalidRevisionId(err.msg),
8637                    )
8638                }
8639                "PullRequestDoesNotExistException" => {
8640                    return RusotoError::Service(
8641                        GetPullRequestApprovalStatesError::PullRequestDoesNotExist(err.msg),
8642                    )
8643                }
8644                "PullRequestIdRequiredException" => {
8645                    return RusotoError::Service(
8646                        GetPullRequestApprovalStatesError::PullRequestIdRequired(err.msg),
8647                    )
8648                }
8649                "RevisionIdRequiredException" => {
8650                    return RusotoError::Service(
8651                        GetPullRequestApprovalStatesError::RevisionIdRequired(err.msg),
8652                    )
8653                }
8654                "ValidationException" => return RusotoError::Validation(err.msg),
8655                _ => {}
8656            }
8657        }
8658        RusotoError::Unknown(res)
8659    }
8660}
8661impl fmt::Display for GetPullRequestApprovalStatesError {
8662    #[allow(unused_variables)]
8663    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8664        match *self {
8665            GetPullRequestApprovalStatesError::EncryptionIntegrityChecksFailed(ref cause) => {
8666                write!(f, "{}", cause)
8667            }
8668            GetPullRequestApprovalStatesError::EncryptionKeyAccessDenied(ref cause) => {
8669                write!(f, "{}", cause)
8670            }
8671            GetPullRequestApprovalStatesError::EncryptionKeyDisabled(ref cause) => {
8672                write!(f, "{}", cause)
8673            }
8674            GetPullRequestApprovalStatesError::EncryptionKeyNotFound(ref cause) => {
8675                write!(f, "{}", cause)
8676            }
8677            GetPullRequestApprovalStatesError::EncryptionKeyUnavailable(ref cause) => {
8678                write!(f, "{}", cause)
8679            }
8680            GetPullRequestApprovalStatesError::InvalidPullRequestId(ref cause) => {
8681                write!(f, "{}", cause)
8682            }
8683            GetPullRequestApprovalStatesError::InvalidRevisionId(ref cause) => {
8684                write!(f, "{}", cause)
8685            }
8686            GetPullRequestApprovalStatesError::PullRequestDoesNotExist(ref cause) => {
8687                write!(f, "{}", cause)
8688            }
8689            GetPullRequestApprovalStatesError::PullRequestIdRequired(ref cause) => {
8690                write!(f, "{}", cause)
8691            }
8692            GetPullRequestApprovalStatesError::RevisionIdRequired(ref cause) => {
8693                write!(f, "{}", cause)
8694            }
8695        }
8696    }
8697}
8698impl Error for GetPullRequestApprovalStatesError {}
8699/// Errors returned by GetPullRequestOverrideState
8700#[derive(Debug, PartialEq)]
8701pub enum GetPullRequestOverrideStateError {
8702    /// <p>An encryption integrity check failed.</p>
8703    EncryptionIntegrityChecksFailed(String),
8704    /// <p>An encryption key could not be accessed.</p>
8705    EncryptionKeyAccessDenied(String),
8706    /// <p>The encryption key is disabled.</p>
8707    EncryptionKeyDisabled(String),
8708    /// <p>No encryption key was found.</p>
8709    EncryptionKeyNotFound(String),
8710    /// <p>The encryption key is not available.</p>
8711    EncryptionKeyUnavailable(String),
8712    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
8713    InvalidPullRequestId(String),
8714    /// <p>The revision ID is not valid. Use GetPullRequest to determine the value.</p>
8715    InvalidRevisionId(String),
8716    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
8717    PullRequestDoesNotExist(String),
8718    /// <p>A pull request ID is required, but none was provided.</p>
8719    PullRequestIdRequired(String),
8720    /// <p>A revision ID is required, but was not provided.</p>
8721    RevisionIdRequired(String),
8722}
8723
8724impl GetPullRequestOverrideStateError {
8725    pub fn from_response(
8726        res: BufferedHttpResponse,
8727    ) -> RusotoError<GetPullRequestOverrideStateError> {
8728        if let Some(err) = proto::json::Error::parse(&res) {
8729            match err.typ.as_str() {
8730                "EncryptionIntegrityChecksFailedException" => {
8731                    return RusotoError::Service(
8732                        GetPullRequestOverrideStateError::EncryptionIntegrityChecksFailed(err.msg),
8733                    )
8734                }
8735                "EncryptionKeyAccessDeniedException" => {
8736                    return RusotoError::Service(
8737                        GetPullRequestOverrideStateError::EncryptionKeyAccessDenied(err.msg),
8738                    )
8739                }
8740                "EncryptionKeyDisabledException" => {
8741                    return RusotoError::Service(
8742                        GetPullRequestOverrideStateError::EncryptionKeyDisabled(err.msg),
8743                    )
8744                }
8745                "EncryptionKeyNotFoundException" => {
8746                    return RusotoError::Service(
8747                        GetPullRequestOverrideStateError::EncryptionKeyNotFound(err.msg),
8748                    )
8749                }
8750                "EncryptionKeyUnavailableException" => {
8751                    return RusotoError::Service(
8752                        GetPullRequestOverrideStateError::EncryptionKeyUnavailable(err.msg),
8753                    )
8754                }
8755                "InvalidPullRequestIdException" => {
8756                    return RusotoError::Service(
8757                        GetPullRequestOverrideStateError::InvalidPullRequestId(err.msg),
8758                    )
8759                }
8760                "InvalidRevisionIdException" => {
8761                    return RusotoError::Service(
8762                        GetPullRequestOverrideStateError::InvalidRevisionId(err.msg),
8763                    )
8764                }
8765                "PullRequestDoesNotExistException" => {
8766                    return RusotoError::Service(
8767                        GetPullRequestOverrideStateError::PullRequestDoesNotExist(err.msg),
8768                    )
8769                }
8770                "PullRequestIdRequiredException" => {
8771                    return RusotoError::Service(
8772                        GetPullRequestOverrideStateError::PullRequestIdRequired(err.msg),
8773                    )
8774                }
8775                "RevisionIdRequiredException" => {
8776                    return RusotoError::Service(
8777                        GetPullRequestOverrideStateError::RevisionIdRequired(err.msg),
8778                    )
8779                }
8780                "ValidationException" => return RusotoError::Validation(err.msg),
8781                _ => {}
8782            }
8783        }
8784        RusotoError::Unknown(res)
8785    }
8786}
8787impl fmt::Display for GetPullRequestOverrideStateError {
8788    #[allow(unused_variables)]
8789    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8790        match *self {
8791            GetPullRequestOverrideStateError::EncryptionIntegrityChecksFailed(ref cause) => {
8792                write!(f, "{}", cause)
8793            }
8794            GetPullRequestOverrideStateError::EncryptionKeyAccessDenied(ref cause) => {
8795                write!(f, "{}", cause)
8796            }
8797            GetPullRequestOverrideStateError::EncryptionKeyDisabled(ref cause) => {
8798                write!(f, "{}", cause)
8799            }
8800            GetPullRequestOverrideStateError::EncryptionKeyNotFound(ref cause) => {
8801                write!(f, "{}", cause)
8802            }
8803            GetPullRequestOverrideStateError::EncryptionKeyUnavailable(ref cause) => {
8804                write!(f, "{}", cause)
8805            }
8806            GetPullRequestOverrideStateError::InvalidPullRequestId(ref cause) => {
8807                write!(f, "{}", cause)
8808            }
8809            GetPullRequestOverrideStateError::InvalidRevisionId(ref cause) => {
8810                write!(f, "{}", cause)
8811            }
8812            GetPullRequestOverrideStateError::PullRequestDoesNotExist(ref cause) => {
8813                write!(f, "{}", cause)
8814            }
8815            GetPullRequestOverrideStateError::PullRequestIdRequired(ref cause) => {
8816                write!(f, "{}", cause)
8817            }
8818            GetPullRequestOverrideStateError::RevisionIdRequired(ref cause) => {
8819                write!(f, "{}", cause)
8820            }
8821        }
8822    }
8823}
8824impl Error for GetPullRequestOverrideStateError {}
8825/// Errors returned by GetRepository
8826#[derive(Debug, PartialEq)]
8827pub enum GetRepositoryError {
8828    /// <p>An encryption integrity check failed.</p>
8829    EncryptionIntegrityChecksFailed(String),
8830    /// <p>An encryption key could not be accessed.</p>
8831    EncryptionKeyAccessDenied(String),
8832    /// <p>The encryption key is disabled.</p>
8833    EncryptionKeyDisabled(String),
8834    /// <p>No encryption key was found.</p>
8835    EncryptionKeyNotFound(String),
8836    /// <p>The encryption key is not available.</p>
8837    EncryptionKeyUnavailable(String),
8838    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
8839    InvalidRepositoryName(String),
8840    /// <p>The specified repository does not exist.</p>
8841    RepositoryDoesNotExist(String),
8842    /// <p>A repository name is required, but was not specified.</p>
8843    RepositoryNameRequired(String),
8844}
8845
8846impl GetRepositoryError {
8847    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetRepositoryError> {
8848        if let Some(err) = proto::json::Error::parse(&res) {
8849            match err.typ.as_str() {
8850                "EncryptionIntegrityChecksFailedException" => {
8851                    return RusotoError::Service(
8852                        GetRepositoryError::EncryptionIntegrityChecksFailed(err.msg),
8853                    )
8854                }
8855                "EncryptionKeyAccessDeniedException" => {
8856                    return RusotoError::Service(GetRepositoryError::EncryptionKeyAccessDenied(
8857                        err.msg,
8858                    ))
8859                }
8860                "EncryptionKeyDisabledException" => {
8861                    return RusotoError::Service(GetRepositoryError::EncryptionKeyDisabled(err.msg))
8862                }
8863                "EncryptionKeyNotFoundException" => {
8864                    return RusotoError::Service(GetRepositoryError::EncryptionKeyNotFound(err.msg))
8865                }
8866                "EncryptionKeyUnavailableException" => {
8867                    return RusotoError::Service(GetRepositoryError::EncryptionKeyUnavailable(
8868                        err.msg,
8869                    ))
8870                }
8871                "InvalidRepositoryNameException" => {
8872                    return RusotoError::Service(GetRepositoryError::InvalidRepositoryName(err.msg))
8873                }
8874                "RepositoryDoesNotExistException" => {
8875                    return RusotoError::Service(GetRepositoryError::RepositoryDoesNotExist(
8876                        err.msg,
8877                    ))
8878                }
8879                "RepositoryNameRequiredException" => {
8880                    return RusotoError::Service(GetRepositoryError::RepositoryNameRequired(
8881                        err.msg,
8882                    ))
8883                }
8884                "ValidationException" => return RusotoError::Validation(err.msg),
8885                _ => {}
8886            }
8887        }
8888        RusotoError::Unknown(res)
8889    }
8890}
8891impl fmt::Display for GetRepositoryError {
8892    #[allow(unused_variables)]
8893    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8894        match *self {
8895            GetRepositoryError::EncryptionIntegrityChecksFailed(ref cause) => {
8896                write!(f, "{}", cause)
8897            }
8898            GetRepositoryError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
8899            GetRepositoryError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
8900            GetRepositoryError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
8901            GetRepositoryError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
8902            GetRepositoryError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
8903            GetRepositoryError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
8904            GetRepositoryError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
8905        }
8906    }
8907}
8908impl Error for GetRepositoryError {}
8909/// Errors returned by GetRepositoryTriggers
8910#[derive(Debug, PartialEq)]
8911pub enum GetRepositoryTriggersError {
8912    /// <p>An encryption integrity check failed.</p>
8913    EncryptionIntegrityChecksFailed(String),
8914    /// <p>An encryption key could not be accessed.</p>
8915    EncryptionKeyAccessDenied(String),
8916    /// <p>The encryption key is disabled.</p>
8917    EncryptionKeyDisabled(String),
8918    /// <p>No encryption key was found.</p>
8919    EncryptionKeyNotFound(String),
8920    /// <p>The encryption key is not available.</p>
8921    EncryptionKeyUnavailable(String),
8922    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
8923    InvalidRepositoryName(String),
8924    /// <p>The specified repository does not exist.</p>
8925    RepositoryDoesNotExist(String),
8926    /// <p>A repository name is required, but was not specified.</p>
8927    RepositoryNameRequired(String),
8928}
8929
8930impl GetRepositoryTriggersError {
8931    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetRepositoryTriggersError> {
8932        if let Some(err) = proto::json::Error::parse(&res) {
8933            match err.typ.as_str() {
8934                "EncryptionIntegrityChecksFailedException" => {
8935                    return RusotoError::Service(
8936                        GetRepositoryTriggersError::EncryptionIntegrityChecksFailed(err.msg),
8937                    )
8938                }
8939                "EncryptionKeyAccessDeniedException" => {
8940                    return RusotoError::Service(
8941                        GetRepositoryTriggersError::EncryptionKeyAccessDenied(err.msg),
8942                    )
8943                }
8944                "EncryptionKeyDisabledException" => {
8945                    return RusotoError::Service(GetRepositoryTriggersError::EncryptionKeyDisabled(
8946                        err.msg,
8947                    ))
8948                }
8949                "EncryptionKeyNotFoundException" => {
8950                    return RusotoError::Service(GetRepositoryTriggersError::EncryptionKeyNotFound(
8951                        err.msg,
8952                    ))
8953                }
8954                "EncryptionKeyUnavailableException" => {
8955                    return RusotoError::Service(
8956                        GetRepositoryTriggersError::EncryptionKeyUnavailable(err.msg),
8957                    )
8958                }
8959                "InvalidRepositoryNameException" => {
8960                    return RusotoError::Service(GetRepositoryTriggersError::InvalidRepositoryName(
8961                        err.msg,
8962                    ))
8963                }
8964                "RepositoryDoesNotExistException" => {
8965                    return RusotoError::Service(
8966                        GetRepositoryTriggersError::RepositoryDoesNotExist(err.msg),
8967                    )
8968                }
8969                "RepositoryNameRequiredException" => {
8970                    return RusotoError::Service(
8971                        GetRepositoryTriggersError::RepositoryNameRequired(err.msg),
8972                    )
8973                }
8974                "ValidationException" => return RusotoError::Validation(err.msg),
8975                _ => {}
8976            }
8977        }
8978        RusotoError::Unknown(res)
8979    }
8980}
8981impl fmt::Display for GetRepositoryTriggersError {
8982    #[allow(unused_variables)]
8983    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
8984        match *self {
8985            GetRepositoryTriggersError::EncryptionIntegrityChecksFailed(ref cause) => {
8986                write!(f, "{}", cause)
8987            }
8988            GetRepositoryTriggersError::EncryptionKeyAccessDenied(ref cause) => {
8989                write!(f, "{}", cause)
8990            }
8991            GetRepositoryTriggersError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
8992            GetRepositoryTriggersError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
8993            GetRepositoryTriggersError::EncryptionKeyUnavailable(ref cause) => {
8994                write!(f, "{}", cause)
8995            }
8996            GetRepositoryTriggersError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
8997            GetRepositoryTriggersError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
8998            GetRepositoryTriggersError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
8999        }
9000    }
9001}
9002impl Error for GetRepositoryTriggersError {}
9003/// Errors returned by ListApprovalRuleTemplates
9004#[derive(Debug, PartialEq)]
9005pub enum ListApprovalRuleTemplatesError {
9006    /// <p>The specified continuation token is not valid.</p>
9007    InvalidContinuationToken(String),
9008    /// <p>The specified number of maximum results is not valid.</p>
9009    InvalidMaxResults(String),
9010}
9011
9012impl ListApprovalRuleTemplatesError {
9013    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListApprovalRuleTemplatesError> {
9014        if let Some(err) = proto::json::Error::parse(&res) {
9015            match err.typ.as_str() {
9016                "InvalidContinuationTokenException" => {
9017                    return RusotoError::Service(
9018                        ListApprovalRuleTemplatesError::InvalidContinuationToken(err.msg),
9019                    )
9020                }
9021                "InvalidMaxResultsException" => {
9022                    return RusotoError::Service(ListApprovalRuleTemplatesError::InvalidMaxResults(
9023                        err.msg,
9024                    ))
9025                }
9026                "ValidationException" => return RusotoError::Validation(err.msg),
9027                _ => {}
9028            }
9029        }
9030        RusotoError::Unknown(res)
9031    }
9032}
9033impl fmt::Display for ListApprovalRuleTemplatesError {
9034    #[allow(unused_variables)]
9035    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9036        match *self {
9037            ListApprovalRuleTemplatesError::InvalidContinuationToken(ref cause) => {
9038                write!(f, "{}", cause)
9039            }
9040            ListApprovalRuleTemplatesError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
9041        }
9042    }
9043}
9044impl Error for ListApprovalRuleTemplatesError {}
9045/// Errors returned by ListAssociatedApprovalRuleTemplatesForRepository
9046#[derive(Debug, PartialEq)]
9047pub enum ListAssociatedApprovalRuleTemplatesForRepositoryError {
9048    /// <p>An encryption integrity check failed.</p>
9049    EncryptionIntegrityChecksFailed(String),
9050    /// <p>An encryption key could not be accessed.</p>
9051    EncryptionKeyAccessDenied(String),
9052    /// <p>The encryption key is disabled.</p>
9053    EncryptionKeyDisabled(String),
9054    /// <p>No encryption key was found.</p>
9055    EncryptionKeyNotFound(String),
9056    /// <p>The encryption key is not available.</p>
9057    EncryptionKeyUnavailable(String),
9058    /// <p>The specified continuation token is not valid.</p>
9059    InvalidContinuationToken(String),
9060    /// <p>The specified number of maximum results is not valid.</p>
9061    InvalidMaxResults(String),
9062    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
9063    InvalidRepositoryName(String),
9064    /// <p>The specified repository does not exist.</p>
9065    RepositoryDoesNotExist(String),
9066    /// <p>A repository name is required, but was not specified.</p>
9067    RepositoryNameRequired(String),
9068}
9069
9070impl ListAssociatedApprovalRuleTemplatesForRepositoryError {
9071    pub fn from_response(
9072        res: BufferedHttpResponse,
9073    ) -> RusotoError<ListAssociatedApprovalRuleTemplatesForRepositoryError> {
9074        if let Some(err) = proto::json::Error::parse(&res) {
9075            match err.typ.as_str() {
9076                                "EncryptionIntegrityChecksFailedException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionIntegrityChecksFailed(err.msg)),
9077"EncryptionKeyAccessDeniedException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyAccessDenied(err.msg)),
9078"EncryptionKeyDisabledException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyDisabled(err.msg)),
9079"EncryptionKeyNotFoundException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyNotFound(err.msg)),
9080"EncryptionKeyUnavailableException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyUnavailable(err.msg)),
9081"InvalidContinuationTokenException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::InvalidContinuationToken(err.msg)),
9082"InvalidMaxResultsException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::InvalidMaxResults(err.msg)),
9083"InvalidRepositoryNameException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::InvalidRepositoryName(err.msg)),
9084"RepositoryDoesNotExistException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::RepositoryDoesNotExist(err.msg)),
9085"RepositoryNameRequiredException" => return RusotoError::Service(ListAssociatedApprovalRuleTemplatesForRepositoryError::RepositoryNameRequired(err.msg)),
9086"ValidationException" => return RusotoError::Validation(err.msg),
9087_ => {}
9088                            }
9089        }
9090        RusotoError::Unknown(res)
9091    }
9092}
9093impl fmt::Display for ListAssociatedApprovalRuleTemplatesForRepositoryError {
9094    #[allow(unused_variables)]
9095    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9096        match *self {
9097                            ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
9098ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
9099ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
9100ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
9101ListAssociatedApprovalRuleTemplatesForRepositoryError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
9102ListAssociatedApprovalRuleTemplatesForRepositoryError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
9103ListAssociatedApprovalRuleTemplatesForRepositoryError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
9104ListAssociatedApprovalRuleTemplatesForRepositoryError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
9105ListAssociatedApprovalRuleTemplatesForRepositoryError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
9106ListAssociatedApprovalRuleTemplatesForRepositoryError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause)
9107                        }
9108    }
9109}
9110impl Error for ListAssociatedApprovalRuleTemplatesForRepositoryError {}
9111/// Errors returned by ListBranches
9112#[derive(Debug, PartialEq)]
9113pub enum ListBranchesError {
9114    /// <p>An encryption integrity check failed.</p>
9115    EncryptionIntegrityChecksFailed(String),
9116    /// <p>An encryption key could not be accessed.</p>
9117    EncryptionKeyAccessDenied(String),
9118    /// <p>The encryption key is disabled.</p>
9119    EncryptionKeyDisabled(String),
9120    /// <p>No encryption key was found.</p>
9121    EncryptionKeyNotFound(String),
9122    /// <p>The encryption key is not available.</p>
9123    EncryptionKeyUnavailable(String),
9124    /// <p>The specified continuation token is not valid.</p>
9125    InvalidContinuationToken(String),
9126    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
9127    InvalidRepositoryName(String),
9128    /// <p>The specified repository does not exist.</p>
9129    RepositoryDoesNotExist(String),
9130    /// <p>A repository name is required, but was not specified.</p>
9131    RepositoryNameRequired(String),
9132}
9133
9134impl ListBranchesError {
9135    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListBranchesError> {
9136        if let Some(err) = proto::json::Error::parse(&res) {
9137            match err.typ.as_str() {
9138                "EncryptionIntegrityChecksFailedException" => {
9139                    return RusotoError::Service(
9140                        ListBranchesError::EncryptionIntegrityChecksFailed(err.msg),
9141                    )
9142                }
9143                "EncryptionKeyAccessDeniedException" => {
9144                    return RusotoError::Service(ListBranchesError::EncryptionKeyAccessDenied(
9145                        err.msg,
9146                    ))
9147                }
9148                "EncryptionKeyDisabledException" => {
9149                    return RusotoError::Service(ListBranchesError::EncryptionKeyDisabled(err.msg))
9150                }
9151                "EncryptionKeyNotFoundException" => {
9152                    return RusotoError::Service(ListBranchesError::EncryptionKeyNotFound(err.msg))
9153                }
9154                "EncryptionKeyUnavailableException" => {
9155                    return RusotoError::Service(ListBranchesError::EncryptionKeyUnavailable(
9156                        err.msg,
9157                    ))
9158                }
9159                "InvalidContinuationTokenException" => {
9160                    return RusotoError::Service(ListBranchesError::InvalidContinuationToken(
9161                        err.msg,
9162                    ))
9163                }
9164                "InvalidRepositoryNameException" => {
9165                    return RusotoError::Service(ListBranchesError::InvalidRepositoryName(err.msg))
9166                }
9167                "RepositoryDoesNotExistException" => {
9168                    return RusotoError::Service(ListBranchesError::RepositoryDoesNotExist(err.msg))
9169                }
9170                "RepositoryNameRequiredException" => {
9171                    return RusotoError::Service(ListBranchesError::RepositoryNameRequired(err.msg))
9172                }
9173                "ValidationException" => return RusotoError::Validation(err.msg),
9174                _ => {}
9175            }
9176        }
9177        RusotoError::Unknown(res)
9178    }
9179}
9180impl fmt::Display for ListBranchesError {
9181    #[allow(unused_variables)]
9182    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9183        match *self {
9184            ListBranchesError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
9185            ListBranchesError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
9186            ListBranchesError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
9187            ListBranchesError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
9188            ListBranchesError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
9189            ListBranchesError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
9190            ListBranchesError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
9191            ListBranchesError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
9192            ListBranchesError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
9193        }
9194    }
9195}
9196impl Error for ListBranchesError {}
9197/// Errors returned by ListPullRequests
9198#[derive(Debug, PartialEq)]
9199pub enum ListPullRequestsError {
9200    /// <p>The specified Amazon Resource Name (ARN) does not exist in the AWS account.</p>
9201    AuthorDoesNotExist(String),
9202    /// <p>An encryption integrity check failed.</p>
9203    EncryptionIntegrityChecksFailed(String),
9204    /// <p>An encryption key could not be accessed.</p>
9205    EncryptionKeyAccessDenied(String),
9206    /// <p>The encryption key is disabled.</p>
9207    EncryptionKeyDisabled(String),
9208    /// <p>No encryption key was found.</p>
9209    EncryptionKeyNotFound(String),
9210    /// <p>The encryption key is not available.</p>
9211    EncryptionKeyUnavailable(String),
9212    /// <p>The Amazon Resource Name (ARN) is not valid. Make sure that you have provided the full ARN for the author of the pull request, and then try again.</p>
9213    InvalidAuthorArn(String),
9214    /// <p>The specified continuation token is not valid.</p>
9215    InvalidContinuationToken(String),
9216    /// <p>The specified number of maximum results is not valid.</p>
9217    InvalidMaxResults(String),
9218    /// <p>The pull request status is not valid. The only valid values are <code>OPEN</code> and <code>CLOSED</code>.</p>
9219    InvalidPullRequestStatus(String),
9220    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
9221    InvalidRepositoryName(String),
9222    /// <p>The specified repository does not exist.</p>
9223    RepositoryDoesNotExist(String),
9224    /// <p>A repository name is required, but was not specified.</p>
9225    RepositoryNameRequired(String),
9226}
9227
9228impl ListPullRequestsError {
9229    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListPullRequestsError> {
9230        if let Some(err) = proto::json::Error::parse(&res) {
9231            match err.typ.as_str() {
9232                "AuthorDoesNotExistException" => {
9233                    return RusotoError::Service(ListPullRequestsError::AuthorDoesNotExist(err.msg))
9234                }
9235                "EncryptionIntegrityChecksFailedException" => {
9236                    return RusotoError::Service(
9237                        ListPullRequestsError::EncryptionIntegrityChecksFailed(err.msg),
9238                    )
9239                }
9240                "EncryptionKeyAccessDeniedException" => {
9241                    return RusotoError::Service(ListPullRequestsError::EncryptionKeyAccessDenied(
9242                        err.msg,
9243                    ))
9244                }
9245                "EncryptionKeyDisabledException" => {
9246                    return RusotoError::Service(ListPullRequestsError::EncryptionKeyDisabled(
9247                        err.msg,
9248                    ))
9249                }
9250                "EncryptionKeyNotFoundException" => {
9251                    return RusotoError::Service(ListPullRequestsError::EncryptionKeyNotFound(
9252                        err.msg,
9253                    ))
9254                }
9255                "EncryptionKeyUnavailableException" => {
9256                    return RusotoError::Service(ListPullRequestsError::EncryptionKeyUnavailable(
9257                        err.msg,
9258                    ))
9259                }
9260                "InvalidAuthorArnException" => {
9261                    return RusotoError::Service(ListPullRequestsError::InvalidAuthorArn(err.msg))
9262                }
9263                "InvalidContinuationTokenException" => {
9264                    return RusotoError::Service(ListPullRequestsError::InvalidContinuationToken(
9265                        err.msg,
9266                    ))
9267                }
9268                "InvalidMaxResultsException" => {
9269                    return RusotoError::Service(ListPullRequestsError::InvalidMaxResults(err.msg))
9270                }
9271                "InvalidPullRequestStatusException" => {
9272                    return RusotoError::Service(ListPullRequestsError::InvalidPullRequestStatus(
9273                        err.msg,
9274                    ))
9275                }
9276                "InvalidRepositoryNameException" => {
9277                    return RusotoError::Service(ListPullRequestsError::InvalidRepositoryName(
9278                        err.msg,
9279                    ))
9280                }
9281                "RepositoryDoesNotExistException" => {
9282                    return RusotoError::Service(ListPullRequestsError::RepositoryDoesNotExist(
9283                        err.msg,
9284                    ))
9285                }
9286                "RepositoryNameRequiredException" => {
9287                    return RusotoError::Service(ListPullRequestsError::RepositoryNameRequired(
9288                        err.msg,
9289                    ))
9290                }
9291                "ValidationException" => return RusotoError::Validation(err.msg),
9292                _ => {}
9293            }
9294        }
9295        RusotoError::Unknown(res)
9296    }
9297}
9298impl fmt::Display for ListPullRequestsError {
9299    #[allow(unused_variables)]
9300    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9301        match *self {
9302            ListPullRequestsError::AuthorDoesNotExist(ref cause) => write!(f, "{}", cause),
9303            ListPullRequestsError::EncryptionIntegrityChecksFailed(ref cause) => {
9304                write!(f, "{}", cause)
9305            }
9306            ListPullRequestsError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
9307            ListPullRequestsError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
9308            ListPullRequestsError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
9309            ListPullRequestsError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
9310            ListPullRequestsError::InvalidAuthorArn(ref cause) => write!(f, "{}", cause),
9311            ListPullRequestsError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
9312            ListPullRequestsError::InvalidMaxResults(ref cause) => write!(f, "{}", cause),
9313            ListPullRequestsError::InvalidPullRequestStatus(ref cause) => write!(f, "{}", cause),
9314            ListPullRequestsError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
9315            ListPullRequestsError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
9316            ListPullRequestsError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
9317        }
9318    }
9319}
9320impl Error for ListPullRequestsError {}
9321/// Errors returned by ListRepositories
9322#[derive(Debug, PartialEq)]
9323pub enum ListRepositoriesError {
9324    /// <p>The specified continuation token is not valid.</p>
9325    InvalidContinuationToken(String),
9326    /// <p>The specified sort order is not valid.</p>
9327    InvalidOrder(String),
9328    /// <p>The specified sort by value is not valid.</p>
9329    InvalidSortBy(String),
9330}
9331
9332impl ListRepositoriesError {
9333    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListRepositoriesError> {
9334        if let Some(err) = proto::json::Error::parse(&res) {
9335            match err.typ.as_str() {
9336                "InvalidContinuationTokenException" => {
9337                    return RusotoError::Service(ListRepositoriesError::InvalidContinuationToken(
9338                        err.msg,
9339                    ))
9340                }
9341                "InvalidOrderException" => {
9342                    return RusotoError::Service(ListRepositoriesError::InvalidOrder(err.msg))
9343                }
9344                "InvalidSortByException" => {
9345                    return RusotoError::Service(ListRepositoriesError::InvalidSortBy(err.msg))
9346                }
9347                "ValidationException" => return RusotoError::Validation(err.msg),
9348                _ => {}
9349            }
9350        }
9351        RusotoError::Unknown(res)
9352    }
9353}
9354impl fmt::Display for ListRepositoriesError {
9355    #[allow(unused_variables)]
9356    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9357        match *self {
9358            ListRepositoriesError::InvalidContinuationToken(ref cause) => write!(f, "{}", cause),
9359            ListRepositoriesError::InvalidOrder(ref cause) => write!(f, "{}", cause),
9360            ListRepositoriesError::InvalidSortBy(ref cause) => write!(f, "{}", cause),
9361        }
9362    }
9363}
9364impl Error for ListRepositoriesError {}
9365/// Errors returned by ListRepositoriesForApprovalRuleTemplate
9366#[derive(Debug, PartialEq)]
9367pub enum ListRepositoriesForApprovalRuleTemplateError {
9368    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
9369    ApprovalRuleTemplateDoesNotExist(String),
9370    /// <p>An approval rule template name is required, but was not specified.</p>
9371    ApprovalRuleTemplateNameRequired(String),
9372    /// <p>An encryption integrity check failed.</p>
9373    EncryptionIntegrityChecksFailed(String),
9374    /// <p>An encryption key could not be accessed.</p>
9375    EncryptionKeyAccessDenied(String),
9376    /// <p>The encryption key is disabled.</p>
9377    EncryptionKeyDisabled(String),
9378    /// <p>No encryption key was found.</p>
9379    EncryptionKeyNotFound(String),
9380    /// <p>The encryption key is not available.</p>
9381    EncryptionKeyUnavailable(String),
9382    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
9383    InvalidApprovalRuleTemplateName(String),
9384    /// <p>The specified continuation token is not valid.</p>
9385    InvalidContinuationToken(String),
9386    /// <p>The specified number of maximum results is not valid.</p>
9387    InvalidMaxResults(String),
9388}
9389
9390impl ListRepositoriesForApprovalRuleTemplateError {
9391    pub fn from_response(
9392        res: BufferedHttpResponse,
9393    ) -> RusotoError<ListRepositoriesForApprovalRuleTemplateError> {
9394        if let Some(err) = proto::json::Error::parse(&res) {
9395            match err.typ.as_str() {
9396                "ApprovalRuleTemplateDoesNotExistException" => return RusotoError::Service(
9397                    ListRepositoriesForApprovalRuleTemplateError::ApprovalRuleTemplateDoesNotExist(
9398                        err.msg,
9399                    ),
9400                ),
9401                "ApprovalRuleTemplateNameRequiredException" => return RusotoError::Service(
9402                    ListRepositoriesForApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(
9403                        err.msg,
9404                    ),
9405                ),
9406                "EncryptionIntegrityChecksFailedException" => return RusotoError::Service(
9407                    ListRepositoriesForApprovalRuleTemplateError::EncryptionIntegrityChecksFailed(
9408                        err.msg,
9409                    ),
9410                ),
9411                "EncryptionKeyAccessDeniedException" => {
9412                    return RusotoError::Service(
9413                        ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyAccessDenied(
9414                            err.msg,
9415                        ),
9416                    )
9417                }
9418                "EncryptionKeyDisabledException" => {
9419                    return RusotoError::Service(
9420                        ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyDisabled(
9421                            err.msg,
9422                        ),
9423                    )
9424                }
9425                "EncryptionKeyNotFoundException" => {
9426                    return RusotoError::Service(
9427                        ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyNotFound(
9428                            err.msg,
9429                        ),
9430                    )
9431                }
9432                "EncryptionKeyUnavailableException" => {
9433                    return RusotoError::Service(
9434                        ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyUnavailable(
9435                            err.msg,
9436                        ),
9437                    )
9438                }
9439                "InvalidApprovalRuleTemplateNameException" => return RusotoError::Service(
9440                    ListRepositoriesForApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(
9441                        err.msg,
9442                    ),
9443                ),
9444                "InvalidContinuationTokenException" => {
9445                    return RusotoError::Service(
9446                        ListRepositoriesForApprovalRuleTemplateError::InvalidContinuationToken(
9447                            err.msg,
9448                        ),
9449                    )
9450                }
9451                "InvalidMaxResultsException" => {
9452                    return RusotoError::Service(
9453                        ListRepositoriesForApprovalRuleTemplateError::InvalidMaxResults(err.msg),
9454                    )
9455                }
9456                "ValidationException" => return RusotoError::Validation(err.msg),
9457                _ => {}
9458            }
9459        }
9460        RusotoError::Unknown(res)
9461    }
9462}
9463impl fmt::Display for ListRepositoriesForApprovalRuleTemplateError {
9464    #[allow(unused_variables)]
9465    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9466        match *self {
9467            ListRepositoriesForApprovalRuleTemplateError::ApprovalRuleTemplateDoesNotExist(
9468                ref cause,
9469            ) => write!(f, "{}", cause),
9470            ListRepositoriesForApprovalRuleTemplateError::ApprovalRuleTemplateNameRequired(
9471                ref cause,
9472            ) => write!(f, "{}", cause),
9473            ListRepositoriesForApprovalRuleTemplateError::EncryptionIntegrityChecksFailed(
9474                ref cause,
9475            ) => write!(f, "{}", cause),
9476            ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyAccessDenied(ref cause) => {
9477                write!(f, "{}", cause)
9478            }
9479            ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyDisabled(ref cause) => {
9480                write!(f, "{}", cause)
9481            }
9482            ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyNotFound(ref cause) => {
9483                write!(f, "{}", cause)
9484            }
9485            ListRepositoriesForApprovalRuleTemplateError::EncryptionKeyUnavailable(ref cause) => {
9486                write!(f, "{}", cause)
9487            }
9488            ListRepositoriesForApprovalRuleTemplateError::InvalidApprovalRuleTemplateName(
9489                ref cause,
9490            ) => write!(f, "{}", cause),
9491            ListRepositoriesForApprovalRuleTemplateError::InvalidContinuationToken(ref cause) => {
9492                write!(f, "{}", cause)
9493            }
9494            ListRepositoriesForApprovalRuleTemplateError::InvalidMaxResults(ref cause) => {
9495                write!(f, "{}", cause)
9496            }
9497        }
9498    }
9499}
9500impl Error for ListRepositoriesForApprovalRuleTemplateError {}
9501/// Errors returned by ListTagsForResource
9502#[derive(Debug, PartialEq)]
9503pub enum ListTagsForResourceError {
9504    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
9505    InvalidRepositoryName(String),
9506    /// <p>The value for the resource ARN is not valid. For more information about resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the AWS CodeCommit User Guide.</p>
9507    InvalidResourceArn(String),
9508    /// <p>The specified repository does not exist.</p>
9509    RepositoryDoesNotExist(String),
9510    /// <p>A valid Amazon Resource Name (ARN) for an AWS CodeCommit resource is required. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the AWS CodeCommit User Guide.</p>
9511    ResourceArnRequired(String),
9512}
9513
9514impl ListTagsForResourceError {
9515    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListTagsForResourceError> {
9516        if let Some(err) = proto::json::Error::parse(&res) {
9517            match err.typ.as_str() {
9518                "InvalidRepositoryNameException" => {
9519                    return RusotoError::Service(ListTagsForResourceError::InvalidRepositoryName(
9520                        err.msg,
9521                    ))
9522                }
9523                "InvalidResourceArnException" => {
9524                    return RusotoError::Service(ListTagsForResourceError::InvalidResourceArn(
9525                        err.msg,
9526                    ))
9527                }
9528                "RepositoryDoesNotExistException" => {
9529                    return RusotoError::Service(ListTagsForResourceError::RepositoryDoesNotExist(
9530                        err.msg,
9531                    ))
9532                }
9533                "ResourceArnRequiredException" => {
9534                    return RusotoError::Service(ListTagsForResourceError::ResourceArnRequired(
9535                        err.msg,
9536                    ))
9537                }
9538                "ValidationException" => return RusotoError::Validation(err.msg),
9539                _ => {}
9540            }
9541        }
9542        RusotoError::Unknown(res)
9543    }
9544}
9545impl fmt::Display for ListTagsForResourceError {
9546    #[allow(unused_variables)]
9547    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9548        match *self {
9549            ListTagsForResourceError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
9550            ListTagsForResourceError::InvalidResourceArn(ref cause) => write!(f, "{}", cause),
9551            ListTagsForResourceError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
9552            ListTagsForResourceError::ResourceArnRequired(ref cause) => write!(f, "{}", cause),
9553        }
9554    }
9555}
9556impl Error for ListTagsForResourceError {}
9557/// Errors returned by MergeBranchesByFastForward
9558#[derive(Debug, PartialEq)]
9559pub enum MergeBranchesByFastForwardError {
9560    /// <p>The specified branch does not exist.</p>
9561    BranchDoesNotExist(String),
9562    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <a>ListBranches</a>.</p>
9563    BranchNameIsTagName(String),
9564    /// <p>A branch name is required, but was not specified.</p>
9565    BranchNameRequired(String),
9566    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
9567    CommitDoesNotExist(String),
9568    /// <p>A commit was not specified.</p>
9569    CommitRequired(String),
9570    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
9571    ConcurrentReferenceUpdate(String),
9572    /// <p>An encryption integrity check failed.</p>
9573    EncryptionIntegrityChecksFailed(String),
9574    /// <p>An encryption key could not be accessed.</p>
9575    EncryptionKeyAccessDenied(String),
9576    /// <p>The encryption key is disabled.</p>
9577    EncryptionKeyDisabled(String),
9578    /// <p>No encryption key was found.</p>
9579    EncryptionKeyNotFound(String),
9580    /// <p>The encryption key is not available.</p>
9581    EncryptionKeyUnavailable(String),
9582    /// <p>The specified reference name is not valid.</p>
9583    InvalidBranchName(String),
9584    /// <p>The specified commit is not valid.</p>
9585    InvalidCommit(String),
9586    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
9587    InvalidRepositoryName(String),
9588    /// <p>The specified target branch is not valid.</p>
9589    InvalidTargetBranch(String),
9590    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
9591    ManualMergeRequired(String),
9592    /// <p>The specified repository does not exist.</p>
9593    RepositoryDoesNotExist(String),
9594    /// <p>A repository name is required, but was not specified.</p>
9595    RepositoryNameRequired(String),
9596    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
9597    TipsDivergenceExceeded(String),
9598}
9599
9600impl MergeBranchesByFastForwardError {
9601    pub fn from_response(
9602        res: BufferedHttpResponse,
9603    ) -> RusotoError<MergeBranchesByFastForwardError> {
9604        if let Some(err) = proto::json::Error::parse(&res) {
9605            match err.typ.as_str() {
9606                "BranchDoesNotExistException" => {
9607                    return RusotoError::Service(
9608                        MergeBranchesByFastForwardError::BranchDoesNotExist(err.msg),
9609                    )
9610                }
9611                "BranchNameIsTagNameException" => {
9612                    return RusotoError::Service(
9613                        MergeBranchesByFastForwardError::BranchNameIsTagName(err.msg),
9614                    )
9615                }
9616                "BranchNameRequiredException" => {
9617                    return RusotoError::Service(
9618                        MergeBranchesByFastForwardError::BranchNameRequired(err.msg),
9619                    )
9620                }
9621                "CommitDoesNotExistException" => {
9622                    return RusotoError::Service(
9623                        MergeBranchesByFastForwardError::CommitDoesNotExist(err.msg),
9624                    )
9625                }
9626                "CommitRequiredException" => {
9627                    return RusotoError::Service(MergeBranchesByFastForwardError::CommitRequired(
9628                        err.msg,
9629                    ))
9630                }
9631                "ConcurrentReferenceUpdateException" => {
9632                    return RusotoError::Service(
9633                        MergeBranchesByFastForwardError::ConcurrentReferenceUpdate(err.msg),
9634                    )
9635                }
9636                "EncryptionIntegrityChecksFailedException" => {
9637                    return RusotoError::Service(
9638                        MergeBranchesByFastForwardError::EncryptionIntegrityChecksFailed(err.msg),
9639                    )
9640                }
9641                "EncryptionKeyAccessDeniedException" => {
9642                    return RusotoError::Service(
9643                        MergeBranchesByFastForwardError::EncryptionKeyAccessDenied(err.msg),
9644                    )
9645                }
9646                "EncryptionKeyDisabledException" => {
9647                    return RusotoError::Service(
9648                        MergeBranchesByFastForwardError::EncryptionKeyDisabled(err.msg),
9649                    )
9650                }
9651                "EncryptionKeyNotFoundException" => {
9652                    return RusotoError::Service(
9653                        MergeBranchesByFastForwardError::EncryptionKeyNotFound(err.msg),
9654                    )
9655                }
9656                "EncryptionKeyUnavailableException" => {
9657                    return RusotoError::Service(
9658                        MergeBranchesByFastForwardError::EncryptionKeyUnavailable(err.msg),
9659                    )
9660                }
9661                "InvalidBranchNameException" => {
9662                    return RusotoError::Service(
9663                        MergeBranchesByFastForwardError::InvalidBranchName(err.msg),
9664                    )
9665                }
9666                "InvalidCommitException" => {
9667                    return RusotoError::Service(MergeBranchesByFastForwardError::InvalidCommit(
9668                        err.msg,
9669                    ))
9670                }
9671                "InvalidRepositoryNameException" => {
9672                    return RusotoError::Service(
9673                        MergeBranchesByFastForwardError::InvalidRepositoryName(err.msg),
9674                    )
9675                }
9676                "InvalidTargetBranchException" => {
9677                    return RusotoError::Service(
9678                        MergeBranchesByFastForwardError::InvalidTargetBranch(err.msg),
9679                    )
9680                }
9681                "ManualMergeRequiredException" => {
9682                    return RusotoError::Service(
9683                        MergeBranchesByFastForwardError::ManualMergeRequired(err.msg),
9684                    )
9685                }
9686                "RepositoryDoesNotExistException" => {
9687                    return RusotoError::Service(
9688                        MergeBranchesByFastForwardError::RepositoryDoesNotExist(err.msg),
9689                    )
9690                }
9691                "RepositoryNameRequiredException" => {
9692                    return RusotoError::Service(
9693                        MergeBranchesByFastForwardError::RepositoryNameRequired(err.msg),
9694                    )
9695                }
9696                "TipsDivergenceExceededException" => {
9697                    return RusotoError::Service(
9698                        MergeBranchesByFastForwardError::TipsDivergenceExceeded(err.msg),
9699                    )
9700                }
9701                "ValidationException" => return RusotoError::Validation(err.msg),
9702                _ => {}
9703            }
9704        }
9705        RusotoError::Unknown(res)
9706    }
9707}
9708impl fmt::Display for MergeBranchesByFastForwardError {
9709    #[allow(unused_variables)]
9710    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
9711        match *self {
9712            MergeBranchesByFastForwardError::BranchDoesNotExist(ref cause) => {
9713                write!(f, "{}", cause)
9714            }
9715            MergeBranchesByFastForwardError::BranchNameIsTagName(ref cause) => {
9716                write!(f, "{}", cause)
9717            }
9718            MergeBranchesByFastForwardError::BranchNameRequired(ref cause) => {
9719                write!(f, "{}", cause)
9720            }
9721            MergeBranchesByFastForwardError::CommitDoesNotExist(ref cause) => {
9722                write!(f, "{}", cause)
9723            }
9724            MergeBranchesByFastForwardError::CommitRequired(ref cause) => write!(f, "{}", cause),
9725            MergeBranchesByFastForwardError::ConcurrentReferenceUpdate(ref cause) => {
9726                write!(f, "{}", cause)
9727            }
9728            MergeBranchesByFastForwardError::EncryptionIntegrityChecksFailed(ref cause) => {
9729                write!(f, "{}", cause)
9730            }
9731            MergeBranchesByFastForwardError::EncryptionKeyAccessDenied(ref cause) => {
9732                write!(f, "{}", cause)
9733            }
9734            MergeBranchesByFastForwardError::EncryptionKeyDisabled(ref cause) => {
9735                write!(f, "{}", cause)
9736            }
9737            MergeBranchesByFastForwardError::EncryptionKeyNotFound(ref cause) => {
9738                write!(f, "{}", cause)
9739            }
9740            MergeBranchesByFastForwardError::EncryptionKeyUnavailable(ref cause) => {
9741                write!(f, "{}", cause)
9742            }
9743            MergeBranchesByFastForwardError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
9744            MergeBranchesByFastForwardError::InvalidCommit(ref cause) => write!(f, "{}", cause),
9745            MergeBranchesByFastForwardError::InvalidRepositoryName(ref cause) => {
9746                write!(f, "{}", cause)
9747            }
9748            MergeBranchesByFastForwardError::InvalidTargetBranch(ref cause) => {
9749                write!(f, "{}", cause)
9750            }
9751            MergeBranchesByFastForwardError::ManualMergeRequired(ref cause) => {
9752                write!(f, "{}", cause)
9753            }
9754            MergeBranchesByFastForwardError::RepositoryDoesNotExist(ref cause) => {
9755                write!(f, "{}", cause)
9756            }
9757            MergeBranchesByFastForwardError::RepositoryNameRequired(ref cause) => {
9758                write!(f, "{}", cause)
9759            }
9760            MergeBranchesByFastForwardError::TipsDivergenceExceeded(ref cause) => {
9761                write!(f, "{}", cause)
9762            }
9763        }
9764    }
9765}
9766impl Error for MergeBranchesByFastForwardError {}
9767/// Errors returned by MergeBranchesBySquash
9768#[derive(Debug, PartialEq)]
9769pub enum MergeBranchesBySquashError {
9770    /// <p>The specified branch does not exist.</p>
9771    BranchDoesNotExist(String),
9772    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <a>ListBranches</a>.</p>
9773    BranchNameIsTagName(String),
9774    /// <p>A branch name is required, but was not specified.</p>
9775    BranchNameRequired(String),
9776    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
9777    CommitDoesNotExist(String),
9778    /// <p>The commit message is too long. Provide a shorter string. </p>
9779    CommitMessageLengthExceeded(String),
9780    /// <p>A commit was not specified.</p>
9781    CommitRequired(String),
9782    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
9783    ConcurrentReferenceUpdate(String),
9784    /// <p>An encryption integrity check failed.</p>
9785    EncryptionIntegrityChecksFailed(String),
9786    /// <p>An encryption key could not be accessed.</p>
9787    EncryptionKeyAccessDenied(String),
9788    /// <p>The encryption key is disabled.</p>
9789    EncryptionKeyDisabled(String),
9790    /// <p>No encryption key was found.</p>
9791    EncryptionKeyNotFound(String),
9792    /// <p>The encryption key is not available.</p>
9793    EncryptionKeyUnavailable(String),
9794    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
9795    FileContentSizeLimitExceeded(String),
9796    /// <p>The commit cannot be created because no file mode has been specified. A file mode is required to update mode permissions for a file.</p>
9797    FileModeRequired(String),
9798    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
9799    FolderContentSizeLimitExceeded(String),
9800    /// <p>The specified reference name is not valid.</p>
9801    InvalidBranchName(String),
9802    /// <p>The specified commit is not valid.</p>
9803    InvalidCommit(String),
9804    /// <p>The specified conflict detail level is not valid.</p>
9805    InvalidConflictDetailLevel(String),
9806    /// <p>The specified conflict resolution list is not valid.</p>
9807    InvalidConflictResolution(String),
9808    /// <p>The specified conflict resolution strategy is not valid.</p>
9809    InvalidConflictResolutionStrategy(String),
9810    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
9811    InvalidEmail(String),
9812    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
9813    InvalidFileMode(String),
9814    /// <p>The specified path is not valid.</p>
9815    InvalidPath(String),
9816    /// <p>Automerge was specified for resolving the conflict, but the replacement type is not valid or content is missing. </p>
9817    InvalidReplacementContent(String),
9818    /// <p>Automerge was specified for resolving the conflict, but the specified replacement type is not valid.</p>
9819    InvalidReplacementType(String),
9820    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
9821    InvalidRepositoryName(String),
9822    /// <p>The specified target branch is not valid.</p>
9823    InvalidTargetBranch(String),
9824    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
9825    ManualMergeRequired(String),
9826    /// <p>The number of allowed conflict resolution entries was exceeded.</p>
9827    MaximumConflictResolutionEntriesExceeded(String),
9828    /// <p>The number of files to load exceeds the allowed limit.</p>
9829    MaximumFileContentToLoadExceeded(String),
9830    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
9831    MaximumItemsToCompareExceeded(String),
9832    /// <p>More than one conflict resolution entries exists for the conflict. A conflict can have only one conflict resolution entry.</p>
9833    MultipleConflictResolutionEntries(String),
9834    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
9835    NameLengthExceeded(String),
9836    /// <p>The folderPath for a location cannot be null.</p>
9837    PathRequired(String),
9838    /// <p>USE_NEW_CONTENT was specified, but no replacement content has been provided.</p>
9839    ReplacementContentRequired(String),
9840    /// <p>A replacement type is required.</p>
9841    ReplacementTypeRequired(String),
9842    /// <p>The specified repository does not exist.</p>
9843    RepositoryDoesNotExist(String),
9844    /// <p>A repository name is required, but was not specified.</p>
9845    RepositoryNameRequired(String),
9846    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
9847    TipsDivergenceExceeded(String),
9848}
9849
9850impl MergeBranchesBySquashError {
9851    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<MergeBranchesBySquashError> {
9852        if let Some(err) = proto::json::Error::parse(&res) {
9853            match err.typ.as_str() {
9854                "BranchDoesNotExistException" => {
9855                    return RusotoError::Service(MergeBranchesBySquashError::BranchDoesNotExist(
9856                        err.msg,
9857                    ))
9858                }
9859                "BranchNameIsTagNameException" => {
9860                    return RusotoError::Service(MergeBranchesBySquashError::BranchNameIsTagName(
9861                        err.msg,
9862                    ))
9863                }
9864                "BranchNameRequiredException" => {
9865                    return RusotoError::Service(MergeBranchesBySquashError::BranchNameRequired(
9866                        err.msg,
9867                    ))
9868                }
9869                "CommitDoesNotExistException" => {
9870                    return RusotoError::Service(MergeBranchesBySquashError::CommitDoesNotExist(
9871                        err.msg,
9872                    ))
9873                }
9874                "CommitMessageLengthExceededException" => {
9875                    return RusotoError::Service(
9876                        MergeBranchesBySquashError::CommitMessageLengthExceeded(err.msg),
9877                    )
9878                }
9879                "CommitRequiredException" => {
9880                    return RusotoError::Service(MergeBranchesBySquashError::CommitRequired(
9881                        err.msg,
9882                    ))
9883                }
9884                "ConcurrentReferenceUpdateException" => {
9885                    return RusotoError::Service(
9886                        MergeBranchesBySquashError::ConcurrentReferenceUpdate(err.msg),
9887                    )
9888                }
9889                "EncryptionIntegrityChecksFailedException" => {
9890                    return RusotoError::Service(
9891                        MergeBranchesBySquashError::EncryptionIntegrityChecksFailed(err.msg),
9892                    )
9893                }
9894                "EncryptionKeyAccessDeniedException" => {
9895                    return RusotoError::Service(
9896                        MergeBranchesBySquashError::EncryptionKeyAccessDenied(err.msg),
9897                    )
9898                }
9899                "EncryptionKeyDisabledException" => {
9900                    return RusotoError::Service(MergeBranchesBySquashError::EncryptionKeyDisabled(
9901                        err.msg,
9902                    ))
9903                }
9904                "EncryptionKeyNotFoundException" => {
9905                    return RusotoError::Service(MergeBranchesBySquashError::EncryptionKeyNotFound(
9906                        err.msg,
9907                    ))
9908                }
9909                "EncryptionKeyUnavailableException" => {
9910                    return RusotoError::Service(
9911                        MergeBranchesBySquashError::EncryptionKeyUnavailable(err.msg),
9912                    )
9913                }
9914                "FileContentSizeLimitExceededException" => {
9915                    return RusotoError::Service(
9916                        MergeBranchesBySquashError::FileContentSizeLimitExceeded(err.msg),
9917                    )
9918                }
9919                "FileModeRequiredException" => {
9920                    return RusotoError::Service(MergeBranchesBySquashError::FileModeRequired(
9921                        err.msg,
9922                    ))
9923                }
9924                "FolderContentSizeLimitExceededException" => {
9925                    return RusotoError::Service(
9926                        MergeBranchesBySquashError::FolderContentSizeLimitExceeded(err.msg),
9927                    )
9928                }
9929                "InvalidBranchNameException" => {
9930                    return RusotoError::Service(MergeBranchesBySquashError::InvalidBranchName(
9931                        err.msg,
9932                    ))
9933                }
9934                "InvalidCommitException" => {
9935                    return RusotoError::Service(MergeBranchesBySquashError::InvalidCommit(err.msg))
9936                }
9937                "InvalidConflictDetailLevelException" => {
9938                    return RusotoError::Service(
9939                        MergeBranchesBySquashError::InvalidConflictDetailLevel(err.msg),
9940                    )
9941                }
9942                "InvalidConflictResolutionException" => {
9943                    return RusotoError::Service(
9944                        MergeBranchesBySquashError::InvalidConflictResolution(err.msg),
9945                    )
9946                }
9947                "InvalidConflictResolutionStrategyException" => {
9948                    return RusotoError::Service(
9949                        MergeBranchesBySquashError::InvalidConflictResolutionStrategy(err.msg),
9950                    )
9951                }
9952                "InvalidEmailException" => {
9953                    return RusotoError::Service(MergeBranchesBySquashError::InvalidEmail(err.msg))
9954                }
9955                "InvalidFileModeException" => {
9956                    return RusotoError::Service(MergeBranchesBySquashError::InvalidFileMode(
9957                        err.msg,
9958                    ))
9959                }
9960                "InvalidPathException" => {
9961                    return RusotoError::Service(MergeBranchesBySquashError::InvalidPath(err.msg))
9962                }
9963                "InvalidReplacementContentException" => {
9964                    return RusotoError::Service(
9965                        MergeBranchesBySquashError::InvalidReplacementContent(err.msg),
9966                    )
9967                }
9968                "InvalidReplacementTypeException" => {
9969                    return RusotoError::Service(
9970                        MergeBranchesBySquashError::InvalidReplacementType(err.msg),
9971                    )
9972                }
9973                "InvalidRepositoryNameException" => {
9974                    return RusotoError::Service(MergeBranchesBySquashError::InvalidRepositoryName(
9975                        err.msg,
9976                    ))
9977                }
9978                "InvalidTargetBranchException" => {
9979                    return RusotoError::Service(MergeBranchesBySquashError::InvalidTargetBranch(
9980                        err.msg,
9981                    ))
9982                }
9983                "ManualMergeRequiredException" => {
9984                    return RusotoError::Service(MergeBranchesBySquashError::ManualMergeRequired(
9985                        err.msg,
9986                    ))
9987                }
9988                "MaximumConflictResolutionEntriesExceededException" => {
9989                    return RusotoError::Service(
9990                        MergeBranchesBySquashError::MaximumConflictResolutionEntriesExceeded(
9991                            err.msg,
9992                        ),
9993                    )
9994                }
9995                "MaximumFileContentToLoadExceededException" => {
9996                    return RusotoError::Service(
9997                        MergeBranchesBySquashError::MaximumFileContentToLoadExceeded(err.msg),
9998                    )
9999                }
10000                "MaximumItemsToCompareExceededException" => {
10001                    return RusotoError::Service(
10002                        MergeBranchesBySquashError::MaximumItemsToCompareExceeded(err.msg),
10003                    )
10004                }
10005                "MultipleConflictResolutionEntriesException" => {
10006                    return RusotoError::Service(
10007                        MergeBranchesBySquashError::MultipleConflictResolutionEntries(err.msg),
10008                    )
10009                }
10010                "NameLengthExceededException" => {
10011                    return RusotoError::Service(MergeBranchesBySquashError::NameLengthExceeded(
10012                        err.msg,
10013                    ))
10014                }
10015                "PathRequiredException" => {
10016                    return RusotoError::Service(MergeBranchesBySquashError::PathRequired(err.msg))
10017                }
10018                "ReplacementContentRequiredException" => {
10019                    return RusotoError::Service(
10020                        MergeBranchesBySquashError::ReplacementContentRequired(err.msg),
10021                    )
10022                }
10023                "ReplacementTypeRequiredException" => {
10024                    return RusotoError::Service(
10025                        MergeBranchesBySquashError::ReplacementTypeRequired(err.msg),
10026                    )
10027                }
10028                "RepositoryDoesNotExistException" => {
10029                    return RusotoError::Service(
10030                        MergeBranchesBySquashError::RepositoryDoesNotExist(err.msg),
10031                    )
10032                }
10033                "RepositoryNameRequiredException" => {
10034                    return RusotoError::Service(
10035                        MergeBranchesBySquashError::RepositoryNameRequired(err.msg),
10036                    )
10037                }
10038                "TipsDivergenceExceededException" => {
10039                    return RusotoError::Service(
10040                        MergeBranchesBySquashError::TipsDivergenceExceeded(err.msg),
10041                    )
10042                }
10043                "ValidationException" => return RusotoError::Validation(err.msg),
10044                _ => {}
10045            }
10046        }
10047        RusotoError::Unknown(res)
10048    }
10049}
10050impl fmt::Display for MergeBranchesBySquashError {
10051    #[allow(unused_variables)]
10052    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10053        match *self {
10054            MergeBranchesBySquashError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
10055            MergeBranchesBySquashError::BranchNameIsTagName(ref cause) => write!(f, "{}", cause),
10056            MergeBranchesBySquashError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
10057            MergeBranchesBySquashError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
10058            MergeBranchesBySquashError::CommitMessageLengthExceeded(ref cause) => {
10059                write!(f, "{}", cause)
10060            }
10061            MergeBranchesBySquashError::CommitRequired(ref cause) => write!(f, "{}", cause),
10062            MergeBranchesBySquashError::ConcurrentReferenceUpdate(ref cause) => {
10063                write!(f, "{}", cause)
10064            }
10065            MergeBranchesBySquashError::EncryptionIntegrityChecksFailed(ref cause) => {
10066                write!(f, "{}", cause)
10067            }
10068            MergeBranchesBySquashError::EncryptionKeyAccessDenied(ref cause) => {
10069                write!(f, "{}", cause)
10070            }
10071            MergeBranchesBySquashError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
10072            MergeBranchesBySquashError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
10073            MergeBranchesBySquashError::EncryptionKeyUnavailable(ref cause) => {
10074                write!(f, "{}", cause)
10075            }
10076            MergeBranchesBySquashError::FileContentSizeLimitExceeded(ref cause) => {
10077                write!(f, "{}", cause)
10078            }
10079            MergeBranchesBySquashError::FileModeRequired(ref cause) => write!(f, "{}", cause),
10080            MergeBranchesBySquashError::FolderContentSizeLimitExceeded(ref cause) => {
10081                write!(f, "{}", cause)
10082            }
10083            MergeBranchesBySquashError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
10084            MergeBranchesBySquashError::InvalidCommit(ref cause) => write!(f, "{}", cause),
10085            MergeBranchesBySquashError::InvalidConflictDetailLevel(ref cause) => {
10086                write!(f, "{}", cause)
10087            }
10088            MergeBranchesBySquashError::InvalidConflictResolution(ref cause) => {
10089                write!(f, "{}", cause)
10090            }
10091            MergeBranchesBySquashError::InvalidConflictResolutionStrategy(ref cause) => {
10092                write!(f, "{}", cause)
10093            }
10094            MergeBranchesBySquashError::InvalidEmail(ref cause) => write!(f, "{}", cause),
10095            MergeBranchesBySquashError::InvalidFileMode(ref cause) => write!(f, "{}", cause),
10096            MergeBranchesBySquashError::InvalidPath(ref cause) => write!(f, "{}", cause),
10097            MergeBranchesBySquashError::InvalidReplacementContent(ref cause) => {
10098                write!(f, "{}", cause)
10099            }
10100            MergeBranchesBySquashError::InvalidReplacementType(ref cause) => write!(f, "{}", cause),
10101            MergeBranchesBySquashError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
10102            MergeBranchesBySquashError::InvalidTargetBranch(ref cause) => write!(f, "{}", cause),
10103            MergeBranchesBySquashError::ManualMergeRequired(ref cause) => write!(f, "{}", cause),
10104            MergeBranchesBySquashError::MaximumConflictResolutionEntriesExceeded(ref cause) => {
10105                write!(f, "{}", cause)
10106            }
10107            MergeBranchesBySquashError::MaximumFileContentToLoadExceeded(ref cause) => {
10108                write!(f, "{}", cause)
10109            }
10110            MergeBranchesBySquashError::MaximumItemsToCompareExceeded(ref cause) => {
10111                write!(f, "{}", cause)
10112            }
10113            MergeBranchesBySquashError::MultipleConflictResolutionEntries(ref cause) => {
10114                write!(f, "{}", cause)
10115            }
10116            MergeBranchesBySquashError::NameLengthExceeded(ref cause) => write!(f, "{}", cause),
10117            MergeBranchesBySquashError::PathRequired(ref cause) => write!(f, "{}", cause),
10118            MergeBranchesBySquashError::ReplacementContentRequired(ref cause) => {
10119                write!(f, "{}", cause)
10120            }
10121            MergeBranchesBySquashError::ReplacementTypeRequired(ref cause) => {
10122                write!(f, "{}", cause)
10123            }
10124            MergeBranchesBySquashError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
10125            MergeBranchesBySquashError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
10126            MergeBranchesBySquashError::TipsDivergenceExceeded(ref cause) => write!(f, "{}", cause),
10127        }
10128    }
10129}
10130impl Error for MergeBranchesBySquashError {}
10131/// Errors returned by MergeBranchesByThreeWay
10132#[derive(Debug, PartialEq)]
10133pub enum MergeBranchesByThreeWayError {
10134    /// <p>The specified branch does not exist.</p>
10135    BranchDoesNotExist(String),
10136    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <a>ListBranches</a>.</p>
10137    BranchNameIsTagName(String),
10138    /// <p>A branch name is required, but was not specified.</p>
10139    BranchNameRequired(String),
10140    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
10141    CommitDoesNotExist(String),
10142    /// <p>The commit message is too long. Provide a shorter string. </p>
10143    CommitMessageLengthExceeded(String),
10144    /// <p>A commit was not specified.</p>
10145    CommitRequired(String),
10146    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
10147    ConcurrentReferenceUpdate(String),
10148    /// <p>An encryption integrity check failed.</p>
10149    EncryptionIntegrityChecksFailed(String),
10150    /// <p>An encryption key could not be accessed.</p>
10151    EncryptionKeyAccessDenied(String),
10152    /// <p>The encryption key is disabled.</p>
10153    EncryptionKeyDisabled(String),
10154    /// <p>No encryption key was found.</p>
10155    EncryptionKeyNotFound(String),
10156    /// <p>The encryption key is not available.</p>
10157    EncryptionKeyUnavailable(String),
10158    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
10159    FileContentSizeLimitExceeded(String),
10160    /// <p>The commit cannot be created because no file mode has been specified. A file mode is required to update mode permissions for a file.</p>
10161    FileModeRequired(String),
10162    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
10163    FolderContentSizeLimitExceeded(String),
10164    /// <p>The specified reference name is not valid.</p>
10165    InvalidBranchName(String),
10166    /// <p>The specified commit is not valid.</p>
10167    InvalidCommit(String),
10168    /// <p>The specified conflict detail level is not valid.</p>
10169    InvalidConflictDetailLevel(String),
10170    /// <p>The specified conflict resolution list is not valid.</p>
10171    InvalidConflictResolution(String),
10172    /// <p>The specified conflict resolution strategy is not valid.</p>
10173    InvalidConflictResolutionStrategy(String),
10174    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
10175    InvalidEmail(String),
10176    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
10177    InvalidFileMode(String),
10178    /// <p>The specified path is not valid.</p>
10179    InvalidPath(String),
10180    /// <p>Automerge was specified for resolving the conflict, but the replacement type is not valid or content is missing. </p>
10181    InvalidReplacementContent(String),
10182    /// <p>Automerge was specified for resolving the conflict, but the specified replacement type is not valid.</p>
10183    InvalidReplacementType(String),
10184    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
10185    InvalidRepositoryName(String),
10186    /// <p>The specified target branch is not valid.</p>
10187    InvalidTargetBranch(String),
10188    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
10189    ManualMergeRequired(String),
10190    /// <p>The number of allowed conflict resolution entries was exceeded.</p>
10191    MaximumConflictResolutionEntriesExceeded(String),
10192    /// <p>The number of files to load exceeds the allowed limit.</p>
10193    MaximumFileContentToLoadExceeded(String),
10194    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
10195    MaximumItemsToCompareExceeded(String),
10196    /// <p>More than one conflict resolution entries exists for the conflict. A conflict can have only one conflict resolution entry.</p>
10197    MultipleConflictResolutionEntries(String),
10198    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
10199    NameLengthExceeded(String),
10200    /// <p>The folderPath for a location cannot be null.</p>
10201    PathRequired(String),
10202    /// <p>USE_NEW_CONTENT was specified, but no replacement content has been provided.</p>
10203    ReplacementContentRequired(String),
10204    /// <p>A replacement type is required.</p>
10205    ReplacementTypeRequired(String),
10206    /// <p>The specified repository does not exist.</p>
10207    RepositoryDoesNotExist(String),
10208    /// <p>A repository name is required, but was not specified.</p>
10209    RepositoryNameRequired(String),
10210    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
10211    TipsDivergenceExceeded(String),
10212}
10213
10214impl MergeBranchesByThreeWayError {
10215    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<MergeBranchesByThreeWayError> {
10216        if let Some(err) = proto::json::Error::parse(&res) {
10217            match err.typ.as_str() {
10218                "BranchDoesNotExistException" => {
10219                    return RusotoError::Service(MergeBranchesByThreeWayError::BranchDoesNotExist(
10220                        err.msg,
10221                    ))
10222                }
10223                "BranchNameIsTagNameException" => {
10224                    return RusotoError::Service(MergeBranchesByThreeWayError::BranchNameIsTagName(
10225                        err.msg,
10226                    ))
10227                }
10228                "BranchNameRequiredException" => {
10229                    return RusotoError::Service(MergeBranchesByThreeWayError::BranchNameRequired(
10230                        err.msg,
10231                    ))
10232                }
10233                "CommitDoesNotExistException" => {
10234                    return RusotoError::Service(MergeBranchesByThreeWayError::CommitDoesNotExist(
10235                        err.msg,
10236                    ))
10237                }
10238                "CommitMessageLengthExceededException" => {
10239                    return RusotoError::Service(
10240                        MergeBranchesByThreeWayError::CommitMessageLengthExceeded(err.msg),
10241                    )
10242                }
10243                "CommitRequiredException" => {
10244                    return RusotoError::Service(MergeBranchesByThreeWayError::CommitRequired(
10245                        err.msg,
10246                    ))
10247                }
10248                "ConcurrentReferenceUpdateException" => {
10249                    return RusotoError::Service(
10250                        MergeBranchesByThreeWayError::ConcurrentReferenceUpdate(err.msg),
10251                    )
10252                }
10253                "EncryptionIntegrityChecksFailedException" => {
10254                    return RusotoError::Service(
10255                        MergeBranchesByThreeWayError::EncryptionIntegrityChecksFailed(err.msg),
10256                    )
10257                }
10258                "EncryptionKeyAccessDeniedException" => {
10259                    return RusotoError::Service(
10260                        MergeBranchesByThreeWayError::EncryptionKeyAccessDenied(err.msg),
10261                    )
10262                }
10263                "EncryptionKeyDisabledException" => {
10264                    return RusotoError::Service(
10265                        MergeBranchesByThreeWayError::EncryptionKeyDisabled(err.msg),
10266                    )
10267                }
10268                "EncryptionKeyNotFoundException" => {
10269                    return RusotoError::Service(
10270                        MergeBranchesByThreeWayError::EncryptionKeyNotFound(err.msg),
10271                    )
10272                }
10273                "EncryptionKeyUnavailableException" => {
10274                    return RusotoError::Service(
10275                        MergeBranchesByThreeWayError::EncryptionKeyUnavailable(err.msg),
10276                    )
10277                }
10278                "FileContentSizeLimitExceededException" => {
10279                    return RusotoError::Service(
10280                        MergeBranchesByThreeWayError::FileContentSizeLimitExceeded(err.msg),
10281                    )
10282                }
10283                "FileModeRequiredException" => {
10284                    return RusotoError::Service(MergeBranchesByThreeWayError::FileModeRequired(
10285                        err.msg,
10286                    ))
10287                }
10288                "FolderContentSizeLimitExceededException" => {
10289                    return RusotoError::Service(
10290                        MergeBranchesByThreeWayError::FolderContentSizeLimitExceeded(err.msg),
10291                    )
10292                }
10293                "InvalidBranchNameException" => {
10294                    return RusotoError::Service(MergeBranchesByThreeWayError::InvalidBranchName(
10295                        err.msg,
10296                    ))
10297                }
10298                "InvalidCommitException" => {
10299                    return RusotoError::Service(MergeBranchesByThreeWayError::InvalidCommit(
10300                        err.msg,
10301                    ))
10302                }
10303                "InvalidConflictDetailLevelException" => {
10304                    return RusotoError::Service(
10305                        MergeBranchesByThreeWayError::InvalidConflictDetailLevel(err.msg),
10306                    )
10307                }
10308                "InvalidConflictResolutionException" => {
10309                    return RusotoError::Service(
10310                        MergeBranchesByThreeWayError::InvalidConflictResolution(err.msg),
10311                    )
10312                }
10313                "InvalidConflictResolutionStrategyException" => {
10314                    return RusotoError::Service(
10315                        MergeBranchesByThreeWayError::InvalidConflictResolutionStrategy(err.msg),
10316                    )
10317                }
10318                "InvalidEmailException" => {
10319                    return RusotoError::Service(MergeBranchesByThreeWayError::InvalidEmail(
10320                        err.msg,
10321                    ))
10322                }
10323                "InvalidFileModeException" => {
10324                    return RusotoError::Service(MergeBranchesByThreeWayError::InvalidFileMode(
10325                        err.msg,
10326                    ))
10327                }
10328                "InvalidPathException" => {
10329                    return RusotoError::Service(MergeBranchesByThreeWayError::InvalidPath(err.msg))
10330                }
10331                "InvalidReplacementContentException" => {
10332                    return RusotoError::Service(
10333                        MergeBranchesByThreeWayError::InvalidReplacementContent(err.msg),
10334                    )
10335                }
10336                "InvalidReplacementTypeException" => {
10337                    return RusotoError::Service(
10338                        MergeBranchesByThreeWayError::InvalidReplacementType(err.msg),
10339                    )
10340                }
10341                "InvalidRepositoryNameException" => {
10342                    return RusotoError::Service(
10343                        MergeBranchesByThreeWayError::InvalidRepositoryName(err.msg),
10344                    )
10345                }
10346                "InvalidTargetBranchException" => {
10347                    return RusotoError::Service(MergeBranchesByThreeWayError::InvalidTargetBranch(
10348                        err.msg,
10349                    ))
10350                }
10351                "ManualMergeRequiredException" => {
10352                    return RusotoError::Service(MergeBranchesByThreeWayError::ManualMergeRequired(
10353                        err.msg,
10354                    ))
10355                }
10356                "MaximumConflictResolutionEntriesExceededException" => {
10357                    return RusotoError::Service(
10358                        MergeBranchesByThreeWayError::MaximumConflictResolutionEntriesExceeded(
10359                            err.msg,
10360                        ),
10361                    )
10362                }
10363                "MaximumFileContentToLoadExceededException" => {
10364                    return RusotoError::Service(
10365                        MergeBranchesByThreeWayError::MaximumFileContentToLoadExceeded(err.msg),
10366                    )
10367                }
10368                "MaximumItemsToCompareExceededException" => {
10369                    return RusotoError::Service(
10370                        MergeBranchesByThreeWayError::MaximumItemsToCompareExceeded(err.msg),
10371                    )
10372                }
10373                "MultipleConflictResolutionEntriesException" => {
10374                    return RusotoError::Service(
10375                        MergeBranchesByThreeWayError::MultipleConflictResolutionEntries(err.msg),
10376                    )
10377                }
10378                "NameLengthExceededException" => {
10379                    return RusotoError::Service(MergeBranchesByThreeWayError::NameLengthExceeded(
10380                        err.msg,
10381                    ))
10382                }
10383                "PathRequiredException" => {
10384                    return RusotoError::Service(MergeBranchesByThreeWayError::PathRequired(
10385                        err.msg,
10386                    ))
10387                }
10388                "ReplacementContentRequiredException" => {
10389                    return RusotoError::Service(
10390                        MergeBranchesByThreeWayError::ReplacementContentRequired(err.msg),
10391                    )
10392                }
10393                "ReplacementTypeRequiredException" => {
10394                    return RusotoError::Service(
10395                        MergeBranchesByThreeWayError::ReplacementTypeRequired(err.msg),
10396                    )
10397                }
10398                "RepositoryDoesNotExistException" => {
10399                    return RusotoError::Service(
10400                        MergeBranchesByThreeWayError::RepositoryDoesNotExist(err.msg),
10401                    )
10402                }
10403                "RepositoryNameRequiredException" => {
10404                    return RusotoError::Service(
10405                        MergeBranchesByThreeWayError::RepositoryNameRequired(err.msg),
10406                    )
10407                }
10408                "TipsDivergenceExceededException" => {
10409                    return RusotoError::Service(
10410                        MergeBranchesByThreeWayError::TipsDivergenceExceeded(err.msg),
10411                    )
10412                }
10413                "ValidationException" => return RusotoError::Validation(err.msg),
10414                _ => {}
10415            }
10416        }
10417        RusotoError::Unknown(res)
10418    }
10419}
10420impl fmt::Display for MergeBranchesByThreeWayError {
10421    #[allow(unused_variables)]
10422    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10423        match *self {
10424            MergeBranchesByThreeWayError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
10425            MergeBranchesByThreeWayError::BranchNameIsTagName(ref cause) => write!(f, "{}", cause),
10426            MergeBranchesByThreeWayError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
10427            MergeBranchesByThreeWayError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
10428            MergeBranchesByThreeWayError::CommitMessageLengthExceeded(ref cause) => {
10429                write!(f, "{}", cause)
10430            }
10431            MergeBranchesByThreeWayError::CommitRequired(ref cause) => write!(f, "{}", cause),
10432            MergeBranchesByThreeWayError::ConcurrentReferenceUpdate(ref cause) => {
10433                write!(f, "{}", cause)
10434            }
10435            MergeBranchesByThreeWayError::EncryptionIntegrityChecksFailed(ref cause) => {
10436                write!(f, "{}", cause)
10437            }
10438            MergeBranchesByThreeWayError::EncryptionKeyAccessDenied(ref cause) => {
10439                write!(f, "{}", cause)
10440            }
10441            MergeBranchesByThreeWayError::EncryptionKeyDisabled(ref cause) => {
10442                write!(f, "{}", cause)
10443            }
10444            MergeBranchesByThreeWayError::EncryptionKeyNotFound(ref cause) => {
10445                write!(f, "{}", cause)
10446            }
10447            MergeBranchesByThreeWayError::EncryptionKeyUnavailable(ref cause) => {
10448                write!(f, "{}", cause)
10449            }
10450            MergeBranchesByThreeWayError::FileContentSizeLimitExceeded(ref cause) => {
10451                write!(f, "{}", cause)
10452            }
10453            MergeBranchesByThreeWayError::FileModeRequired(ref cause) => write!(f, "{}", cause),
10454            MergeBranchesByThreeWayError::FolderContentSizeLimitExceeded(ref cause) => {
10455                write!(f, "{}", cause)
10456            }
10457            MergeBranchesByThreeWayError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
10458            MergeBranchesByThreeWayError::InvalidCommit(ref cause) => write!(f, "{}", cause),
10459            MergeBranchesByThreeWayError::InvalidConflictDetailLevel(ref cause) => {
10460                write!(f, "{}", cause)
10461            }
10462            MergeBranchesByThreeWayError::InvalidConflictResolution(ref cause) => {
10463                write!(f, "{}", cause)
10464            }
10465            MergeBranchesByThreeWayError::InvalidConflictResolutionStrategy(ref cause) => {
10466                write!(f, "{}", cause)
10467            }
10468            MergeBranchesByThreeWayError::InvalidEmail(ref cause) => write!(f, "{}", cause),
10469            MergeBranchesByThreeWayError::InvalidFileMode(ref cause) => write!(f, "{}", cause),
10470            MergeBranchesByThreeWayError::InvalidPath(ref cause) => write!(f, "{}", cause),
10471            MergeBranchesByThreeWayError::InvalidReplacementContent(ref cause) => {
10472                write!(f, "{}", cause)
10473            }
10474            MergeBranchesByThreeWayError::InvalidReplacementType(ref cause) => {
10475                write!(f, "{}", cause)
10476            }
10477            MergeBranchesByThreeWayError::InvalidRepositoryName(ref cause) => {
10478                write!(f, "{}", cause)
10479            }
10480            MergeBranchesByThreeWayError::InvalidTargetBranch(ref cause) => write!(f, "{}", cause),
10481            MergeBranchesByThreeWayError::ManualMergeRequired(ref cause) => write!(f, "{}", cause),
10482            MergeBranchesByThreeWayError::MaximumConflictResolutionEntriesExceeded(ref cause) => {
10483                write!(f, "{}", cause)
10484            }
10485            MergeBranchesByThreeWayError::MaximumFileContentToLoadExceeded(ref cause) => {
10486                write!(f, "{}", cause)
10487            }
10488            MergeBranchesByThreeWayError::MaximumItemsToCompareExceeded(ref cause) => {
10489                write!(f, "{}", cause)
10490            }
10491            MergeBranchesByThreeWayError::MultipleConflictResolutionEntries(ref cause) => {
10492                write!(f, "{}", cause)
10493            }
10494            MergeBranchesByThreeWayError::NameLengthExceeded(ref cause) => write!(f, "{}", cause),
10495            MergeBranchesByThreeWayError::PathRequired(ref cause) => write!(f, "{}", cause),
10496            MergeBranchesByThreeWayError::ReplacementContentRequired(ref cause) => {
10497                write!(f, "{}", cause)
10498            }
10499            MergeBranchesByThreeWayError::ReplacementTypeRequired(ref cause) => {
10500                write!(f, "{}", cause)
10501            }
10502            MergeBranchesByThreeWayError::RepositoryDoesNotExist(ref cause) => {
10503                write!(f, "{}", cause)
10504            }
10505            MergeBranchesByThreeWayError::RepositoryNameRequired(ref cause) => {
10506                write!(f, "{}", cause)
10507            }
10508            MergeBranchesByThreeWayError::TipsDivergenceExceeded(ref cause) => {
10509                write!(f, "{}", cause)
10510            }
10511        }
10512    }
10513}
10514impl Error for MergeBranchesByThreeWayError {}
10515/// Errors returned by MergePullRequestByFastForward
10516#[derive(Debug, PartialEq)]
10517pub enum MergePullRequestByFastForwardError {
10518    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
10519    ConcurrentReferenceUpdate(String),
10520    /// <p>An encryption integrity check failed.</p>
10521    EncryptionIntegrityChecksFailed(String),
10522    /// <p>An encryption key could not be accessed.</p>
10523    EncryptionKeyAccessDenied(String),
10524    /// <p>The encryption key is disabled.</p>
10525    EncryptionKeyDisabled(String),
10526    /// <p>No encryption key was found.</p>
10527    EncryptionKeyNotFound(String),
10528    /// <p>The encryption key is not available.</p>
10529    EncryptionKeyUnavailable(String),
10530    /// <p>The specified commit ID is not valid.</p>
10531    InvalidCommitId(String),
10532    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
10533    InvalidPullRequestId(String),
10534    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
10535    InvalidRepositoryName(String),
10536    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
10537    ManualMergeRequired(String),
10538    /// <p>The pull request status cannot be updated because it is already closed.</p>
10539    PullRequestAlreadyClosed(String),
10540    /// <p>The pull request cannot be merged because one or more approval rules applied to the pull request have conditions that have not been met.</p>
10541    PullRequestApprovalRulesNotSatisfied(String),
10542    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
10543    PullRequestDoesNotExist(String),
10544    /// <p>A pull request ID is required, but none was provided.</p>
10545    PullRequestIdRequired(String),
10546    /// <p>The specified reference does not exist. You must provide a full commit ID.</p>
10547    ReferenceDoesNotExist(String),
10548    /// <p>The specified repository does not exist.</p>
10549    RepositoryDoesNotExist(String),
10550    /// <p>A repository name is required, but was not specified.</p>
10551    RepositoryNameRequired(String),
10552    /// <p>The repository does not contain any pull requests with that pull request ID. Use GetPullRequest to verify the correct repository name for the pull request ID.</p>
10553    RepositoryNotAssociatedWithPullRequest(String),
10554    /// <p>The tip of the source branch in the destination repository does not match the tip of the source branch specified in your request. The pull request might have been updated. Make sure that you have the latest changes.</p>
10555    TipOfSourceReferenceIsDifferent(String),
10556}
10557
10558impl MergePullRequestByFastForwardError {
10559    pub fn from_response(
10560        res: BufferedHttpResponse,
10561    ) -> RusotoError<MergePullRequestByFastForwardError> {
10562        if let Some(err) = proto::json::Error::parse(&res) {
10563            match err.typ.as_str() {
10564                "ConcurrentReferenceUpdateException" => {
10565                    return RusotoError::Service(
10566                        MergePullRequestByFastForwardError::ConcurrentReferenceUpdate(err.msg),
10567                    )
10568                }
10569                "EncryptionIntegrityChecksFailedException" => {
10570                    return RusotoError::Service(
10571                        MergePullRequestByFastForwardError::EncryptionIntegrityChecksFailed(
10572                            err.msg,
10573                        ),
10574                    )
10575                }
10576                "EncryptionKeyAccessDeniedException" => {
10577                    return RusotoError::Service(
10578                        MergePullRequestByFastForwardError::EncryptionKeyAccessDenied(err.msg),
10579                    )
10580                }
10581                "EncryptionKeyDisabledException" => {
10582                    return RusotoError::Service(
10583                        MergePullRequestByFastForwardError::EncryptionKeyDisabled(err.msg),
10584                    )
10585                }
10586                "EncryptionKeyNotFoundException" => {
10587                    return RusotoError::Service(
10588                        MergePullRequestByFastForwardError::EncryptionKeyNotFound(err.msg),
10589                    )
10590                }
10591                "EncryptionKeyUnavailableException" => {
10592                    return RusotoError::Service(
10593                        MergePullRequestByFastForwardError::EncryptionKeyUnavailable(err.msg),
10594                    )
10595                }
10596                "InvalidCommitIdException" => {
10597                    return RusotoError::Service(
10598                        MergePullRequestByFastForwardError::InvalidCommitId(err.msg),
10599                    )
10600                }
10601                "InvalidPullRequestIdException" => {
10602                    return RusotoError::Service(
10603                        MergePullRequestByFastForwardError::InvalidPullRequestId(err.msg),
10604                    )
10605                }
10606                "InvalidRepositoryNameException" => {
10607                    return RusotoError::Service(
10608                        MergePullRequestByFastForwardError::InvalidRepositoryName(err.msg),
10609                    )
10610                }
10611                "ManualMergeRequiredException" => {
10612                    return RusotoError::Service(
10613                        MergePullRequestByFastForwardError::ManualMergeRequired(err.msg),
10614                    )
10615                }
10616                "PullRequestAlreadyClosedException" => {
10617                    return RusotoError::Service(
10618                        MergePullRequestByFastForwardError::PullRequestAlreadyClosed(err.msg),
10619                    )
10620                }
10621                "PullRequestApprovalRulesNotSatisfiedException" => {
10622                    return RusotoError::Service(
10623                        MergePullRequestByFastForwardError::PullRequestApprovalRulesNotSatisfied(
10624                            err.msg,
10625                        ),
10626                    )
10627                }
10628                "PullRequestDoesNotExistException" => {
10629                    return RusotoError::Service(
10630                        MergePullRequestByFastForwardError::PullRequestDoesNotExist(err.msg),
10631                    )
10632                }
10633                "PullRequestIdRequiredException" => {
10634                    return RusotoError::Service(
10635                        MergePullRequestByFastForwardError::PullRequestIdRequired(err.msg),
10636                    )
10637                }
10638                "ReferenceDoesNotExistException" => {
10639                    return RusotoError::Service(
10640                        MergePullRequestByFastForwardError::ReferenceDoesNotExist(err.msg),
10641                    )
10642                }
10643                "RepositoryDoesNotExistException" => {
10644                    return RusotoError::Service(
10645                        MergePullRequestByFastForwardError::RepositoryDoesNotExist(err.msg),
10646                    )
10647                }
10648                "RepositoryNameRequiredException" => {
10649                    return RusotoError::Service(
10650                        MergePullRequestByFastForwardError::RepositoryNameRequired(err.msg),
10651                    )
10652                }
10653                "RepositoryNotAssociatedWithPullRequestException" => {
10654                    return RusotoError::Service(
10655                        MergePullRequestByFastForwardError::RepositoryNotAssociatedWithPullRequest(
10656                            err.msg,
10657                        ),
10658                    )
10659                }
10660                "TipOfSourceReferenceIsDifferentException" => {
10661                    return RusotoError::Service(
10662                        MergePullRequestByFastForwardError::TipOfSourceReferenceIsDifferent(
10663                            err.msg,
10664                        ),
10665                    )
10666                }
10667                "ValidationException" => return RusotoError::Validation(err.msg),
10668                _ => {}
10669            }
10670        }
10671        RusotoError::Unknown(res)
10672    }
10673}
10674impl fmt::Display for MergePullRequestByFastForwardError {
10675    #[allow(unused_variables)]
10676    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
10677        match *self {
10678            MergePullRequestByFastForwardError::ConcurrentReferenceUpdate(ref cause) => {
10679                write!(f, "{}", cause)
10680            }
10681            MergePullRequestByFastForwardError::EncryptionIntegrityChecksFailed(ref cause) => {
10682                write!(f, "{}", cause)
10683            }
10684            MergePullRequestByFastForwardError::EncryptionKeyAccessDenied(ref cause) => {
10685                write!(f, "{}", cause)
10686            }
10687            MergePullRequestByFastForwardError::EncryptionKeyDisabled(ref cause) => {
10688                write!(f, "{}", cause)
10689            }
10690            MergePullRequestByFastForwardError::EncryptionKeyNotFound(ref cause) => {
10691                write!(f, "{}", cause)
10692            }
10693            MergePullRequestByFastForwardError::EncryptionKeyUnavailable(ref cause) => {
10694                write!(f, "{}", cause)
10695            }
10696            MergePullRequestByFastForwardError::InvalidCommitId(ref cause) => {
10697                write!(f, "{}", cause)
10698            }
10699            MergePullRequestByFastForwardError::InvalidPullRequestId(ref cause) => {
10700                write!(f, "{}", cause)
10701            }
10702            MergePullRequestByFastForwardError::InvalidRepositoryName(ref cause) => {
10703                write!(f, "{}", cause)
10704            }
10705            MergePullRequestByFastForwardError::ManualMergeRequired(ref cause) => {
10706                write!(f, "{}", cause)
10707            }
10708            MergePullRequestByFastForwardError::PullRequestAlreadyClosed(ref cause) => {
10709                write!(f, "{}", cause)
10710            }
10711            MergePullRequestByFastForwardError::PullRequestApprovalRulesNotSatisfied(ref cause) => {
10712                write!(f, "{}", cause)
10713            }
10714            MergePullRequestByFastForwardError::PullRequestDoesNotExist(ref cause) => {
10715                write!(f, "{}", cause)
10716            }
10717            MergePullRequestByFastForwardError::PullRequestIdRequired(ref cause) => {
10718                write!(f, "{}", cause)
10719            }
10720            MergePullRequestByFastForwardError::ReferenceDoesNotExist(ref cause) => {
10721                write!(f, "{}", cause)
10722            }
10723            MergePullRequestByFastForwardError::RepositoryDoesNotExist(ref cause) => {
10724                write!(f, "{}", cause)
10725            }
10726            MergePullRequestByFastForwardError::RepositoryNameRequired(ref cause) => {
10727                write!(f, "{}", cause)
10728            }
10729            MergePullRequestByFastForwardError::RepositoryNotAssociatedWithPullRequest(
10730                ref cause,
10731            ) => write!(f, "{}", cause),
10732            MergePullRequestByFastForwardError::TipOfSourceReferenceIsDifferent(ref cause) => {
10733                write!(f, "{}", cause)
10734            }
10735        }
10736    }
10737}
10738impl Error for MergePullRequestByFastForwardError {}
10739/// Errors returned by MergePullRequestBySquash
10740#[derive(Debug, PartialEq)]
10741pub enum MergePullRequestBySquashError {
10742    /// <p>The commit message is too long. Provide a shorter string. </p>
10743    CommitMessageLengthExceeded(String),
10744    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
10745    ConcurrentReferenceUpdate(String),
10746    /// <p>An encryption integrity check failed.</p>
10747    EncryptionIntegrityChecksFailed(String),
10748    /// <p>An encryption key could not be accessed.</p>
10749    EncryptionKeyAccessDenied(String),
10750    /// <p>The encryption key is disabled.</p>
10751    EncryptionKeyDisabled(String),
10752    /// <p>No encryption key was found.</p>
10753    EncryptionKeyNotFound(String),
10754    /// <p>The encryption key is not available.</p>
10755    EncryptionKeyUnavailable(String),
10756    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
10757    FileContentSizeLimitExceeded(String),
10758    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
10759    FolderContentSizeLimitExceeded(String),
10760    /// <p>The specified commit ID is not valid.</p>
10761    InvalidCommitId(String),
10762    /// <p>The specified conflict detail level is not valid.</p>
10763    InvalidConflictDetailLevel(String),
10764    /// <p>The specified conflict resolution list is not valid.</p>
10765    InvalidConflictResolution(String),
10766    /// <p>The specified conflict resolution strategy is not valid.</p>
10767    InvalidConflictResolutionStrategy(String),
10768    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
10769    InvalidEmail(String),
10770    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
10771    InvalidFileMode(String),
10772    /// <p>The specified path is not valid.</p>
10773    InvalidPath(String),
10774    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
10775    InvalidPullRequestId(String),
10776    /// <p>Automerge was specified for resolving the conflict, but the replacement type is not valid or content is missing. </p>
10777    InvalidReplacementContent(String),
10778    /// <p>Automerge was specified for resolving the conflict, but the specified replacement type is not valid.</p>
10779    InvalidReplacementType(String),
10780    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
10781    InvalidRepositoryName(String),
10782    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
10783    ManualMergeRequired(String),
10784    /// <p>The number of allowed conflict resolution entries was exceeded.</p>
10785    MaximumConflictResolutionEntriesExceeded(String),
10786    /// <p>The number of files to load exceeds the allowed limit.</p>
10787    MaximumFileContentToLoadExceeded(String),
10788    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
10789    MaximumItemsToCompareExceeded(String),
10790    /// <p>More than one conflict resolution entries exists for the conflict. A conflict can have only one conflict resolution entry.</p>
10791    MultipleConflictResolutionEntries(String),
10792    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
10793    NameLengthExceeded(String),
10794    /// <p>The folderPath for a location cannot be null.</p>
10795    PathRequired(String),
10796    /// <p>The pull request status cannot be updated because it is already closed.</p>
10797    PullRequestAlreadyClosed(String),
10798    /// <p>The pull request cannot be merged because one or more approval rules applied to the pull request have conditions that have not been met.</p>
10799    PullRequestApprovalRulesNotSatisfied(String),
10800    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
10801    PullRequestDoesNotExist(String),
10802    /// <p>A pull request ID is required, but none was provided.</p>
10803    PullRequestIdRequired(String),
10804    /// <p>USE_NEW_CONTENT was specified, but no replacement content has been provided.</p>
10805    ReplacementContentRequired(String),
10806    /// <p>A replacement type is required.</p>
10807    ReplacementTypeRequired(String),
10808    /// <p>The specified repository does not exist.</p>
10809    RepositoryDoesNotExist(String),
10810    /// <p>A repository name is required, but was not specified.</p>
10811    RepositoryNameRequired(String),
10812    /// <p>The repository does not contain any pull requests with that pull request ID. Use GetPullRequest to verify the correct repository name for the pull request ID.</p>
10813    RepositoryNotAssociatedWithPullRequest(String),
10814    /// <p>The tip of the source branch in the destination repository does not match the tip of the source branch specified in your request. The pull request might have been updated. Make sure that you have the latest changes.</p>
10815    TipOfSourceReferenceIsDifferent(String),
10816    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
10817    TipsDivergenceExceeded(String),
10818}
10819
10820impl MergePullRequestBySquashError {
10821    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<MergePullRequestBySquashError> {
10822        if let Some(err) = proto::json::Error::parse(&res) {
10823            match err.typ.as_str() {
10824                "CommitMessageLengthExceededException" => {
10825                    return RusotoError::Service(
10826                        MergePullRequestBySquashError::CommitMessageLengthExceeded(err.msg),
10827                    )
10828                }
10829                "ConcurrentReferenceUpdateException" => {
10830                    return RusotoError::Service(
10831                        MergePullRequestBySquashError::ConcurrentReferenceUpdate(err.msg),
10832                    )
10833                }
10834                "EncryptionIntegrityChecksFailedException" => {
10835                    return RusotoError::Service(
10836                        MergePullRequestBySquashError::EncryptionIntegrityChecksFailed(err.msg),
10837                    )
10838                }
10839                "EncryptionKeyAccessDeniedException" => {
10840                    return RusotoError::Service(
10841                        MergePullRequestBySquashError::EncryptionKeyAccessDenied(err.msg),
10842                    )
10843                }
10844                "EncryptionKeyDisabledException" => {
10845                    return RusotoError::Service(
10846                        MergePullRequestBySquashError::EncryptionKeyDisabled(err.msg),
10847                    )
10848                }
10849                "EncryptionKeyNotFoundException" => {
10850                    return RusotoError::Service(
10851                        MergePullRequestBySquashError::EncryptionKeyNotFound(err.msg),
10852                    )
10853                }
10854                "EncryptionKeyUnavailableException" => {
10855                    return RusotoError::Service(
10856                        MergePullRequestBySquashError::EncryptionKeyUnavailable(err.msg),
10857                    )
10858                }
10859                "FileContentSizeLimitExceededException" => {
10860                    return RusotoError::Service(
10861                        MergePullRequestBySquashError::FileContentSizeLimitExceeded(err.msg),
10862                    )
10863                }
10864                "FolderContentSizeLimitExceededException" => {
10865                    return RusotoError::Service(
10866                        MergePullRequestBySquashError::FolderContentSizeLimitExceeded(err.msg),
10867                    )
10868                }
10869                "InvalidCommitIdException" => {
10870                    return RusotoError::Service(MergePullRequestBySquashError::InvalidCommitId(
10871                        err.msg,
10872                    ))
10873                }
10874                "InvalidConflictDetailLevelException" => {
10875                    return RusotoError::Service(
10876                        MergePullRequestBySquashError::InvalidConflictDetailLevel(err.msg),
10877                    )
10878                }
10879                "InvalidConflictResolutionException" => {
10880                    return RusotoError::Service(
10881                        MergePullRequestBySquashError::InvalidConflictResolution(err.msg),
10882                    )
10883                }
10884                "InvalidConflictResolutionStrategyException" => {
10885                    return RusotoError::Service(
10886                        MergePullRequestBySquashError::InvalidConflictResolutionStrategy(err.msg),
10887                    )
10888                }
10889                "InvalidEmailException" => {
10890                    return RusotoError::Service(MergePullRequestBySquashError::InvalidEmail(
10891                        err.msg,
10892                    ))
10893                }
10894                "InvalidFileModeException" => {
10895                    return RusotoError::Service(MergePullRequestBySquashError::InvalidFileMode(
10896                        err.msg,
10897                    ))
10898                }
10899                "InvalidPathException" => {
10900                    return RusotoError::Service(MergePullRequestBySquashError::InvalidPath(
10901                        err.msg,
10902                    ))
10903                }
10904                "InvalidPullRequestIdException" => {
10905                    return RusotoError::Service(
10906                        MergePullRequestBySquashError::InvalidPullRequestId(err.msg),
10907                    )
10908                }
10909                "InvalidReplacementContentException" => {
10910                    return RusotoError::Service(
10911                        MergePullRequestBySquashError::InvalidReplacementContent(err.msg),
10912                    )
10913                }
10914                "InvalidReplacementTypeException" => {
10915                    return RusotoError::Service(
10916                        MergePullRequestBySquashError::InvalidReplacementType(err.msg),
10917                    )
10918                }
10919                "InvalidRepositoryNameException" => {
10920                    return RusotoError::Service(
10921                        MergePullRequestBySquashError::InvalidRepositoryName(err.msg),
10922                    )
10923                }
10924                "ManualMergeRequiredException" => {
10925                    return RusotoError::Service(
10926                        MergePullRequestBySquashError::ManualMergeRequired(err.msg),
10927                    )
10928                }
10929                "MaximumConflictResolutionEntriesExceededException" => {
10930                    return RusotoError::Service(
10931                        MergePullRequestBySquashError::MaximumConflictResolutionEntriesExceeded(
10932                            err.msg,
10933                        ),
10934                    )
10935                }
10936                "MaximumFileContentToLoadExceededException" => {
10937                    return RusotoError::Service(
10938                        MergePullRequestBySquashError::MaximumFileContentToLoadExceeded(err.msg),
10939                    )
10940                }
10941                "MaximumItemsToCompareExceededException" => {
10942                    return RusotoError::Service(
10943                        MergePullRequestBySquashError::MaximumItemsToCompareExceeded(err.msg),
10944                    )
10945                }
10946                "MultipleConflictResolutionEntriesException" => {
10947                    return RusotoError::Service(
10948                        MergePullRequestBySquashError::MultipleConflictResolutionEntries(err.msg),
10949                    )
10950                }
10951                "NameLengthExceededException" => {
10952                    return RusotoError::Service(MergePullRequestBySquashError::NameLengthExceeded(
10953                        err.msg,
10954                    ))
10955                }
10956                "PathRequiredException" => {
10957                    return RusotoError::Service(MergePullRequestBySquashError::PathRequired(
10958                        err.msg,
10959                    ))
10960                }
10961                "PullRequestAlreadyClosedException" => {
10962                    return RusotoError::Service(
10963                        MergePullRequestBySquashError::PullRequestAlreadyClosed(err.msg),
10964                    )
10965                }
10966                "PullRequestApprovalRulesNotSatisfiedException" => {
10967                    return RusotoError::Service(
10968                        MergePullRequestBySquashError::PullRequestApprovalRulesNotSatisfied(
10969                            err.msg,
10970                        ),
10971                    )
10972                }
10973                "PullRequestDoesNotExistException" => {
10974                    return RusotoError::Service(
10975                        MergePullRequestBySquashError::PullRequestDoesNotExist(err.msg),
10976                    )
10977                }
10978                "PullRequestIdRequiredException" => {
10979                    return RusotoError::Service(
10980                        MergePullRequestBySquashError::PullRequestIdRequired(err.msg),
10981                    )
10982                }
10983                "ReplacementContentRequiredException" => {
10984                    return RusotoError::Service(
10985                        MergePullRequestBySquashError::ReplacementContentRequired(err.msg),
10986                    )
10987                }
10988                "ReplacementTypeRequiredException" => {
10989                    return RusotoError::Service(
10990                        MergePullRequestBySquashError::ReplacementTypeRequired(err.msg),
10991                    )
10992                }
10993                "RepositoryDoesNotExistException" => {
10994                    return RusotoError::Service(
10995                        MergePullRequestBySquashError::RepositoryDoesNotExist(err.msg),
10996                    )
10997                }
10998                "RepositoryNameRequiredException" => {
10999                    return RusotoError::Service(
11000                        MergePullRequestBySquashError::RepositoryNameRequired(err.msg),
11001                    )
11002                }
11003                "RepositoryNotAssociatedWithPullRequestException" => {
11004                    return RusotoError::Service(
11005                        MergePullRequestBySquashError::RepositoryNotAssociatedWithPullRequest(
11006                            err.msg,
11007                        ),
11008                    )
11009                }
11010                "TipOfSourceReferenceIsDifferentException" => {
11011                    return RusotoError::Service(
11012                        MergePullRequestBySquashError::TipOfSourceReferenceIsDifferent(err.msg),
11013                    )
11014                }
11015                "TipsDivergenceExceededException" => {
11016                    return RusotoError::Service(
11017                        MergePullRequestBySquashError::TipsDivergenceExceeded(err.msg),
11018                    )
11019                }
11020                "ValidationException" => return RusotoError::Validation(err.msg),
11021                _ => {}
11022            }
11023        }
11024        RusotoError::Unknown(res)
11025    }
11026}
11027impl fmt::Display for MergePullRequestBySquashError {
11028    #[allow(unused_variables)]
11029    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
11030        match *self {
11031            MergePullRequestBySquashError::CommitMessageLengthExceeded(ref cause) => {
11032                write!(f, "{}", cause)
11033            }
11034            MergePullRequestBySquashError::ConcurrentReferenceUpdate(ref cause) => {
11035                write!(f, "{}", cause)
11036            }
11037            MergePullRequestBySquashError::EncryptionIntegrityChecksFailed(ref cause) => {
11038                write!(f, "{}", cause)
11039            }
11040            MergePullRequestBySquashError::EncryptionKeyAccessDenied(ref cause) => {
11041                write!(f, "{}", cause)
11042            }
11043            MergePullRequestBySquashError::EncryptionKeyDisabled(ref cause) => {
11044                write!(f, "{}", cause)
11045            }
11046            MergePullRequestBySquashError::EncryptionKeyNotFound(ref cause) => {
11047                write!(f, "{}", cause)
11048            }
11049            MergePullRequestBySquashError::EncryptionKeyUnavailable(ref cause) => {
11050                write!(f, "{}", cause)
11051            }
11052            MergePullRequestBySquashError::FileContentSizeLimitExceeded(ref cause) => {
11053                write!(f, "{}", cause)
11054            }
11055            MergePullRequestBySquashError::FolderContentSizeLimitExceeded(ref cause) => {
11056                write!(f, "{}", cause)
11057            }
11058            MergePullRequestBySquashError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
11059            MergePullRequestBySquashError::InvalidConflictDetailLevel(ref cause) => {
11060                write!(f, "{}", cause)
11061            }
11062            MergePullRequestBySquashError::InvalidConflictResolution(ref cause) => {
11063                write!(f, "{}", cause)
11064            }
11065            MergePullRequestBySquashError::InvalidConflictResolutionStrategy(ref cause) => {
11066                write!(f, "{}", cause)
11067            }
11068            MergePullRequestBySquashError::InvalidEmail(ref cause) => write!(f, "{}", cause),
11069            MergePullRequestBySquashError::InvalidFileMode(ref cause) => write!(f, "{}", cause),
11070            MergePullRequestBySquashError::InvalidPath(ref cause) => write!(f, "{}", cause),
11071            MergePullRequestBySquashError::InvalidPullRequestId(ref cause) => {
11072                write!(f, "{}", cause)
11073            }
11074            MergePullRequestBySquashError::InvalidReplacementContent(ref cause) => {
11075                write!(f, "{}", cause)
11076            }
11077            MergePullRequestBySquashError::InvalidReplacementType(ref cause) => {
11078                write!(f, "{}", cause)
11079            }
11080            MergePullRequestBySquashError::InvalidRepositoryName(ref cause) => {
11081                write!(f, "{}", cause)
11082            }
11083            MergePullRequestBySquashError::ManualMergeRequired(ref cause) => write!(f, "{}", cause),
11084            MergePullRequestBySquashError::MaximumConflictResolutionEntriesExceeded(ref cause) => {
11085                write!(f, "{}", cause)
11086            }
11087            MergePullRequestBySquashError::MaximumFileContentToLoadExceeded(ref cause) => {
11088                write!(f, "{}", cause)
11089            }
11090            MergePullRequestBySquashError::MaximumItemsToCompareExceeded(ref cause) => {
11091                write!(f, "{}", cause)
11092            }
11093            MergePullRequestBySquashError::MultipleConflictResolutionEntries(ref cause) => {
11094                write!(f, "{}", cause)
11095            }
11096            MergePullRequestBySquashError::NameLengthExceeded(ref cause) => write!(f, "{}", cause),
11097            MergePullRequestBySquashError::PathRequired(ref cause) => write!(f, "{}", cause),
11098            MergePullRequestBySquashError::PullRequestAlreadyClosed(ref cause) => {
11099                write!(f, "{}", cause)
11100            }
11101            MergePullRequestBySquashError::PullRequestApprovalRulesNotSatisfied(ref cause) => {
11102                write!(f, "{}", cause)
11103            }
11104            MergePullRequestBySquashError::PullRequestDoesNotExist(ref cause) => {
11105                write!(f, "{}", cause)
11106            }
11107            MergePullRequestBySquashError::PullRequestIdRequired(ref cause) => {
11108                write!(f, "{}", cause)
11109            }
11110            MergePullRequestBySquashError::ReplacementContentRequired(ref cause) => {
11111                write!(f, "{}", cause)
11112            }
11113            MergePullRequestBySquashError::ReplacementTypeRequired(ref cause) => {
11114                write!(f, "{}", cause)
11115            }
11116            MergePullRequestBySquashError::RepositoryDoesNotExist(ref cause) => {
11117                write!(f, "{}", cause)
11118            }
11119            MergePullRequestBySquashError::RepositoryNameRequired(ref cause) => {
11120                write!(f, "{}", cause)
11121            }
11122            MergePullRequestBySquashError::RepositoryNotAssociatedWithPullRequest(ref cause) => {
11123                write!(f, "{}", cause)
11124            }
11125            MergePullRequestBySquashError::TipOfSourceReferenceIsDifferent(ref cause) => {
11126                write!(f, "{}", cause)
11127            }
11128            MergePullRequestBySquashError::TipsDivergenceExceeded(ref cause) => {
11129                write!(f, "{}", cause)
11130            }
11131        }
11132    }
11133}
11134impl Error for MergePullRequestBySquashError {}
11135/// Errors returned by MergePullRequestByThreeWay
11136#[derive(Debug, PartialEq)]
11137pub enum MergePullRequestByThreeWayError {
11138    /// <p>The commit message is too long. Provide a shorter string. </p>
11139    CommitMessageLengthExceeded(String),
11140    /// <p>The merge cannot be completed because the target branch has been modified. Another user might have modified the target branch while the merge was in progress. Wait a few minutes, and then try again.</p>
11141    ConcurrentReferenceUpdate(String),
11142    /// <p>An encryption integrity check failed.</p>
11143    EncryptionIntegrityChecksFailed(String),
11144    /// <p>An encryption key could not be accessed.</p>
11145    EncryptionKeyAccessDenied(String),
11146    /// <p>The encryption key is disabled.</p>
11147    EncryptionKeyDisabled(String),
11148    /// <p>No encryption key was found.</p>
11149    EncryptionKeyNotFound(String),
11150    /// <p>The encryption key is not available.</p>
11151    EncryptionKeyUnavailable(String),
11152    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
11153    FileContentSizeLimitExceeded(String),
11154    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
11155    FolderContentSizeLimitExceeded(String),
11156    /// <p>The specified commit ID is not valid.</p>
11157    InvalidCommitId(String),
11158    /// <p>The specified conflict detail level is not valid.</p>
11159    InvalidConflictDetailLevel(String),
11160    /// <p>The specified conflict resolution list is not valid.</p>
11161    InvalidConflictResolution(String),
11162    /// <p>The specified conflict resolution strategy is not valid.</p>
11163    InvalidConflictResolutionStrategy(String),
11164    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
11165    InvalidEmail(String),
11166    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
11167    InvalidFileMode(String),
11168    /// <p>The specified path is not valid.</p>
11169    InvalidPath(String),
11170    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
11171    InvalidPullRequestId(String),
11172    /// <p>Automerge was specified for resolving the conflict, but the replacement type is not valid or content is missing. </p>
11173    InvalidReplacementContent(String),
11174    /// <p>Automerge was specified for resolving the conflict, but the specified replacement type is not valid.</p>
11175    InvalidReplacementType(String),
11176    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
11177    InvalidRepositoryName(String),
11178    /// <p>The pull request cannot be merged automatically into the destination branch. You must manually merge the branches and resolve any conflicts.</p>
11179    ManualMergeRequired(String),
11180    /// <p>The number of allowed conflict resolution entries was exceeded.</p>
11181    MaximumConflictResolutionEntriesExceeded(String),
11182    /// <p>The number of files to load exceeds the allowed limit.</p>
11183    MaximumFileContentToLoadExceeded(String),
11184    /// <p>The number of items to compare between the source or destination branches and the merge base has exceeded the maximum allowed.</p>
11185    MaximumItemsToCompareExceeded(String),
11186    /// <p>More than one conflict resolution entries exists for the conflict. A conflict can have only one conflict resolution entry.</p>
11187    MultipleConflictResolutionEntries(String),
11188    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
11189    NameLengthExceeded(String),
11190    /// <p>The folderPath for a location cannot be null.</p>
11191    PathRequired(String),
11192    /// <p>The pull request status cannot be updated because it is already closed.</p>
11193    PullRequestAlreadyClosed(String),
11194    /// <p>The pull request cannot be merged because one or more approval rules applied to the pull request have conditions that have not been met.</p>
11195    PullRequestApprovalRulesNotSatisfied(String),
11196    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
11197    PullRequestDoesNotExist(String),
11198    /// <p>A pull request ID is required, but none was provided.</p>
11199    PullRequestIdRequired(String),
11200    /// <p>USE_NEW_CONTENT was specified, but no replacement content has been provided.</p>
11201    ReplacementContentRequired(String),
11202    /// <p>A replacement type is required.</p>
11203    ReplacementTypeRequired(String),
11204    /// <p>The specified repository does not exist.</p>
11205    RepositoryDoesNotExist(String),
11206    /// <p>A repository name is required, but was not specified.</p>
11207    RepositoryNameRequired(String),
11208    /// <p>The repository does not contain any pull requests with that pull request ID. Use GetPullRequest to verify the correct repository name for the pull request ID.</p>
11209    RepositoryNotAssociatedWithPullRequest(String),
11210    /// <p>The tip of the source branch in the destination repository does not match the tip of the source branch specified in your request. The pull request might have been updated. Make sure that you have the latest changes.</p>
11211    TipOfSourceReferenceIsDifferent(String),
11212    /// <p>The divergence between the tips of the provided commit specifiers is too great to determine whether there might be any merge conflicts. Locally compare the specifiers using <code>git diff</code> or a diff tool.</p>
11213    TipsDivergenceExceeded(String),
11214}
11215
11216impl MergePullRequestByThreeWayError {
11217    pub fn from_response(
11218        res: BufferedHttpResponse,
11219    ) -> RusotoError<MergePullRequestByThreeWayError> {
11220        if let Some(err) = proto::json::Error::parse(&res) {
11221            match err.typ.as_str() {
11222                "CommitMessageLengthExceededException" => {
11223                    return RusotoError::Service(
11224                        MergePullRequestByThreeWayError::CommitMessageLengthExceeded(err.msg),
11225                    )
11226                }
11227                "ConcurrentReferenceUpdateException" => {
11228                    return RusotoError::Service(
11229                        MergePullRequestByThreeWayError::ConcurrentReferenceUpdate(err.msg),
11230                    )
11231                }
11232                "EncryptionIntegrityChecksFailedException" => {
11233                    return RusotoError::Service(
11234                        MergePullRequestByThreeWayError::EncryptionIntegrityChecksFailed(err.msg),
11235                    )
11236                }
11237                "EncryptionKeyAccessDeniedException" => {
11238                    return RusotoError::Service(
11239                        MergePullRequestByThreeWayError::EncryptionKeyAccessDenied(err.msg),
11240                    )
11241                }
11242                "EncryptionKeyDisabledException" => {
11243                    return RusotoError::Service(
11244                        MergePullRequestByThreeWayError::EncryptionKeyDisabled(err.msg),
11245                    )
11246                }
11247                "EncryptionKeyNotFoundException" => {
11248                    return RusotoError::Service(
11249                        MergePullRequestByThreeWayError::EncryptionKeyNotFound(err.msg),
11250                    )
11251                }
11252                "EncryptionKeyUnavailableException" => {
11253                    return RusotoError::Service(
11254                        MergePullRequestByThreeWayError::EncryptionKeyUnavailable(err.msg),
11255                    )
11256                }
11257                "FileContentSizeLimitExceededException" => {
11258                    return RusotoError::Service(
11259                        MergePullRequestByThreeWayError::FileContentSizeLimitExceeded(err.msg),
11260                    )
11261                }
11262                "FolderContentSizeLimitExceededException" => {
11263                    return RusotoError::Service(
11264                        MergePullRequestByThreeWayError::FolderContentSizeLimitExceeded(err.msg),
11265                    )
11266                }
11267                "InvalidCommitIdException" => {
11268                    return RusotoError::Service(MergePullRequestByThreeWayError::InvalidCommitId(
11269                        err.msg,
11270                    ))
11271                }
11272                "InvalidConflictDetailLevelException" => {
11273                    return RusotoError::Service(
11274                        MergePullRequestByThreeWayError::InvalidConflictDetailLevel(err.msg),
11275                    )
11276                }
11277                "InvalidConflictResolutionException" => {
11278                    return RusotoError::Service(
11279                        MergePullRequestByThreeWayError::InvalidConflictResolution(err.msg),
11280                    )
11281                }
11282                "InvalidConflictResolutionStrategyException" => {
11283                    return RusotoError::Service(
11284                        MergePullRequestByThreeWayError::InvalidConflictResolutionStrategy(err.msg),
11285                    )
11286                }
11287                "InvalidEmailException" => {
11288                    return RusotoError::Service(MergePullRequestByThreeWayError::InvalidEmail(
11289                        err.msg,
11290                    ))
11291                }
11292                "InvalidFileModeException" => {
11293                    return RusotoError::Service(MergePullRequestByThreeWayError::InvalidFileMode(
11294                        err.msg,
11295                    ))
11296                }
11297                "InvalidPathException" => {
11298                    return RusotoError::Service(MergePullRequestByThreeWayError::InvalidPath(
11299                        err.msg,
11300                    ))
11301                }
11302                "InvalidPullRequestIdException" => {
11303                    return RusotoError::Service(
11304                        MergePullRequestByThreeWayError::InvalidPullRequestId(err.msg),
11305                    )
11306                }
11307                "InvalidReplacementContentException" => {
11308                    return RusotoError::Service(
11309                        MergePullRequestByThreeWayError::InvalidReplacementContent(err.msg),
11310                    )
11311                }
11312                "InvalidReplacementTypeException" => {
11313                    return RusotoError::Service(
11314                        MergePullRequestByThreeWayError::InvalidReplacementType(err.msg),
11315                    )
11316                }
11317                "InvalidRepositoryNameException" => {
11318                    return RusotoError::Service(
11319                        MergePullRequestByThreeWayError::InvalidRepositoryName(err.msg),
11320                    )
11321                }
11322                "ManualMergeRequiredException" => {
11323                    return RusotoError::Service(
11324                        MergePullRequestByThreeWayError::ManualMergeRequired(err.msg),
11325                    )
11326                }
11327                "MaximumConflictResolutionEntriesExceededException" => {
11328                    return RusotoError::Service(
11329                        MergePullRequestByThreeWayError::MaximumConflictResolutionEntriesExceeded(
11330                            err.msg,
11331                        ),
11332                    )
11333                }
11334                "MaximumFileContentToLoadExceededException" => {
11335                    return RusotoError::Service(
11336                        MergePullRequestByThreeWayError::MaximumFileContentToLoadExceeded(err.msg),
11337                    )
11338                }
11339                "MaximumItemsToCompareExceededException" => {
11340                    return RusotoError::Service(
11341                        MergePullRequestByThreeWayError::MaximumItemsToCompareExceeded(err.msg),
11342                    )
11343                }
11344                "MultipleConflictResolutionEntriesException" => {
11345                    return RusotoError::Service(
11346                        MergePullRequestByThreeWayError::MultipleConflictResolutionEntries(err.msg),
11347                    )
11348                }
11349                "NameLengthExceededException" => {
11350                    return RusotoError::Service(
11351                        MergePullRequestByThreeWayError::NameLengthExceeded(err.msg),
11352                    )
11353                }
11354                "PathRequiredException" => {
11355                    return RusotoError::Service(MergePullRequestByThreeWayError::PathRequired(
11356                        err.msg,
11357                    ))
11358                }
11359                "PullRequestAlreadyClosedException" => {
11360                    return RusotoError::Service(
11361                        MergePullRequestByThreeWayError::PullRequestAlreadyClosed(err.msg),
11362                    )
11363                }
11364                "PullRequestApprovalRulesNotSatisfiedException" => {
11365                    return RusotoError::Service(
11366                        MergePullRequestByThreeWayError::PullRequestApprovalRulesNotSatisfied(
11367                            err.msg,
11368                        ),
11369                    )
11370                }
11371                "PullRequestDoesNotExistException" => {
11372                    return RusotoError::Service(
11373                        MergePullRequestByThreeWayError::PullRequestDoesNotExist(err.msg),
11374                    )
11375                }
11376                "PullRequestIdRequiredException" => {
11377                    return RusotoError::Service(
11378                        MergePullRequestByThreeWayError::PullRequestIdRequired(err.msg),
11379                    )
11380                }
11381                "ReplacementContentRequiredException" => {
11382                    return RusotoError::Service(
11383                        MergePullRequestByThreeWayError::ReplacementContentRequired(err.msg),
11384                    )
11385                }
11386                "ReplacementTypeRequiredException" => {
11387                    return RusotoError::Service(
11388                        MergePullRequestByThreeWayError::ReplacementTypeRequired(err.msg),
11389                    )
11390                }
11391                "RepositoryDoesNotExistException" => {
11392                    return RusotoError::Service(
11393                        MergePullRequestByThreeWayError::RepositoryDoesNotExist(err.msg),
11394                    )
11395                }
11396                "RepositoryNameRequiredException" => {
11397                    return RusotoError::Service(
11398                        MergePullRequestByThreeWayError::RepositoryNameRequired(err.msg),
11399                    )
11400                }
11401                "RepositoryNotAssociatedWithPullRequestException" => {
11402                    return RusotoError::Service(
11403                        MergePullRequestByThreeWayError::RepositoryNotAssociatedWithPullRequest(
11404                            err.msg,
11405                        ),
11406                    )
11407                }
11408                "TipOfSourceReferenceIsDifferentException" => {
11409                    return RusotoError::Service(
11410                        MergePullRequestByThreeWayError::TipOfSourceReferenceIsDifferent(err.msg),
11411                    )
11412                }
11413                "TipsDivergenceExceededException" => {
11414                    return RusotoError::Service(
11415                        MergePullRequestByThreeWayError::TipsDivergenceExceeded(err.msg),
11416                    )
11417                }
11418                "ValidationException" => return RusotoError::Validation(err.msg),
11419                _ => {}
11420            }
11421        }
11422        RusotoError::Unknown(res)
11423    }
11424}
11425impl fmt::Display for MergePullRequestByThreeWayError {
11426    #[allow(unused_variables)]
11427    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
11428        match *self {
11429            MergePullRequestByThreeWayError::CommitMessageLengthExceeded(ref cause) => {
11430                write!(f, "{}", cause)
11431            }
11432            MergePullRequestByThreeWayError::ConcurrentReferenceUpdate(ref cause) => {
11433                write!(f, "{}", cause)
11434            }
11435            MergePullRequestByThreeWayError::EncryptionIntegrityChecksFailed(ref cause) => {
11436                write!(f, "{}", cause)
11437            }
11438            MergePullRequestByThreeWayError::EncryptionKeyAccessDenied(ref cause) => {
11439                write!(f, "{}", cause)
11440            }
11441            MergePullRequestByThreeWayError::EncryptionKeyDisabled(ref cause) => {
11442                write!(f, "{}", cause)
11443            }
11444            MergePullRequestByThreeWayError::EncryptionKeyNotFound(ref cause) => {
11445                write!(f, "{}", cause)
11446            }
11447            MergePullRequestByThreeWayError::EncryptionKeyUnavailable(ref cause) => {
11448                write!(f, "{}", cause)
11449            }
11450            MergePullRequestByThreeWayError::FileContentSizeLimitExceeded(ref cause) => {
11451                write!(f, "{}", cause)
11452            }
11453            MergePullRequestByThreeWayError::FolderContentSizeLimitExceeded(ref cause) => {
11454                write!(f, "{}", cause)
11455            }
11456            MergePullRequestByThreeWayError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
11457            MergePullRequestByThreeWayError::InvalidConflictDetailLevel(ref cause) => {
11458                write!(f, "{}", cause)
11459            }
11460            MergePullRequestByThreeWayError::InvalidConflictResolution(ref cause) => {
11461                write!(f, "{}", cause)
11462            }
11463            MergePullRequestByThreeWayError::InvalidConflictResolutionStrategy(ref cause) => {
11464                write!(f, "{}", cause)
11465            }
11466            MergePullRequestByThreeWayError::InvalidEmail(ref cause) => write!(f, "{}", cause),
11467            MergePullRequestByThreeWayError::InvalidFileMode(ref cause) => write!(f, "{}", cause),
11468            MergePullRequestByThreeWayError::InvalidPath(ref cause) => write!(f, "{}", cause),
11469            MergePullRequestByThreeWayError::InvalidPullRequestId(ref cause) => {
11470                write!(f, "{}", cause)
11471            }
11472            MergePullRequestByThreeWayError::InvalidReplacementContent(ref cause) => {
11473                write!(f, "{}", cause)
11474            }
11475            MergePullRequestByThreeWayError::InvalidReplacementType(ref cause) => {
11476                write!(f, "{}", cause)
11477            }
11478            MergePullRequestByThreeWayError::InvalidRepositoryName(ref cause) => {
11479                write!(f, "{}", cause)
11480            }
11481            MergePullRequestByThreeWayError::ManualMergeRequired(ref cause) => {
11482                write!(f, "{}", cause)
11483            }
11484            MergePullRequestByThreeWayError::MaximumConflictResolutionEntriesExceeded(
11485                ref cause,
11486            ) => write!(f, "{}", cause),
11487            MergePullRequestByThreeWayError::MaximumFileContentToLoadExceeded(ref cause) => {
11488                write!(f, "{}", cause)
11489            }
11490            MergePullRequestByThreeWayError::MaximumItemsToCompareExceeded(ref cause) => {
11491                write!(f, "{}", cause)
11492            }
11493            MergePullRequestByThreeWayError::MultipleConflictResolutionEntries(ref cause) => {
11494                write!(f, "{}", cause)
11495            }
11496            MergePullRequestByThreeWayError::NameLengthExceeded(ref cause) => {
11497                write!(f, "{}", cause)
11498            }
11499            MergePullRequestByThreeWayError::PathRequired(ref cause) => write!(f, "{}", cause),
11500            MergePullRequestByThreeWayError::PullRequestAlreadyClosed(ref cause) => {
11501                write!(f, "{}", cause)
11502            }
11503            MergePullRequestByThreeWayError::PullRequestApprovalRulesNotSatisfied(ref cause) => {
11504                write!(f, "{}", cause)
11505            }
11506            MergePullRequestByThreeWayError::PullRequestDoesNotExist(ref cause) => {
11507                write!(f, "{}", cause)
11508            }
11509            MergePullRequestByThreeWayError::PullRequestIdRequired(ref cause) => {
11510                write!(f, "{}", cause)
11511            }
11512            MergePullRequestByThreeWayError::ReplacementContentRequired(ref cause) => {
11513                write!(f, "{}", cause)
11514            }
11515            MergePullRequestByThreeWayError::ReplacementTypeRequired(ref cause) => {
11516                write!(f, "{}", cause)
11517            }
11518            MergePullRequestByThreeWayError::RepositoryDoesNotExist(ref cause) => {
11519                write!(f, "{}", cause)
11520            }
11521            MergePullRequestByThreeWayError::RepositoryNameRequired(ref cause) => {
11522                write!(f, "{}", cause)
11523            }
11524            MergePullRequestByThreeWayError::RepositoryNotAssociatedWithPullRequest(ref cause) => {
11525                write!(f, "{}", cause)
11526            }
11527            MergePullRequestByThreeWayError::TipOfSourceReferenceIsDifferent(ref cause) => {
11528                write!(f, "{}", cause)
11529            }
11530            MergePullRequestByThreeWayError::TipsDivergenceExceeded(ref cause) => {
11531                write!(f, "{}", cause)
11532            }
11533        }
11534    }
11535}
11536impl Error for MergePullRequestByThreeWayError {}
11537/// Errors returned by OverridePullRequestApprovalRules
11538#[derive(Debug, PartialEq)]
11539pub enum OverridePullRequestApprovalRulesError {
11540    /// <p>An encryption integrity check failed.</p>
11541    EncryptionIntegrityChecksFailed(String),
11542    /// <p>An encryption key could not be accessed.</p>
11543    EncryptionKeyAccessDenied(String),
11544    /// <p>The encryption key is disabled.</p>
11545    EncryptionKeyDisabled(String),
11546    /// <p>No encryption key was found.</p>
11547    EncryptionKeyNotFound(String),
11548    /// <p>The encryption key is not available.</p>
11549    EncryptionKeyUnavailable(String),
11550    /// <p>The override status is not valid. Valid statuses are OVERRIDE and REVOKE.</p>
11551    InvalidOverrideStatus(String),
11552    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
11553    InvalidPullRequestId(String),
11554    /// <p>The revision ID is not valid. Use GetPullRequest to determine the value.</p>
11555    InvalidRevisionId(String),
11556    /// <p>The pull request has already had its approval rules set to override.</p>
11557    OverrideAlreadySet(String),
11558    /// <p>An override status is required, but no value was provided. Valid values include OVERRIDE and REVOKE.</p>
11559    OverrideStatusRequired(String),
11560    /// <p>The pull request status cannot be updated because it is already closed.</p>
11561    PullRequestAlreadyClosed(String),
11562    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
11563    PullRequestDoesNotExist(String),
11564    /// <p>A pull request ID is required, but none was provided.</p>
11565    PullRequestIdRequired(String),
11566    /// <p>A revision ID is required, but was not provided.</p>
11567    RevisionIdRequired(String),
11568    /// <p>The revision ID provided in the request does not match the current revision ID. Use GetPullRequest to retrieve the current revision ID.</p>
11569    RevisionNotCurrent(String),
11570}
11571
11572impl OverridePullRequestApprovalRulesError {
11573    pub fn from_response(
11574        res: BufferedHttpResponse,
11575    ) -> RusotoError<OverridePullRequestApprovalRulesError> {
11576        if let Some(err) = proto::json::Error::parse(&res) {
11577            match err.typ.as_str() {
11578                "EncryptionIntegrityChecksFailedException" => {
11579                    return RusotoError::Service(
11580                        OverridePullRequestApprovalRulesError::EncryptionIntegrityChecksFailed(
11581                            err.msg,
11582                        ),
11583                    )
11584                }
11585                "EncryptionKeyAccessDeniedException" => {
11586                    return RusotoError::Service(
11587                        OverridePullRequestApprovalRulesError::EncryptionKeyAccessDenied(err.msg),
11588                    )
11589                }
11590                "EncryptionKeyDisabledException" => {
11591                    return RusotoError::Service(
11592                        OverridePullRequestApprovalRulesError::EncryptionKeyDisabled(err.msg),
11593                    )
11594                }
11595                "EncryptionKeyNotFoundException" => {
11596                    return RusotoError::Service(
11597                        OverridePullRequestApprovalRulesError::EncryptionKeyNotFound(err.msg),
11598                    )
11599                }
11600                "EncryptionKeyUnavailableException" => {
11601                    return RusotoError::Service(
11602                        OverridePullRequestApprovalRulesError::EncryptionKeyUnavailable(err.msg),
11603                    )
11604                }
11605                "InvalidOverrideStatusException" => {
11606                    return RusotoError::Service(
11607                        OverridePullRequestApprovalRulesError::InvalidOverrideStatus(err.msg),
11608                    )
11609                }
11610                "InvalidPullRequestIdException" => {
11611                    return RusotoError::Service(
11612                        OverridePullRequestApprovalRulesError::InvalidPullRequestId(err.msg),
11613                    )
11614                }
11615                "InvalidRevisionIdException" => {
11616                    return RusotoError::Service(
11617                        OverridePullRequestApprovalRulesError::InvalidRevisionId(err.msg),
11618                    )
11619                }
11620                "OverrideAlreadySetException" => {
11621                    return RusotoError::Service(
11622                        OverridePullRequestApprovalRulesError::OverrideAlreadySet(err.msg),
11623                    )
11624                }
11625                "OverrideStatusRequiredException" => {
11626                    return RusotoError::Service(
11627                        OverridePullRequestApprovalRulesError::OverrideStatusRequired(err.msg),
11628                    )
11629                }
11630                "PullRequestAlreadyClosedException" => {
11631                    return RusotoError::Service(
11632                        OverridePullRequestApprovalRulesError::PullRequestAlreadyClosed(err.msg),
11633                    )
11634                }
11635                "PullRequestDoesNotExistException" => {
11636                    return RusotoError::Service(
11637                        OverridePullRequestApprovalRulesError::PullRequestDoesNotExist(err.msg),
11638                    )
11639                }
11640                "PullRequestIdRequiredException" => {
11641                    return RusotoError::Service(
11642                        OverridePullRequestApprovalRulesError::PullRequestIdRequired(err.msg),
11643                    )
11644                }
11645                "RevisionIdRequiredException" => {
11646                    return RusotoError::Service(
11647                        OverridePullRequestApprovalRulesError::RevisionIdRequired(err.msg),
11648                    )
11649                }
11650                "RevisionNotCurrentException" => {
11651                    return RusotoError::Service(
11652                        OverridePullRequestApprovalRulesError::RevisionNotCurrent(err.msg),
11653                    )
11654                }
11655                "ValidationException" => return RusotoError::Validation(err.msg),
11656                _ => {}
11657            }
11658        }
11659        RusotoError::Unknown(res)
11660    }
11661}
11662impl fmt::Display for OverridePullRequestApprovalRulesError {
11663    #[allow(unused_variables)]
11664    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
11665        match *self {
11666            OverridePullRequestApprovalRulesError::EncryptionIntegrityChecksFailed(ref cause) => {
11667                write!(f, "{}", cause)
11668            }
11669            OverridePullRequestApprovalRulesError::EncryptionKeyAccessDenied(ref cause) => {
11670                write!(f, "{}", cause)
11671            }
11672            OverridePullRequestApprovalRulesError::EncryptionKeyDisabled(ref cause) => {
11673                write!(f, "{}", cause)
11674            }
11675            OverridePullRequestApprovalRulesError::EncryptionKeyNotFound(ref cause) => {
11676                write!(f, "{}", cause)
11677            }
11678            OverridePullRequestApprovalRulesError::EncryptionKeyUnavailable(ref cause) => {
11679                write!(f, "{}", cause)
11680            }
11681            OverridePullRequestApprovalRulesError::InvalidOverrideStatus(ref cause) => {
11682                write!(f, "{}", cause)
11683            }
11684            OverridePullRequestApprovalRulesError::InvalidPullRequestId(ref cause) => {
11685                write!(f, "{}", cause)
11686            }
11687            OverridePullRequestApprovalRulesError::InvalidRevisionId(ref cause) => {
11688                write!(f, "{}", cause)
11689            }
11690            OverridePullRequestApprovalRulesError::OverrideAlreadySet(ref cause) => {
11691                write!(f, "{}", cause)
11692            }
11693            OverridePullRequestApprovalRulesError::OverrideStatusRequired(ref cause) => {
11694                write!(f, "{}", cause)
11695            }
11696            OverridePullRequestApprovalRulesError::PullRequestAlreadyClosed(ref cause) => {
11697                write!(f, "{}", cause)
11698            }
11699            OverridePullRequestApprovalRulesError::PullRequestDoesNotExist(ref cause) => {
11700                write!(f, "{}", cause)
11701            }
11702            OverridePullRequestApprovalRulesError::PullRequestIdRequired(ref cause) => {
11703                write!(f, "{}", cause)
11704            }
11705            OverridePullRequestApprovalRulesError::RevisionIdRequired(ref cause) => {
11706                write!(f, "{}", cause)
11707            }
11708            OverridePullRequestApprovalRulesError::RevisionNotCurrent(ref cause) => {
11709                write!(f, "{}", cause)
11710            }
11711        }
11712    }
11713}
11714impl Error for OverridePullRequestApprovalRulesError {}
11715/// Errors returned by PostCommentForComparedCommit
11716#[derive(Debug, PartialEq)]
11717pub enum PostCommentForComparedCommitError {
11718    /// <p>The before commit ID and the after commit ID are the same, which is not valid. The before commit ID and the after commit ID must be different commit IDs.</p>
11719    BeforeCommitIdAndAfterCommitIdAreSame(String),
11720    /// <p>A client request token is required. A client request token is an unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
11721    ClientRequestTokenRequired(String),
11722    /// <p>The comment is empty. You must provide some content for a comment. The content cannot be null.</p>
11723    CommentContentRequired(String),
11724    /// <p>The comment is too large. Comments are limited to 1,000 characters.</p>
11725    CommentContentSizeLimitExceeded(String),
11726    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
11727    CommitDoesNotExist(String),
11728    /// <p>A commit ID was not specified.</p>
11729    CommitIdRequired(String),
11730    /// <p>An encryption integrity check failed.</p>
11731    EncryptionIntegrityChecksFailed(String),
11732    /// <p>An encryption key could not be accessed.</p>
11733    EncryptionKeyAccessDenied(String),
11734    /// <p>The encryption key is disabled.</p>
11735    EncryptionKeyDisabled(String),
11736    /// <p>No encryption key was found.</p>
11737    EncryptionKeyNotFound(String),
11738    /// <p>The encryption key is not available.</p>
11739    EncryptionKeyUnavailable(String),
11740    /// <p>The client request token is not valid. Either the token is not in a valid format, or the token has been used in a previous request and cannot be reused.</p>
11741    IdempotencyParameterMismatch(String),
11742    /// <p>The client request token is not valid.</p>
11743    InvalidClientRequestToken(String),
11744    /// <p>The specified commit ID is not valid.</p>
11745    InvalidCommitId(String),
11746    /// <p>The location of the file is not valid. Make sure that you include the file name and extension.</p>
11747    InvalidFileLocation(String),
11748    /// <p>The position is not valid. Make sure that the line number exists in the version of the file you want to comment on.</p>
11749    InvalidFilePosition(String),
11750    /// <p>The specified path is not valid.</p>
11751    InvalidPath(String),
11752    /// <p>Either the enum is not in a valid format, or the specified file version enum is not valid in respect to the current file version.</p>
11753    InvalidRelativeFileVersionEnum(String),
11754    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
11755    InvalidRepositoryName(String),
11756    /// <p>The specified path does not exist.</p>
11757    PathDoesNotExist(String),
11758    /// <p>The folderPath for a location cannot be null.</p>
11759    PathRequired(String),
11760    /// <p>The specified repository does not exist.</p>
11761    RepositoryDoesNotExist(String),
11762    /// <p>A repository name is required, but was not specified.</p>
11763    RepositoryNameRequired(String),
11764}
11765
11766impl PostCommentForComparedCommitError {
11767    pub fn from_response(
11768        res: BufferedHttpResponse,
11769    ) -> RusotoError<PostCommentForComparedCommitError> {
11770        if let Some(err) = proto::json::Error::parse(&res) {
11771            match err.typ.as_str() {
11772                "BeforeCommitIdAndAfterCommitIdAreSameException" => {
11773                    return RusotoError::Service(
11774                        PostCommentForComparedCommitError::BeforeCommitIdAndAfterCommitIdAreSame(
11775                            err.msg,
11776                        ),
11777                    )
11778                }
11779                "ClientRequestTokenRequiredException" => {
11780                    return RusotoError::Service(
11781                        PostCommentForComparedCommitError::ClientRequestTokenRequired(err.msg),
11782                    )
11783                }
11784                "CommentContentRequiredException" => {
11785                    return RusotoError::Service(
11786                        PostCommentForComparedCommitError::CommentContentRequired(err.msg),
11787                    )
11788                }
11789                "CommentContentSizeLimitExceededException" => {
11790                    return RusotoError::Service(
11791                        PostCommentForComparedCommitError::CommentContentSizeLimitExceeded(err.msg),
11792                    )
11793                }
11794                "CommitDoesNotExistException" => {
11795                    return RusotoError::Service(
11796                        PostCommentForComparedCommitError::CommitDoesNotExist(err.msg),
11797                    )
11798                }
11799                "CommitIdRequiredException" => {
11800                    return RusotoError::Service(
11801                        PostCommentForComparedCommitError::CommitIdRequired(err.msg),
11802                    )
11803                }
11804                "EncryptionIntegrityChecksFailedException" => {
11805                    return RusotoError::Service(
11806                        PostCommentForComparedCommitError::EncryptionIntegrityChecksFailed(err.msg),
11807                    )
11808                }
11809                "EncryptionKeyAccessDeniedException" => {
11810                    return RusotoError::Service(
11811                        PostCommentForComparedCommitError::EncryptionKeyAccessDenied(err.msg),
11812                    )
11813                }
11814                "EncryptionKeyDisabledException" => {
11815                    return RusotoError::Service(
11816                        PostCommentForComparedCommitError::EncryptionKeyDisabled(err.msg),
11817                    )
11818                }
11819                "EncryptionKeyNotFoundException" => {
11820                    return RusotoError::Service(
11821                        PostCommentForComparedCommitError::EncryptionKeyNotFound(err.msg),
11822                    )
11823                }
11824                "EncryptionKeyUnavailableException" => {
11825                    return RusotoError::Service(
11826                        PostCommentForComparedCommitError::EncryptionKeyUnavailable(err.msg),
11827                    )
11828                }
11829                "IdempotencyParameterMismatchException" => {
11830                    return RusotoError::Service(
11831                        PostCommentForComparedCommitError::IdempotencyParameterMismatch(err.msg),
11832                    )
11833                }
11834                "InvalidClientRequestTokenException" => {
11835                    return RusotoError::Service(
11836                        PostCommentForComparedCommitError::InvalidClientRequestToken(err.msg),
11837                    )
11838                }
11839                "InvalidCommitIdException" => {
11840                    return RusotoError::Service(
11841                        PostCommentForComparedCommitError::InvalidCommitId(err.msg),
11842                    )
11843                }
11844                "InvalidFileLocationException" => {
11845                    return RusotoError::Service(
11846                        PostCommentForComparedCommitError::InvalidFileLocation(err.msg),
11847                    )
11848                }
11849                "InvalidFilePositionException" => {
11850                    return RusotoError::Service(
11851                        PostCommentForComparedCommitError::InvalidFilePosition(err.msg),
11852                    )
11853                }
11854                "InvalidPathException" => {
11855                    return RusotoError::Service(PostCommentForComparedCommitError::InvalidPath(
11856                        err.msg,
11857                    ))
11858                }
11859                "InvalidRelativeFileVersionEnumException" => {
11860                    return RusotoError::Service(
11861                        PostCommentForComparedCommitError::InvalidRelativeFileVersionEnum(err.msg),
11862                    )
11863                }
11864                "InvalidRepositoryNameException" => {
11865                    return RusotoError::Service(
11866                        PostCommentForComparedCommitError::InvalidRepositoryName(err.msg),
11867                    )
11868                }
11869                "PathDoesNotExistException" => {
11870                    return RusotoError::Service(
11871                        PostCommentForComparedCommitError::PathDoesNotExist(err.msg),
11872                    )
11873                }
11874                "PathRequiredException" => {
11875                    return RusotoError::Service(PostCommentForComparedCommitError::PathRequired(
11876                        err.msg,
11877                    ))
11878                }
11879                "RepositoryDoesNotExistException" => {
11880                    return RusotoError::Service(
11881                        PostCommentForComparedCommitError::RepositoryDoesNotExist(err.msg),
11882                    )
11883                }
11884                "RepositoryNameRequiredException" => {
11885                    return RusotoError::Service(
11886                        PostCommentForComparedCommitError::RepositoryNameRequired(err.msg),
11887                    )
11888                }
11889                "ValidationException" => return RusotoError::Validation(err.msg),
11890                _ => {}
11891            }
11892        }
11893        RusotoError::Unknown(res)
11894    }
11895}
11896impl fmt::Display for PostCommentForComparedCommitError {
11897    #[allow(unused_variables)]
11898    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
11899        match *self {
11900            PostCommentForComparedCommitError::BeforeCommitIdAndAfterCommitIdAreSame(ref cause) => {
11901                write!(f, "{}", cause)
11902            }
11903            PostCommentForComparedCommitError::ClientRequestTokenRequired(ref cause) => {
11904                write!(f, "{}", cause)
11905            }
11906            PostCommentForComparedCommitError::CommentContentRequired(ref cause) => {
11907                write!(f, "{}", cause)
11908            }
11909            PostCommentForComparedCommitError::CommentContentSizeLimitExceeded(ref cause) => {
11910                write!(f, "{}", cause)
11911            }
11912            PostCommentForComparedCommitError::CommitDoesNotExist(ref cause) => {
11913                write!(f, "{}", cause)
11914            }
11915            PostCommentForComparedCommitError::CommitIdRequired(ref cause) => {
11916                write!(f, "{}", cause)
11917            }
11918            PostCommentForComparedCommitError::EncryptionIntegrityChecksFailed(ref cause) => {
11919                write!(f, "{}", cause)
11920            }
11921            PostCommentForComparedCommitError::EncryptionKeyAccessDenied(ref cause) => {
11922                write!(f, "{}", cause)
11923            }
11924            PostCommentForComparedCommitError::EncryptionKeyDisabled(ref cause) => {
11925                write!(f, "{}", cause)
11926            }
11927            PostCommentForComparedCommitError::EncryptionKeyNotFound(ref cause) => {
11928                write!(f, "{}", cause)
11929            }
11930            PostCommentForComparedCommitError::EncryptionKeyUnavailable(ref cause) => {
11931                write!(f, "{}", cause)
11932            }
11933            PostCommentForComparedCommitError::IdempotencyParameterMismatch(ref cause) => {
11934                write!(f, "{}", cause)
11935            }
11936            PostCommentForComparedCommitError::InvalidClientRequestToken(ref cause) => {
11937                write!(f, "{}", cause)
11938            }
11939            PostCommentForComparedCommitError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
11940            PostCommentForComparedCommitError::InvalidFileLocation(ref cause) => {
11941                write!(f, "{}", cause)
11942            }
11943            PostCommentForComparedCommitError::InvalidFilePosition(ref cause) => {
11944                write!(f, "{}", cause)
11945            }
11946            PostCommentForComparedCommitError::InvalidPath(ref cause) => write!(f, "{}", cause),
11947            PostCommentForComparedCommitError::InvalidRelativeFileVersionEnum(ref cause) => {
11948                write!(f, "{}", cause)
11949            }
11950            PostCommentForComparedCommitError::InvalidRepositoryName(ref cause) => {
11951                write!(f, "{}", cause)
11952            }
11953            PostCommentForComparedCommitError::PathDoesNotExist(ref cause) => {
11954                write!(f, "{}", cause)
11955            }
11956            PostCommentForComparedCommitError::PathRequired(ref cause) => write!(f, "{}", cause),
11957            PostCommentForComparedCommitError::RepositoryDoesNotExist(ref cause) => {
11958                write!(f, "{}", cause)
11959            }
11960            PostCommentForComparedCommitError::RepositoryNameRequired(ref cause) => {
11961                write!(f, "{}", cause)
11962            }
11963        }
11964    }
11965}
11966impl Error for PostCommentForComparedCommitError {}
11967/// Errors returned by PostCommentForPullRequest
11968#[derive(Debug, PartialEq)]
11969pub enum PostCommentForPullRequestError {
11970    /// <p>The before commit ID and the after commit ID are the same, which is not valid. The before commit ID and the after commit ID must be different commit IDs.</p>
11971    BeforeCommitIdAndAfterCommitIdAreSame(String),
11972    /// <p>A client request token is required. A client request token is an unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
11973    ClientRequestTokenRequired(String),
11974    /// <p>The comment is empty. You must provide some content for a comment. The content cannot be null.</p>
11975    CommentContentRequired(String),
11976    /// <p>The comment is too large. Comments are limited to 1,000 characters.</p>
11977    CommentContentSizeLimitExceeded(String),
11978    /// <p>The specified commit does not exist or no commit was specified, and the specified repository has no default branch.</p>
11979    CommitDoesNotExist(String),
11980    /// <p>A commit ID was not specified.</p>
11981    CommitIdRequired(String),
11982    /// <p>An encryption integrity check failed.</p>
11983    EncryptionIntegrityChecksFailed(String),
11984    /// <p>An encryption key could not be accessed.</p>
11985    EncryptionKeyAccessDenied(String),
11986    /// <p>The encryption key is disabled.</p>
11987    EncryptionKeyDisabled(String),
11988    /// <p>No encryption key was found.</p>
11989    EncryptionKeyNotFound(String),
11990    /// <p>The encryption key is not available.</p>
11991    EncryptionKeyUnavailable(String),
11992    /// <p>The client request token is not valid. Either the token is not in a valid format, or the token has been used in a previous request and cannot be reused.</p>
11993    IdempotencyParameterMismatch(String),
11994    /// <p>The client request token is not valid.</p>
11995    InvalidClientRequestToken(String),
11996    /// <p>The specified commit ID is not valid.</p>
11997    InvalidCommitId(String),
11998    /// <p>The location of the file is not valid. Make sure that you include the file name and extension.</p>
11999    InvalidFileLocation(String),
12000    /// <p>The position is not valid. Make sure that the line number exists in the version of the file you want to comment on.</p>
12001    InvalidFilePosition(String),
12002    /// <p>The specified path is not valid.</p>
12003    InvalidPath(String),
12004    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
12005    InvalidPullRequestId(String),
12006    /// <p>Either the enum is not in a valid format, or the specified file version enum is not valid in respect to the current file version.</p>
12007    InvalidRelativeFileVersionEnum(String),
12008    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
12009    InvalidRepositoryName(String),
12010    /// <p>The specified path does not exist.</p>
12011    PathDoesNotExist(String),
12012    /// <p>The folderPath for a location cannot be null.</p>
12013    PathRequired(String),
12014    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
12015    PullRequestDoesNotExist(String),
12016    /// <p>A pull request ID is required, but none was provided.</p>
12017    PullRequestIdRequired(String),
12018    /// <p>The specified repository does not exist.</p>
12019    RepositoryDoesNotExist(String),
12020    /// <p>A repository name is required, but was not specified.</p>
12021    RepositoryNameRequired(String),
12022    /// <p>The repository does not contain any pull requests with that pull request ID. Use GetPullRequest to verify the correct repository name for the pull request ID.</p>
12023    RepositoryNotAssociatedWithPullRequest(String),
12024}
12025
12026impl PostCommentForPullRequestError {
12027    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PostCommentForPullRequestError> {
12028        if let Some(err) = proto::json::Error::parse(&res) {
12029            match err.typ.as_str() {
12030                "BeforeCommitIdAndAfterCommitIdAreSameException" => {
12031                    return RusotoError::Service(
12032                        PostCommentForPullRequestError::BeforeCommitIdAndAfterCommitIdAreSame(
12033                            err.msg,
12034                        ),
12035                    )
12036                }
12037                "ClientRequestTokenRequiredException" => {
12038                    return RusotoError::Service(
12039                        PostCommentForPullRequestError::ClientRequestTokenRequired(err.msg),
12040                    )
12041                }
12042                "CommentContentRequiredException" => {
12043                    return RusotoError::Service(
12044                        PostCommentForPullRequestError::CommentContentRequired(err.msg),
12045                    )
12046                }
12047                "CommentContentSizeLimitExceededException" => {
12048                    return RusotoError::Service(
12049                        PostCommentForPullRequestError::CommentContentSizeLimitExceeded(err.msg),
12050                    )
12051                }
12052                "CommitDoesNotExistException" => {
12053                    return RusotoError::Service(
12054                        PostCommentForPullRequestError::CommitDoesNotExist(err.msg),
12055                    )
12056                }
12057                "CommitIdRequiredException" => {
12058                    return RusotoError::Service(PostCommentForPullRequestError::CommitIdRequired(
12059                        err.msg,
12060                    ))
12061                }
12062                "EncryptionIntegrityChecksFailedException" => {
12063                    return RusotoError::Service(
12064                        PostCommentForPullRequestError::EncryptionIntegrityChecksFailed(err.msg),
12065                    )
12066                }
12067                "EncryptionKeyAccessDeniedException" => {
12068                    return RusotoError::Service(
12069                        PostCommentForPullRequestError::EncryptionKeyAccessDenied(err.msg),
12070                    )
12071                }
12072                "EncryptionKeyDisabledException" => {
12073                    return RusotoError::Service(
12074                        PostCommentForPullRequestError::EncryptionKeyDisabled(err.msg),
12075                    )
12076                }
12077                "EncryptionKeyNotFoundException" => {
12078                    return RusotoError::Service(
12079                        PostCommentForPullRequestError::EncryptionKeyNotFound(err.msg),
12080                    )
12081                }
12082                "EncryptionKeyUnavailableException" => {
12083                    return RusotoError::Service(
12084                        PostCommentForPullRequestError::EncryptionKeyUnavailable(err.msg),
12085                    )
12086                }
12087                "IdempotencyParameterMismatchException" => {
12088                    return RusotoError::Service(
12089                        PostCommentForPullRequestError::IdempotencyParameterMismatch(err.msg),
12090                    )
12091                }
12092                "InvalidClientRequestTokenException" => {
12093                    return RusotoError::Service(
12094                        PostCommentForPullRequestError::InvalidClientRequestToken(err.msg),
12095                    )
12096                }
12097                "InvalidCommitIdException" => {
12098                    return RusotoError::Service(PostCommentForPullRequestError::InvalidCommitId(
12099                        err.msg,
12100                    ))
12101                }
12102                "InvalidFileLocationException" => {
12103                    return RusotoError::Service(
12104                        PostCommentForPullRequestError::InvalidFileLocation(err.msg),
12105                    )
12106                }
12107                "InvalidFilePositionException" => {
12108                    return RusotoError::Service(
12109                        PostCommentForPullRequestError::InvalidFilePosition(err.msg),
12110                    )
12111                }
12112                "InvalidPathException" => {
12113                    return RusotoError::Service(PostCommentForPullRequestError::InvalidPath(
12114                        err.msg,
12115                    ))
12116                }
12117                "InvalidPullRequestIdException" => {
12118                    return RusotoError::Service(
12119                        PostCommentForPullRequestError::InvalidPullRequestId(err.msg),
12120                    )
12121                }
12122                "InvalidRelativeFileVersionEnumException" => {
12123                    return RusotoError::Service(
12124                        PostCommentForPullRequestError::InvalidRelativeFileVersionEnum(err.msg),
12125                    )
12126                }
12127                "InvalidRepositoryNameException" => {
12128                    return RusotoError::Service(
12129                        PostCommentForPullRequestError::InvalidRepositoryName(err.msg),
12130                    )
12131                }
12132                "PathDoesNotExistException" => {
12133                    return RusotoError::Service(PostCommentForPullRequestError::PathDoesNotExist(
12134                        err.msg,
12135                    ))
12136                }
12137                "PathRequiredException" => {
12138                    return RusotoError::Service(PostCommentForPullRequestError::PathRequired(
12139                        err.msg,
12140                    ))
12141                }
12142                "PullRequestDoesNotExistException" => {
12143                    return RusotoError::Service(
12144                        PostCommentForPullRequestError::PullRequestDoesNotExist(err.msg),
12145                    )
12146                }
12147                "PullRequestIdRequiredException" => {
12148                    return RusotoError::Service(
12149                        PostCommentForPullRequestError::PullRequestIdRequired(err.msg),
12150                    )
12151                }
12152                "RepositoryDoesNotExistException" => {
12153                    return RusotoError::Service(
12154                        PostCommentForPullRequestError::RepositoryDoesNotExist(err.msg),
12155                    )
12156                }
12157                "RepositoryNameRequiredException" => {
12158                    return RusotoError::Service(
12159                        PostCommentForPullRequestError::RepositoryNameRequired(err.msg),
12160                    )
12161                }
12162                "RepositoryNotAssociatedWithPullRequestException" => {
12163                    return RusotoError::Service(
12164                        PostCommentForPullRequestError::RepositoryNotAssociatedWithPullRequest(
12165                            err.msg,
12166                        ),
12167                    )
12168                }
12169                "ValidationException" => return RusotoError::Validation(err.msg),
12170                _ => {}
12171            }
12172        }
12173        RusotoError::Unknown(res)
12174    }
12175}
12176impl fmt::Display for PostCommentForPullRequestError {
12177    #[allow(unused_variables)]
12178    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12179        match *self {
12180            PostCommentForPullRequestError::BeforeCommitIdAndAfterCommitIdAreSame(ref cause) => {
12181                write!(f, "{}", cause)
12182            }
12183            PostCommentForPullRequestError::ClientRequestTokenRequired(ref cause) => {
12184                write!(f, "{}", cause)
12185            }
12186            PostCommentForPullRequestError::CommentContentRequired(ref cause) => {
12187                write!(f, "{}", cause)
12188            }
12189            PostCommentForPullRequestError::CommentContentSizeLimitExceeded(ref cause) => {
12190                write!(f, "{}", cause)
12191            }
12192            PostCommentForPullRequestError::CommitDoesNotExist(ref cause) => write!(f, "{}", cause),
12193            PostCommentForPullRequestError::CommitIdRequired(ref cause) => write!(f, "{}", cause),
12194            PostCommentForPullRequestError::EncryptionIntegrityChecksFailed(ref cause) => {
12195                write!(f, "{}", cause)
12196            }
12197            PostCommentForPullRequestError::EncryptionKeyAccessDenied(ref cause) => {
12198                write!(f, "{}", cause)
12199            }
12200            PostCommentForPullRequestError::EncryptionKeyDisabled(ref cause) => {
12201                write!(f, "{}", cause)
12202            }
12203            PostCommentForPullRequestError::EncryptionKeyNotFound(ref cause) => {
12204                write!(f, "{}", cause)
12205            }
12206            PostCommentForPullRequestError::EncryptionKeyUnavailable(ref cause) => {
12207                write!(f, "{}", cause)
12208            }
12209            PostCommentForPullRequestError::IdempotencyParameterMismatch(ref cause) => {
12210                write!(f, "{}", cause)
12211            }
12212            PostCommentForPullRequestError::InvalidClientRequestToken(ref cause) => {
12213                write!(f, "{}", cause)
12214            }
12215            PostCommentForPullRequestError::InvalidCommitId(ref cause) => write!(f, "{}", cause),
12216            PostCommentForPullRequestError::InvalidFileLocation(ref cause) => {
12217                write!(f, "{}", cause)
12218            }
12219            PostCommentForPullRequestError::InvalidFilePosition(ref cause) => {
12220                write!(f, "{}", cause)
12221            }
12222            PostCommentForPullRequestError::InvalidPath(ref cause) => write!(f, "{}", cause),
12223            PostCommentForPullRequestError::InvalidPullRequestId(ref cause) => {
12224                write!(f, "{}", cause)
12225            }
12226            PostCommentForPullRequestError::InvalidRelativeFileVersionEnum(ref cause) => {
12227                write!(f, "{}", cause)
12228            }
12229            PostCommentForPullRequestError::InvalidRepositoryName(ref cause) => {
12230                write!(f, "{}", cause)
12231            }
12232            PostCommentForPullRequestError::PathDoesNotExist(ref cause) => write!(f, "{}", cause),
12233            PostCommentForPullRequestError::PathRequired(ref cause) => write!(f, "{}", cause),
12234            PostCommentForPullRequestError::PullRequestDoesNotExist(ref cause) => {
12235                write!(f, "{}", cause)
12236            }
12237            PostCommentForPullRequestError::PullRequestIdRequired(ref cause) => {
12238                write!(f, "{}", cause)
12239            }
12240            PostCommentForPullRequestError::RepositoryDoesNotExist(ref cause) => {
12241                write!(f, "{}", cause)
12242            }
12243            PostCommentForPullRequestError::RepositoryNameRequired(ref cause) => {
12244                write!(f, "{}", cause)
12245            }
12246            PostCommentForPullRequestError::RepositoryNotAssociatedWithPullRequest(ref cause) => {
12247                write!(f, "{}", cause)
12248            }
12249        }
12250    }
12251}
12252impl Error for PostCommentForPullRequestError {}
12253/// Errors returned by PostCommentReply
12254#[derive(Debug, PartialEq)]
12255pub enum PostCommentReplyError {
12256    /// <p>A client request token is required. A client request token is an unique, client-generated idempotency token that, when provided in a request, ensures the request cannot be repeated with a changed parameter. If a request is received with the same parameters and a token is included, the request returns information about the initial request that used that token.</p>
12257    ClientRequestTokenRequired(String),
12258    /// <p>The comment is empty. You must provide some content for a comment. The content cannot be null.</p>
12259    CommentContentRequired(String),
12260    /// <p>The comment is too large. Comments are limited to 1,000 characters.</p>
12261    CommentContentSizeLimitExceeded(String),
12262    /// <p>No comment exists with the provided ID. Verify that you have used the correct ID, and then try again.</p>
12263    CommentDoesNotExist(String),
12264    /// <p>The comment ID is missing or null. A comment ID is required.</p>
12265    CommentIdRequired(String),
12266    /// <p>The client request token is not valid. Either the token is not in a valid format, or the token has been used in a previous request and cannot be reused.</p>
12267    IdempotencyParameterMismatch(String),
12268    /// <p>The client request token is not valid.</p>
12269    InvalidClientRequestToken(String),
12270    /// <p>The comment ID is not in a valid format. Make sure that you have provided the full comment ID.</p>
12271    InvalidCommentId(String),
12272}
12273
12274impl PostCommentReplyError {
12275    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PostCommentReplyError> {
12276        if let Some(err) = proto::json::Error::parse(&res) {
12277            match err.typ.as_str() {
12278                "ClientRequestTokenRequiredException" => {
12279                    return RusotoError::Service(PostCommentReplyError::ClientRequestTokenRequired(
12280                        err.msg,
12281                    ))
12282                }
12283                "CommentContentRequiredException" => {
12284                    return RusotoError::Service(PostCommentReplyError::CommentContentRequired(
12285                        err.msg,
12286                    ))
12287                }
12288                "CommentContentSizeLimitExceededException" => {
12289                    return RusotoError::Service(
12290                        PostCommentReplyError::CommentContentSizeLimitExceeded(err.msg),
12291                    )
12292                }
12293                "CommentDoesNotExistException" => {
12294                    return RusotoError::Service(PostCommentReplyError::CommentDoesNotExist(
12295                        err.msg,
12296                    ))
12297                }
12298                "CommentIdRequiredException" => {
12299                    return RusotoError::Service(PostCommentReplyError::CommentIdRequired(err.msg))
12300                }
12301                "IdempotencyParameterMismatchException" => {
12302                    return RusotoError::Service(
12303                        PostCommentReplyError::IdempotencyParameterMismatch(err.msg),
12304                    )
12305                }
12306                "InvalidClientRequestTokenException" => {
12307                    return RusotoError::Service(PostCommentReplyError::InvalidClientRequestToken(
12308                        err.msg,
12309                    ))
12310                }
12311                "InvalidCommentIdException" => {
12312                    return RusotoError::Service(PostCommentReplyError::InvalidCommentId(err.msg))
12313                }
12314                "ValidationException" => return RusotoError::Validation(err.msg),
12315                _ => {}
12316            }
12317        }
12318        RusotoError::Unknown(res)
12319    }
12320}
12321impl fmt::Display for PostCommentReplyError {
12322    #[allow(unused_variables)]
12323    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12324        match *self {
12325            PostCommentReplyError::ClientRequestTokenRequired(ref cause) => write!(f, "{}", cause),
12326            PostCommentReplyError::CommentContentRequired(ref cause) => write!(f, "{}", cause),
12327            PostCommentReplyError::CommentContentSizeLimitExceeded(ref cause) => {
12328                write!(f, "{}", cause)
12329            }
12330            PostCommentReplyError::CommentDoesNotExist(ref cause) => write!(f, "{}", cause),
12331            PostCommentReplyError::CommentIdRequired(ref cause) => write!(f, "{}", cause),
12332            PostCommentReplyError::IdempotencyParameterMismatch(ref cause) => {
12333                write!(f, "{}", cause)
12334            }
12335            PostCommentReplyError::InvalidClientRequestToken(ref cause) => write!(f, "{}", cause),
12336            PostCommentReplyError::InvalidCommentId(ref cause) => write!(f, "{}", cause),
12337        }
12338    }
12339}
12340impl Error for PostCommentReplyError {}
12341/// Errors returned by PutCommentReaction
12342#[derive(Debug, PartialEq)]
12343pub enum PutCommentReactionError {
12344    /// <p>This comment has already been deleted. You cannot edit or delete a deleted comment.</p>
12345    CommentDeleted(String),
12346    /// <p>No comment exists with the provided ID. Verify that you have used the correct ID, and then try again.</p>
12347    CommentDoesNotExist(String),
12348    /// <p>The comment ID is missing or null. A comment ID is required.</p>
12349    CommentIdRequired(String),
12350    /// <p>The comment ID is not in a valid format. Make sure that you have provided the full comment ID.</p>
12351    InvalidCommentId(String),
12352    /// <p>The value of the reaction is not valid. For more information, see the <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html">AWS CodeCommit User Guide</a>.</p>
12353    InvalidReactionValue(String),
12354    /// <p>The number of reactions has been exceeded. Reactions are limited to one reaction per user for each individual comment ID.</p>
12355    ReactionLimitExceeded(String),
12356    /// <p>A reaction value is required. </p>
12357    ReactionValueRequired(String),
12358}
12359
12360impl PutCommentReactionError {
12361    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutCommentReactionError> {
12362        if let Some(err) = proto::json::Error::parse(&res) {
12363            match err.typ.as_str() {
12364                "CommentDeletedException" => {
12365                    return RusotoError::Service(PutCommentReactionError::CommentDeleted(err.msg))
12366                }
12367                "CommentDoesNotExistException" => {
12368                    return RusotoError::Service(PutCommentReactionError::CommentDoesNotExist(
12369                        err.msg,
12370                    ))
12371                }
12372                "CommentIdRequiredException" => {
12373                    return RusotoError::Service(PutCommentReactionError::CommentIdRequired(
12374                        err.msg,
12375                    ))
12376                }
12377                "InvalidCommentIdException" => {
12378                    return RusotoError::Service(PutCommentReactionError::InvalidCommentId(err.msg))
12379                }
12380                "InvalidReactionValueException" => {
12381                    return RusotoError::Service(PutCommentReactionError::InvalidReactionValue(
12382                        err.msg,
12383                    ))
12384                }
12385                "ReactionLimitExceededException" => {
12386                    return RusotoError::Service(PutCommentReactionError::ReactionLimitExceeded(
12387                        err.msg,
12388                    ))
12389                }
12390                "ReactionValueRequiredException" => {
12391                    return RusotoError::Service(PutCommentReactionError::ReactionValueRequired(
12392                        err.msg,
12393                    ))
12394                }
12395                "ValidationException" => return RusotoError::Validation(err.msg),
12396                _ => {}
12397            }
12398        }
12399        RusotoError::Unknown(res)
12400    }
12401}
12402impl fmt::Display for PutCommentReactionError {
12403    #[allow(unused_variables)]
12404    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12405        match *self {
12406            PutCommentReactionError::CommentDeleted(ref cause) => write!(f, "{}", cause),
12407            PutCommentReactionError::CommentDoesNotExist(ref cause) => write!(f, "{}", cause),
12408            PutCommentReactionError::CommentIdRequired(ref cause) => write!(f, "{}", cause),
12409            PutCommentReactionError::InvalidCommentId(ref cause) => write!(f, "{}", cause),
12410            PutCommentReactionError::InvalidReactionValue(ref cause) => write!(f, "{}", cause),
12411            PutCommentReactionError::ReactionLimitExceeded(ref cause) => write!(f, "{}", cause),
12412            PutCommentReactionError::ReactionValueRequired(ref cause) => write!(f, "{}", cause),
12413        }
12414    }
12415}
12416impl Error for PutCommentReactionError {}
12417/// Errors returned by PutFile
12418#[derive(Debug, PartialEq)]
12419pub enum PutFileError {
12420    /// <p>The specified branch does not exist.</p>
12421    BranchDoesNotExist(String),
12422    /// <p>The specified branch name is not valid because it is a tag name. Enter the name of a branch in the repository. For a list of valid branch names, use <a>ListBranches</a>.</p>
12423    BranchNameIsTagName(String),
12424    /// <p>A branch name is required, but was not specified.</p>
12425    BranchNameRequired(String),
12426    /// <p>The commit message is too long. Provide a shorter string. </p>
12427    CommitMessageLengthExceeded(String),
12428    /// <p>A file cannot be added to the repository because the specified path name has the same name as a file that already exists in this repository. Either provide a different name for the file, or specify a different path for the file.</p>
12429    DirectoryNameConflictsWithFileName(String),
12430    /// <p>An encryption integrity check failed.</p>
12431    EncryptionIntegrityChecksFailed(String),
12432    /// <p>An encryption key could not be accessed.</p>
12433    EncryptionKeyAccessDenied(String),
12434    /// <p>The encryption key is disabled.</p>
12435    EncryptionKeyDisabled(String),
12436    /// <p>No encryption key was found.</p>
12437    EncryptionKeyNotFound(String),
12438    /// <p>The encryption key is not available.</p>
12439    EncryptionKeyUnavailable(String),
12440    /// <p>The file cannot be added because it is empty. Empty files cannot be added to the repository with this API.</p>
12441    FileContentRequired(String),
12442    /// <p>The file cannot be added because it is too large. The maximum file size is 6 MB, and the combined file content change size is 7 MB. Consider making these changes using a Git client.</p>
12443    FileContentSizeLimitExceeded(String),
12444    /// <p>A file cannot be added to the repository because the specified file name has the same name as a directory in this repository. Either provide another name for the file, or add the file in a directory that does not match the file name.</p>
12445    FileNameConflictsWithDirectoryName(String),
12446    /// <p>The commit cannot be created because a specified file path points to a submodule. Verify that the destination files have valid file paths that do not point to a submodule.</p>
12447    FilePathConflictsWithSubmodulePath(String),
12448    /// <p>The commit cannot be created because at least one of the overall changes in the commit results in a folder whose contents exceed the limit of 6 MB. Either reduce the number and size of your changes, or split the changes across multiple folders.</p>
12449    FolderContentSizeLimitExceeded(String),
12450    /// <p>The specified reference name is not valid.</p>
12451    InvalidBranchName(String),
12452    /// <p>The specified deletion parameter is not valid.</p>
12453    InvalidDeletionParameter(String),
12454    /// <p>The specified email address either contains one or more characters that are not allowed, or it exceeds the maximum number of characters allowed for an email address.</p>
12455    InvalidEmail(String),
12456    /// <p>The specified file mode permission is not valid. For a list of valid file mode permissions, see <a>PutFile</a>. </p>
12457    InvalidFileMode(String),
12458    /// <p>The parent commit ID is not valid. The commit ID cannot be empty, and must match the head commit ID for the branch of the repository where you want to add or update a file.</p>
12459    InvalidParentCommitId(String),
12460    /// <p>The specified path is not valid.</p>
12461    InvalidPath(String),
12462    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
12463    InvalidRepositoryName(String),
12464    /// <p>The user name is not valid because it has exceeded the character limit for author names. </p>
12465    NameLengthExceeded(String),
12466    /// <p>The parent commit ID is not valid because it does not exist. The specified parent commit ID does not exist in the specified branch of the repository.</p>
12467    ParentCommitDoesNotExist(String),
12468    /// <p>The file could not be added because the provided parent commit ID is not the current tip of the specified branch. To view the full commit ID of the current head of the branch, use <a>GetBranch</a>.</p>
12469    ParentCommitIdOutdated(String),
12470    /// <p>A parent commit ID is required. To view the full commit ID of a branch in a repository, use <a>GetBranch</a> or a Git command (for example, git pull or git log).</p>
12471    ParentCommitIdRequired(String),
12472    /// <p>The folderPath for a location cannot be null.</p>
12473    PathRequired(String),
12474    /// <p>The specified repository does not exist.</p>
12475    RepositoryDoesNotExist(String),
12476    /// <p>A repository name is required, but was not specified.</p>
12477    RepositoryNameRequired(String),
12478    /// <p>The file was not added or updated because the content of the file is exactly the same as the content of that file in the repository and branch that you specified.</p>
12479    SameFileContent(String),
12480}
12481
12482impl PutFileError {
12483    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutFileError> {
12484        if let Some(err) = proto::json::Error::parse(&res) {
12485            match err.typ.as_str() {
12486                "BranchDoesNotExistException" => {
12487                    return RusotoError::Service(PutFileError::BranchDoesNotExist(err.msg))
12488                }
12489                "BranchNameIsTagNameException" => {
12490                    return RusotoError::Service(PutFileError::BranchNameIsTagName(err.msg))
12491                }
12492                "BranchNameRequiredException" => {
12493                    return RusotoError::Service(PutFileError::BranchNameRequired(err.msg))
12494                }
12495                "CommitMessageLengthExceededException" => {
12496                    return RusotoError::Service(PutFileError::CommitMessageLengthExceeded(err.msg))
12497                }
12498                "DirectoryNameConflictsWithFileNameException" => {
12499                    return RusotoError::Service(PutFileError::DirectoryNameConflictsWithFileName(
12500                        err.msg,
12501                    ))
12502                }
12503                "EncryptionIntegrityChecksFailedException" => {
12504                    return RusotoError::Service(PutFileError::EncryptionIntegrityChecksFailed(
12505                        err.msg,
12506                    ))
12507                }
12508                "EncryptionKeyAccessDeniedException" => {
12509                    return RusotoError::Service(PutFileError::EncryptionKeyAccessDenied(err.msg))
12510                }
12511                "EncryptionKeyDisabledException" => {
12512                    return RusotoError::Service(PutFileError::EncryptionKeyDisabled(err.msg))
12513                }
12514                "EncryptionKeyNotFoundException" => {
12515                    return RusotoError::Service(PutFileError::EncryptionKeyNotFound(err.msg))
12516                }
12517                "EncryptionKeyUnavailableException" => {
12518                    return RusotoError::Service(PutFileError::EncryptionKeyUnavailable(err.msg))
12519                }
12520                "FileContentRequiredException" => {
12521                    return RusotoError::Service(PutFileError::FileContentRequired(err.msg))
12522                }
12523                "FileContentSizeLimitExceededException" => {
12524                    return RusotoError::Service(PutFileError::FileContentSizeLimitExceeded(
12525                        err.msg,
12526                    ))
12527                }
12528                "FileNameConflictsWithDirectoryNameException" => {
12529                    return RusotoError::Service(PutFileError::FileNameConflictsWithDirectoryName(
12530                        err.msg,
12531                    ))
12532                }
12533                "FilePathConflictsWithSubmodulePathException" => {
12534                    return RusotoError::Service(PutFileError::FilePathConflictsWithSubmodulePath(
12535                        err.msg,
12536                    ))
12537                }
12538                "FolderContentSizeLimitExceededException" => {
12539                    return RusotoError::Service(PutFileError::FolderContentSizeLimitExceeded(
12540                        err.msg,
12541                    ))
12542                }
12543                "InvalidBranchNameException" => {
12544                    return RusotoError::Service(PutFileError::InvalidBranchName(err.msg))
12545                }
12546                "InvalidDeletionParameterException" => {
12547                    return RusotoError::Service(PutFileError::InvalidDeletionParameter(err.msg))
12548                }
12549                "InvalidEmailException" => {
12550                    return RusotoError::Service(PutFileError::InvalidEmail(err.msg))
12551                }
12552                "InvalidFileModeException" => {
12553                    return RusotoError::Service(PutFileError::InvalidFileMode(err.msg))
12554                }
12555                "InvalidParentCommitIdException" => {
12556                    return RusotoError::Service(PutFileError::InvalidParentCommitId(err.msg))
12557                }
12558                "InvalidPathException" => {
12559                    return RusotoError::Service(PutFileError::InvalidPath(err.msg))
12560                }
12561                "InvalidRepositoryNameException" => {
12562                    return RusotoError::Service(PutFileError::InvalidRepositoryName(err.msg))
12563                }
12564                "NameLengthExceededException" => {
12565                    return RusotoError::Service(PutFileError::NameLengthExceeded(err.msg))
12566                }
12567                "ParentCommitDoesNotExistException" => {
12568                    return RusotoError::Service(PutFileError::ParentCommitDoesNotExist(err.msg))
12569                }
12570                "ParentCommitIdOutdatedException" => {
12571                    return RusotoError::Service(PutFileError::ParentCommitIdOutdated(err.msg))
12572                }
12573                "ParentCommitIdRequiredException" => {
12574                    return RusotoError::Service(PutFileError::ParentCommitIdRequired(err.msg))
12575                }
12576                "PathRequiredException" => {
12577                    return RusotoError::Service(PutFileError::PathRequired(err.msg))
12578                }
12579                "RepositoryDoesNotExistException" => {
12580                    return RusotoError::Service(PutFileError::RepositoryDoesNotExist(err.msg))
12581                }
12582                "RepositoryNameRequiredException" => {
12583                    return RusotoError::Service(PutFileError::RepositoryNameRequired(err.msg))
12584                }
12585                "SameFileContentException" => {
12586                    return RusotoError::Service(PutFileError::SameFileContent(err.msg))
12587                }
12588                "ValidationException" => return RusotoError::Validation(err.msg),
12589                _ => {}
12590            }
12591        }
12592        RusotoError::Unknown(res)
12593    }
12594}
12595impl fmt::Display for PutFileError {
12596    #[allow(unused_variables)]
12597    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12598        match *self {
12599            PutFileError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
12600            PutFileError::BranchNameIsTagName(ref cause) => write!(f, "{}", cause),
12601            PutFileError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
12602            PutFileError::CommitMessageLengthExceeded(ref cause) => write!(f, "{}", cause),
12603            PutFileError::DirectoryNameConflictsWithFileName(ref cause) => write!(f, "{}", cause),
12604            PutFileError::EncryptionIntegrityChecksFailed(ref cause) => write!(f, "{}", cause),
12605            PutFileError::EncryptionKeyAccessDenied(ref cause) => write!(f, "{}", cause),
12606            PutFileError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
12607            PutFileError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
12608            PutFileError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
12609            PutFileError::FileContentRequired(ref cause) => write!(f, "{}", cause),
12610            PutFileError::FileContentSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
12611            PutFileError::FileNameConflictsWithDirectoryName(ref cause) => write!(f, "{}", cause),
12612            PutFileError::FilePathConflictsWithSubmodulePath(ref cause) => write!(f, "{}", cause),
12613            PutFileError::FolderContentSizeLimitExceeded(ref cause) => write!(f, "{}", cause),
12614            PutFileError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
12615            PutFileError::InvalidDeletionParameter(ref cause) => write!(f, "{}", cause),
12616            PutFileError::InvalidEmail(ref cause) => write!(f, "{}", cause),
12617            PutFileError::InvalidFileMode(ref cause) => write!(f, "{}", cause),
12618            PutFileError::InvalidParentCommitId(ref cause) => write!(f, "{}", cause),
12619            PutFileError::InvalidPath(ref cause) => write!(f, "{}", cause),
12620            PutFileError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
12621            PutFileError::NameLengthExceeded(ref cause) => write!(f, "{}", cause),
12622            PutFileError::ParentCommitDoesNotExist(ref cause) => write!(f, "{}", cause),
12623            PutFileError::ParentCommitIdOutdated(ref cause) => write!(f, "{}", cause),
12624            PutFileError::ParentCommitIdRequired(ref cause) => write!(f, "{}", cause),
12625            PutFileError::PathRequired(ref cause) => write!(f, "{}", cause),
12626            PutFileError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
12627            PutFileError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
12628            PutFileError::SameFileContent(ref cause) => write!(f, "{}", cause),
12629        }
12630    }
12631}
12632impl Error for PutFileError {}
12633/// Errors returned by PutRepositoryTriggers
12634#[derive(Debug, PartialEq)]
12635pub enum PutRepositoryTriggersError {
12636    /// <p>An encryption integrity check failed.</p>
12637    EncryptionIntegrityChecksFailed(String),
12638    /// <p>An encryption key could not be accessed.</p>
12639    EncryptionKeyAccessDenied(String),
12640    /// <p>The encryption key is disabled.</p>
12641    EncryptionKeyDisabled(String),
12642    /// <p>No encryption key was found.</p>
12643    EncryptionKeyNotFound(String),
12644    /// <p>The encryption key is not available.</p>
12645    EncryptionKeyUnavailable(String),
12646    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
12647    InvalidRepositoryName(String),
12648    /// <p>One or more branch names specified for the trigger is not valid.</p>
12649    InvalidRepositoryTriggerBranchName(String),
12650    /// <p>The custom data provided for the trigger is not valid.</p>
12651    InvalidRepositoryTriggerCustomData(String),
12652    /// <p>The Amazon Resource Name (ARN) for the trigger is not valid for the specified destination. The most common reason for this error is that the ARN does not meet the requirements for the service type.</p>
12653    InvalidRepositoryTriggerDestinationArn(String),
12654    /// <p>One or more events specified for the trigger is not valid. Check to make sure that all events specified match the requirements for allowed events.</p>
12655    InvalidRepositoryTriggerEvents(String),
12656    /// <p>The name of the trigger is not valid.</p>
12657    InvalidRepositoryTriggerName(String),
12658    /// <p>The AWS Region for the trigger target does not match the AWS Region for the repository. Triggers must be created in the same Region as the target for the trigger.</p>
12659    InvalidRepositoryTriggerRegion(String),
12660    /// <p>The number of branches for the trigger was exceeded.</p>
12661    MaximumBranchesExceeded(String),
12662    /// <p>The number of triggers allowed for the repository was exceeded.</p>
12663    MaximumRepositoryTriggersExceeded(String),
12664    /// <p>The specified repository does not exist.</p>
12665    RepositoryDoesNotExist(String),
12666    /// <p>A repository name is required, but was not specified.</p>
12667    RepositoryNameRequired(String),
12668    /// <p>At least one branch name is required, but was not specified in the trigger configuration.</p>
12669    RepositoryTriggerBranchNameListRequired(String),
12670    /// <p>A destination ARN for the target service for the trigger is required, but was not specified.</p>
12671    RepositoryTriggerDestinationArnRequired(String),
12672    /// <p>At least one event for the trigger is required, but was not specified.</p>
12673    RepositoryTriggerEventsListRequired(String),
12674    /// <p>A name for the trigger is required, but was not specified.</p>
12675    RepositoryTriggerNameRequired(String),
12676    /// <p>The list of triggers for the repository is required, but was not specified.</p>
12677    RepositoryTriggersListRequired(String),
12678}
12679
12680impl PutRepositoryTriggersError {
12681    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutRepositoryTriggersError> {
12682        if let Some(err) = proto::json::Error::parse(&res) {
12683            match err.typ.as_str() {
12684                "EncryptionIntegrityChecksFailedException" => {
12685                    return RusotoError::Service(
12686                        PutRepositoryTriggersError::EncryptionIntegrityChecksFailed(err.msg),
12687                    )
12688                }
12689                "EncryptionKeyAccessDeniedException" => {
12690                    return RusotoError::Service(
12691                        PutRepositoryTriggersError::EncryptionKeyAccessDenied(err.msg),
12692                    )
12693                }
12694                "EncryptionKeyDisabledException" => {
12695                    return RusotoError::Service(PutRepositoryTriggersError::EncryptionKeyDisabled(
12696                        err.msg,
12697                    ))
12698                }
12699                "EncryptionKeyNotFoundException" => {
12700                    return RusotoError::Service(PutRepositoryTriggersError::EncryptionKeyNotFound(
12701                        err.msg,
12702                    ))
12703                }
12704                "EncryptionKeyUnavailableException" => {
12705                    return RusotoError::Service(
12706                        PutRepositoryTriggersError::EncryptionKeyUnavailable(err.msg),
12707                    )
12708                }
12709                "InvalidRepositoryNameException" => {
12710                    return RusotoError::Service(PutRepositoryTriggersError::InvalidRepositoryName(
12711                        err.msg,
12712                    ))
12713                }
12714                "InvalidRepositoryTriggerBranchNameException" => {
12715                    return RusotoError::Service(
12716                        PutRepositoryTriggersError::InvalidRepositoryTriggerBranchName(err.msg),
12717                    )
12718                }
12719                "InvalidRepositoryTriggerCustomDataException" => {
12720                    return RusotoError::Service(
12721                        PutRepositoryTriggersError::InvalidRepositoryTriggerCustomData(err.msg),
12722                    )
12723                }
12724                "InvalidRepositoryTriggerDestinationArnException" => {
12725                    return RusotoError::Service(
12726                        PutRepositoryTriggersError::InvalidRepositoryTriggerDestinationArn(err.msg),
12727                    )
12728                }
12729                "InvalidRepositoryTriggerEventsException" => {
12730                    return RusotoError::Service(
12731                        PutRepositoryTriggersError::InvalidRepositoryTriggerEvents(err.msg),
12732                    )
12733                }
12734                "InvalidRepositoryTriggerNameException" => {
12735                    return RusotoError::Service(
12736                        PutRepositoryTriggersError::InvalidRepositoryTriggerName(err.msg),
12737                    )
12738                }
12739                "InvalidRepositoryTriggerRegionException" => {
12740                    return RusotoError::Service(
12741                        PutRepositoryTriggersError::InvalidRepositoryTriggerRegion(err.msg),
12742                    )
12743                }
12744                "MaximumBranchesExceededException" => {
12745                    return RusotoError::Service(
12746                        PutRepositoryTriggersError::MaximumBranchesExceeded(err.msg),
12747                    )
12748                }
12749                "MaximumRepositoryTriggersExceededException" => {
12750                    return RusotoError::Service(
12751                        PutRepositoryTriggersError::MaximumRepositoryTriggersExceeded(err.msg),
12752                    )
12753                }
12754                "RepositoryDoesNotExistException" => {
12755                    return RusotoError::Service(
12756                        PutRepositoryTriggersError::RepositoryDoesNotExist(err.msg),
12757                    )
12758                }
12759                "RepositoryNameRequiredException" => {
12760                    return RusotoError::Service(
12761                        PutRepositoryTriggersError::RepositoryNameRequired(err.msg),
12762                    )
12763                }
12764                "RepositoryTriggerBranchNameListRequiredException" => {
12765                    return RusotoError::Service(
12766                        PutRepositoryTriggersError::RepositoryTriggerBranchNameListRequired(
12767                            err.msg,
12768                        ),
12769                    )
12770                }
12771                "RepositoryTriggerDestinationArnRequiredException" => {
12772                    return RusotoError::Service(
12773                        PutRepositoryTriggersError::RepositoryTriggerDestinationArnRequired(
12774                            err.msg,
12775                        ),
12776                    )
12777                }
12778                "RepositoryTriggerEventsListRequiredException" => {
12779                    return RusotoError::Service(
12780                        PutRepositoryTriggersError::RepositoryTriggerEventsListRequired(err.msg),
12781                    )
12782                }
12783                "RepositoryTriggerNameRequiredException" => {
12784                    return RusotoError::Service(
12785                        PutRepositoryTriggersError::RepositoryTriggerNameRequired(err.msg),
12786                    )
12787                }
12788                "RepositoryTriggersListRequiredException" => {
12789                    return RusotoError::Service(
12790                        PutRepositoryTriggersError::RepositoryTriggersListRequired(err.msg),
12791                    )
12792                }
12793                "ValidationException" => return RusotoError::Validation(err.msg),
12794                _ => {}
12795            }
12796        }
12797        RusotoError::Unknown(res)
12798    }
12799}
12800impl fmt::Display for PutRepositoryTriggersError {
12801    #[allow(unused_variables)]
12802    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12803        match *self {
12804            PutRepositoryTriggersError::EncryptionIntegrityChecksFailed(ref cause) => {
12805                write!(f, "{}", cause)
12806            }
12807            PutRepositoryTriggersError::EncryptionKeyAccessDenied(ref cause) => {
12808                write!(f, "{}", cause)
12809            }
12810            PutRepositoryTriggersError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
12811            PutRepositoryTriggersError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
12812            PutRepositoryTriggersError::EncryptionKeyUnavailable(ref cause) => {
12813                write!(f, "{}", cause)
12814            }
12815            PutRepositoryTriggersError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
12816            PutRepositoryTriggersError::InvalidRepositoryTriggerBranchName(ref cause) => {
12817                write!(f, "{}", cause)
12818            }
12819            PutRepositoryTriggersError::InvalidRepositoryTriggerCustomData(ref cause) => {
12820                write!(f, "{}", cause)
12821            }
12822            PutRepositoryTriggersError::InvalidRepositoryTriggerDestinationArn(ref cause) => {
12823                write!(f, "{}", cause)
12824            }
12825            PutRepositoryTriggersError::InvalidRepositoryTriggerEvents(ref cause) => {
12826                write!(f, "{}", cause)
12827            }
12828            PutRepositoryTriggersError::InvalidRepositoryTriggerName(ref cause) => {
12829                write!(f, "{}", cause)
12830            }
12831            PutRepositoryTriggersError::InvalidRepositoryTriggerRegion(ref cause) => {
12832                write!(f, "{}", cause)
12833            }
12834            PutRepositoryTriggersError::MaximumBranchesExceeded(ref cause) => {
12835                write!(f, "{}", cause)
12836            }
12837            PutRepositoryTriggersError::MaximumRepositoryTriggersExceeded(ref cause) => {
12838                write!(f, "{}", cause)
12839            }
12840            PutRepositoryTriggersError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
12841            PutRepositoryTriggersError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
12842            PutRepositoryTriggersError::RepositoryTriggerBranchNameListRequired(ref cause) => {
12843                write!(f, "{}", cause)
12844            }
12845            PutRepositoryTriggersError::RepositoryTriggerDestinationArnRequired(ref cause) => {
12846                write!(f, "{}", cause)
12847            }
12848            PutRepositoryTriggersError::RepositoryTriggerEventsListRequired(ref cause) => {
12849                write!(f, "{}", cause)
12850            }
12851            PutRepositoryTriggersError::RepositoryTriggerNameRequired(ref cause) => {
12852                write!(f, "{}", cause)
12853            }
12854            PutRepositoryTriggersError::RepositoryTriggersListRequired(ref cause) => {
12855                write!(f, "{}", cause)
12856            }
12857        }
12858    }
12859}
12860impl Error for PutRepositoryTriggersError {}
12861/// Errors returned by TagResource
12862#[derive(Debug, PartialEq)]
12863pub enum TagResourceError {
12864    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
12865    InvalidRepositoryName(String),
12866    /// <p>The value for the resource ARN is not valid. For more information about resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the AWS CodeCommit User Guide.</p>
12867    InvalidResourceArn(String),
12868    /// <p>The specified tag is not valid. Key names cannot be prefixed with aws:.</p>
12869    InvalidSystemTagUsage(String),
12870    /// <p>The map of tags is not valid.</p>
12871    InvalidTagsMap(String),
12872    /// <p>The specified repository does not exist.</p>
12873    RepositoryDoesNotExist(String),
12874    /// <p>A valid Amazon Resource Name (ARN) for an AWS CodeCommit resource is required. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the AWS CodeCommit User Guide.</p>
12875    ResourceArnRequired(String),
12876    /// <p>The tag policy is not valid.</p>
12877    TagPolicy(String),
12878    /// <p>A map of tags is required.</p>
12879    TagsMapRequired(String),
12880    /// <p>The maximum number of tags for an AWS CodeCommit resource has been exceeded.</p>
12881    TooManyTags(String),
12882}
12883
12884impl TagResourceError {
12885    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TagResourceError> {
12886        if let Some(err) = proto::json::Error::parse(&res) {
12887            match err.typ.as_str() {
12888                "InvalidRepositoryNameException" => {
12889                    return RusotoError::Service(TagResourceError::InvalidRepositoryName(err.msg))
12890                }
12891                "InvalidResourceArnException" => {
12892                    return RusotoError::Service(TagResourceError::InvalidResourceArn(err.msg))
12893                }
12894                "InvalidSystemTagUsageException" => {
12895                    return RusotoError::Service(TagResourceError::InvalidSystemTagUsage(err.msg))
12896                }
12897                "InvalidTagsMapException" => {
12898                    return RusotoError::Service(TagResourceError::InvalidTagsMap(err.msg))
12899                }
12900                "RepositoryDoesNotExistException" => {
12901                    return RusotoError::Service(TagResourceError::RepositoryDoesNotExist(err.msg))
12902                }
12903                "ResourceArnRequiredException" => {
12904                    return RusotoError::Service(TagResourceError::ResourceArnRequired(err.msg))
12905                }
12906                "TagPolicyException" => {
12907                    return RusotoError::Service(TagResourceError::TagPolicy(err.msg))
12908                }
12909                "TagsMapRequiredException" => {
12910                    return RusotoError::Service(TagResourceError::TagsMapRequired(err.msg))
12911                }
12912                "TooManyTagsException" => {
12913                    return RusotoError::Service(TagResourceError::TooManyTags(err.msg))
12914                }
12915                "ValidationException" => return RusotoError::Validation(err.msg),
12916                _ => {}
12917            }
12918        }
12919        RusotoError::Unknown(res)
12920    }
12921}
12922impl fmt::Display for TagResourceError {
12923    #[allow(unused_variables)]
12924    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
12925        match *self {
12926            TagResourceError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
12927            TagResourceError::InvalidResourceArn(ref cause) => write!(f, "{}", cause),
12928            TagResourceError::InvalidSystemTagUsage(ref cause) => write!(f, "{}", cause),
12929            TagResourceError::InvalidTagsMap(ref cause) => write!(f, "{}", cause),
12930            TagResourceError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
12931            TagResourceError::ResourceArnRequired(ref cause) => write!(f, "{}", cause),
12932            TagResourceError::TagPolicy(ref cause) => write!(f, "{}", cause),
12933            TagResourceError::TagsMapRequired(ref cause) => write!(f, "{}", cause),
12934            TagResourceError::TooManyTags(ref cause) => write!(f, "{}", cause),
12935        }
12936    }
12937}
12938impl Error for TagResourceError {}
12939/// Errors returned by TestRepositoryTriggers
12940#[derive(Debug, PartialEq)]
12941pub enum TestRepositoryTriggersError {
12942    /// <p>An encryption integrity check failed.</p>
12943    EncryptionIntegrityChecksFailed(String),
12944    /// <p>An encryption key could not be accessed.</p>
12945    EncryptionKeyAccessDenied(String),
12946    /// <p>The encryption key is disabled.</p>
12947    EncryptionKeyDisabled(String),
12948    /// <p>No encryption key was found.</p>
12949    EncryptionKeyNotFound(String),
12950    /// <p>The encryption key is not available.</p>
12951    EncryptionKeyUnavailable(String),
12952    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
12953    InvalidRepositoryName(String),
12954    /// <p>One or more branch names specified for the trigger is not valid.</p>
12955    InvalidRepositoryTriggerBranchName(String),
12956    /// <p>The custom data provided for the trigger is not valid.</p>
12957    InvalidRepositoryTriggerCustomData(String),
12958    /// <p>The Amazon Resource Name (ARN) for the trigger is not valid for the specified destination. The most common reason for this error is that the ARN does not meet the requirements for the service type.</p>
12959    InvalidRepositoryTriggerDestinationArn(String),
12960    /// <p>One or more events specified for the trigger is not valid. Check to make sure that all events specified match the requirements for allowed events.</p>
12961    InvalidRepositoryTriggerEvents(String),
12962    /// <p>The name of the trigger is not valid.</p>
12963    InvalidRepositoryTriggerName(String),
12964    /// <p>The AWS Region for the trigger target does not match the AWS Region for the repository. Triggers must be created in the same Region as the target for the trigger.</p>
12965    InvalidRepositoryTriggerRegion(String),
12966    /// <p>The number of branches for the trigger was exceeded.</p>
12967    MaximumBranchesExceeded(String),
12968    /// <p>The number of triggers allowed for the repository was exceeded.</p>
12969    MaximumRepositoryTriggersExceeded(String),
12970    /// <p>The specified repository does not exist.</p>
12971    RepositoryDoesNotExist(String),
12972    /// <p>A repository name is required, but was not specified.</p>
12973    RepositoryNameRequired(String),
12974    /// <p>At least one branch name is required, but was not specified in the trigger configuration.</p>
12975    RepositoryTriggerBranchNameListRequired(String),
12976    /// <p>A destination ARN for the target service for the trigger is required, but was not specified.</p>
12977    RepositoryTriggerDestinationArnRequired(String),
12978    /// <p>At least one event for the trigger is required, but was not specified.</p>
12979    RepositoryTriggerEventsListRequired(String),
12980    /// <p>A name for the trigger is required, but was not specified.</p>
12981    RepositoryTriggerNameRequired(String),
12982    /// <p>The list of triggers for the repository is required, but was not specified.</p>
12983    RepositoryTriggersListRequired(String),
12984}
12985
12986impl TestRepositoryTriggersError {
12987    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TestRepositoryTriggersError> {
12988        if let Some(err) = proto::json::Error::parse(&res) {
12989            match err.typ.as_str() {
12990                "EncryptionIntegrityChecksFailedException" => {
12991                    return RusotoError::Service(
12992                        TestRepositoryTriggersError::EncryptionIntegrityChecksFailed(err.msg),
12993                    )
12994                }
12995                "EncryptionKeyAccessDeniedException" => {
12996                    return RusotoError::Service(
12997                        TestRepositoryTriggersError::EncryptionKeyAccessDenied(err.msg),
12998                    )
12999                }
13000                "EncryptionKeyDisabledException" => {
13001                    return RusotoError::Service(
13002                        TestRepositoryTriggersError::EncryptionKeyDisabled(err.msg),
13003                    )
13004                }
13005                "EncryptionKeyNotFoundException" => {
13006                    return RusotoError::Service(
13007                        TestRepositoryTriggersError::EncryptionKeyNotFound(err.msg),
13008                    )
13009                }
13010                "EncryptionKeyUnavailableException" => {
13011                    return RusotoError::Service(
13012                        TestRepositoryTriggersError::EncryptionKeyUnavailable(err.msg),
13013                    )
13014                }
13015                "InvalidRepositoryNameException" => {
13016                    return RusotoError::Service(
13017                        TestRepositoryTriggersError::InvalidRepositoryName(err.msg),
13018                    )
13019                }
13020                "InvalidRepositoryTriggerBranchNameException" => {
13021                    return RusotoError::Service(
13022                        TestRepositoryTriggersError::InvalidRepositoryTriggerBranchName(err.msg),
13023                    )
13024                }
13025                "InvalidRepositoryTriggerCustomDataException" => {
13026                    return RusotoError::Service(
13027                        TestRepositoryTriggersError::InvalidRepositoryTriggerCustomData(err.msg),
13028                    )
13029                }
13030                "InvalidRepositoryTriggerDestinationArnException" => {
13031                    return RusotoError::Service(
13032                        TestRepositoryTriggersError::InvalidRepositoryTriggerDestinationArn(
13033                            err.msg,
13034                        ),
13035                    )
13036                }
13037                "InvalidRepositoryTriggerEventsException" => {
13038                    return RusotoError::Service(
13039                        TestRepositoryTriggersError::InvalidRepositoryTriggerEvents(err.msg),
13040                    )
13041                }
13042                "InvalidRepositoryTriggerNameException" => {
13043                    return RusotoError::Service(
13044                        TestRepositoryTriggersError::InvalidRepositoryTriggerName(err.msg),
13045                    )
13046                }
13047                "InvalidRepositoryTriggerRegionException" => {
13048                    return RusotoError::Service(
13049                        TestRepositoryTriggersError::InvalidRepositoryTriggerRegion(err.msg),
13050                    )
13051                }
13052                "MaximumBranchesExceededException" => {
13053                    return RusotoError::Service(
13054                        TestRepositoryTriggersError::MaximumBranchesExceeded(err.msg),
13055                    )
13056                }
13057                "MaximumRepositoryTriggersExceededException" => {
13058                    return RusotoError::Service(
13059                        TestRepositoryTriggersError::MaximumRepositoryTriggersExceeded(err.msg),
13060                    )
13061                }
13062                "RepositoryDoesNotExistException" => {
13063                    return RusotoError::Service(
13064                        TestRepositoryTriggersError::RepositoryDoesNotExist(err.msg),
13065                    )
13066                }
13067                "RepositoryNameRequiredException" => {
13068                    return RusotoError::Service(
13069                        TestRepositoryTriggersError::RepositoryNameRequired(err.msg),
13070                    )
13071                }
13072                "RepositoryTriggerBranchNameListRequiredException" => {
13073                    return RusotoError::Service(
13074                        TestRepositoryTriggersError::RepositoryTriggerBranchNameListRequired(
13075                            err.msg,
13076                        ),
13077                    )
13078                }
13079                "RepositoryTriggerDestinationArnRequiredException" => {
13080                    return RusotoError::Service(
13081                        TestRepositoryTriggersError::RepositoryTriggerDestinationArnRequired(
13082                            err.msg,
13083                        ),
13084                    )
13085                }
13086                "RepositoryTriggerEventsListRequiredException" => {
13087                    return RusotoError::Service(
13088                        TestRepositoryTriggersError::RepositoryTriggerEventsListRequired(err.msg),
13089                    )
13090                }
13091                "RepositoryTriggerNameRequiredException" => {
13092                    return RusotoError::Service(
13093                        TestRepositoryTriggersError::RepositoryTriggerNameRequired(err.msg),
13094                    )
13095                }
13096                "RepositoryTriggersListRequiredException" => {
13097                    return RusotoError::Service(
13098                        TestRepositoryTriggersError::RepositoryTriggersListRequired(err.msg),
13099                    )
13100                }
13101                "ValidationException" => return RusotoError::Validation(err.msg),
13102                _ => {}
13103            }
13104        }
13105        RusotoError::Unknown(res)
13106    }
13107}
13108impl fmt::Display for TestRepositoryTriggersError {
13109    #[allow(unused_variables)]
13110    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13111        match *self {
13112            TestRepositoryTriggersError::EncryptionIntegrityChecksFailed(ref cause) => {
13113                write!(f, "{}", cause)
13114            }
13115            TestRepositoryTriggersError::EncryptionKeyAccessDenied(ref cause) => {
13116                write!(f, "{}", cause)
13117            }
13118            TestRepositoryTriggersError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
13119            TestRepositoryTriggersError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
13120            TestRepositoryTriggersError::EncryptionKeyUnavailable(ref cause) => {
13121                write!(f, "{}", cause)
13122            }
13123            TestRepositoryTriggersError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
13124            TestRepositoryTriggersError::InvalidRepositoryTriggerBranchName(ref cause) => {
13125                write!(f, "{}", cause)
13126            }
13127            TestRepositoryTriggersError::InvalidRepositoryTriggerCustomData(ref cause) => {
13128                write!(f, "{}", cause)
13129            }
13130            TestRepositoryTriggersError::InvalidRepositoryTriggerDestinationArn(ref cause) => {
13131                write!(f, "{}", cause)
13132            }
13133            TestRepositoryTriggersError::InvalidRepositoryTriggerEvents(ref cause) => {
13134                write!(f, "{}", cause)
13135            }
13136            TestRepositoryTriggersError::InvalidRepositoryTriggerName(ref cause) => {
13137                write!(f, "{}", cause)
13138            }
13139            TestRepositoryTriggersError::InvalidRepositoryTriggerRegion(ref cause) => {
13140                write!(f, "{}", cause)
13141            }
13142            TestRepositoryTriggersError::MaximumBranchesExceeded(ref cause) => {
13143                write!(f, "{}", cause)
13144            }
13145            TestRepositoryTriggersError::MaximumRepositoryTriggersExceeded(ref cause) => {
13146                write!(f, "{}", cause)
13147            }
13148            TestRepositoryTriggersError::RepositoryDoesNotExist(ref cause) => {
13149                write!(f, "{}", cause)
13150            }
13151            TestRepositoryTriggersError::RepositoryNameRequired(ref cause) => {
13152                write!(f, "{}", cause)
13153            }
13154            TestRepositoryTriggersError::RepositoryTriggerBranchNameListRequired(ref cause) => {
13155                write!(f, "{}", cause)
13156            }
13157            TestRepositoryTriggersError::RepositoryTriggerDestinationArnRequired(ref cause) => {
13158                write!(f, "{}", cause)
13159            }
13160            TestRepositoryTriggersError::RepositoryTriggerEventsListRequired(ref cause) => {
13161                write!(f, "{}", cause)
13162            }
13163            TestRepositoryTriggersError::RepositoryTriggerNameRequired(ref cause) => {
13164                write!(f, "{}", cause)
13165            }
13166            TestRepositoryTriggersError::RepositoryTriggersListRequired(ref cause) => {
13167                write!(f, "{}", cause)
13168            }
13169        }
13170    }
13171}
13172impl Error for TestRepositoryTriggersError {}
13173/// Errors returned by UntagResource
13174#[derive(Debug, PartialEq)]
13175pub enum UntagResourceError {
13176    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
13177    InvalidRepositoryName(String),
13178    /// <p>The value for the resource ARN is not valid. For more information about resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the AWS CodeCommit User Guide.</p>
13179    InvalidResourceArn(String),
13180    /// <p>The specified tag is not valid. Key names cannot be prefixed with aws:.</p>
13181    InvalidSystemTagUsage(String),
13182    /// <p>The list of tags is not valid.</p>
13183    InvalidTagKeysList(String),
13184    /// <p>The specified repository does not exist.</p>
13185    RepositoryDoesNotExist(String),
13186    /// <p>A valid Amazon Resource Name (ARN) for an AWS CodeCommit resource is required. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the AWS CodeCommit User Guide.</p>
13187    ResourceArnRequired(String),
13188    /// <p>A list of tag keys is required. The list cannot be empty or null.</p>
13189    TagKeysListRequired(String),
13190    /// <p>The tag policy is not valid.</p>
13191    TagPolicy(String),
13192    /// <p>The maximum number of tags for an AWS CodeCommit resource has been exceeded.</p>
13193    TooManyTags(String),
13194}
13195
13196impl UntagResourceError {
13197    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UntagResourceError> {
13198        if let Some(err) = proto::json::Error::parse(&res) {
13199            match err.typ.as_str() {
13200                "InvalidRepositoryNameException" => {
13201                    return RusotoError::Service(UntagResourceError::InvalidRepositoryName(err.msg))
13202                }
13203                "InvalidResourceArnException" => {
13204                    return RusotoError::Service(UntagResourceError::InvalidResourceArn(err.msg))
13205                }
13206                "InvalidSystemTagUsageException" => {
13207                    return RusotoError::Service(UntagResourceError::InvalidSystemTagUsage(err.msg))
13208                }
13209                "InvalidTagKeysListException" => {
13210                    return RusotoError::Service(UntagResourceError::InvalidTagKeysList(err.msg))
13211                }
13212                "RepositoryDoesNotExistException" => {
13213                    return RusotoError::Service(UntagResourceError::RepositoryDoesNotExist(
13214                        err.msg,
13215                    ))
13216                }
13217                "ResourceArnRequiredException" => {
13218                    return RusotoError::Service(UntagResourceError::ResourceArnRequired(err.msg))
13219                }
13220                "TagKeysListRequiredException" => {
13221                    return RusotoError::Service(UntagResourceError::TagKeysListRequired(err.msg))
13222                }
13223                "TagPolicyException" => {
13224                    return RusotoError::Service(UntagResourceError::TagPolicy(err.msg))
13225                }
13226                "TooManyTagsException" => {
13227                    return RusotoError::Service(UntagResourceError::TooManyTags(err.msg))
13228                }
13229                "ValidationException" => return RusotoError::Validation(err.msg),
13230                _ => {}
13231            }
13232        }
13233        RusotoError::Unknown(res)
13234    }
13235}
13236impl fmt::Display for UntagResourceError {
13237    #[allow(unused_variables)]
13238    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13239        match *self {
13240            UntagResourceError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
13241            UntagResourceError::InvalidResourceArn(ref cause) => write!(f, "{}", cause),
13242            UntagResourceError::InvalidSystemTagUsage(ref cause) => write!(f, "{}", cause),
13243            UntagResourceError::InvalidTagKeysList(ref cause) => write!(f, "{}", cause),
13244            UntagResourceError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
13245            UntagResourceError::ResourceArnRequired(ref cause) => write!(f, "{}", cause),
13246            UntagResourceError::TagKeysListRequired(ref cause) => write!(f, "{}", cause),
13247            UntagResourceError::TagPolicy(ref cause) => write!(f, "{}", cause),
13248            UntagResourceError::TooManyTags(ref cause) => write!(f, "{}", cause),
13249        }
13250    }
13251}
13252impl Error for UntagResourceError {}
13253/// Errors returned by UpdateApprovalRuleTemplateContent
13254#[derive(Debug, PartialEq)]
13255pub enum UpdateApprovalRuleTemplateContentError {
13256    /// <p>The content for the approval rule template is empty. You must provide some content for an approval rule template. The content cannot be null.</p>
13257    ApprovalRuleTemplateContentRequired(String),
13258    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
13259    ApprovalRuleTemplateDoesNotExist(String),
13260    /// <p>An approval rule template name is required, but was not specified.</p>
13261    ApprovalRuleTemplateNameRequired(String),
13262    /// <p>The content of the approval rule template is not valid.</p>
13263    InvalidApprovalRuleTemplateContent(String),
13264    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
13265    InvalidApprovalRuleTemplateName(String),
13266    /// <p>The SHA-256 hash signature for the rule content is not valid.</p>
13267    InvalidRuleContentSha256(String),
13268}
13269
13270impl UpdateApprovalRuleTemplateContentError {
13271    pub fn from_response(
13272        res: BufferedHttpResponse,
13273    ) -> RusotoError<UpdateApprovalRuleTemplateContentError> {
13274        if let Some(err) = proto::json::Error::parse(&res) {
13275            match err.typ.as_str() {
13276                "ApprovalRuleTemplateContentRequiredException" => {
13277                    return RusotoError::Service(
13278                        UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateContentRequired(
13279                            err.msg,
13280                        ),
13281                    )
13282                }
13283                "ApprovalRuleTemplateDoesNotExistException" => {
13284                    return RusotoError::Service(
13285                        UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateDoesNotExist(
13286                            err.msg,
13287                        ),
13288                    )
13289                }
13290                "ApprovalRuleTemplateNameRequiredException" => {
13291                    return RusotoError::Service(
13292                        UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateNameRequired(
13293                            err.msg,
13294                        ),
13295                    )
13296                }
13297                "InvalidApprovalRuleTemplateContentException" => {
13298                    return RusotoError::Service(
13299                        UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateContent(
13300                            err.msg,
13301                        ),
13302                    )
13303                }
13304                "InvalidApprovalRuleTemplateNameException" => {
13305                    return RusotoError::Service(
13306                        UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateName(
13307                            err.msg,
13308                        ),
13309                    )
13310                }
13311                "InvalidRuleContentSha256Exception" => {
13312                    return RusotoError::Service(
13313                        UpdateApprovalRuleTemplateContentError::InvalidRuleContentSha256(err.msg),
13314                    )
13315                }
13316                "ValidationException" => return RusotoError::Validation(err.msg),
13317                _ => {}
13318            }
13319        }
13320        RusotoError::Unknown(res)
13321    }
13322}
13323impl fmt::Display for UpdateApprovalRuleTemplateContentError {
13324    #[allow(unused_variables)]
13325    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13326        match *self {
13327            UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateContentRequired(
13328                ref cause,
13329            ) => write!(f, "{}", cause),
13330            UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateDoesNotExist(ref cause) => {
13331                write!(f, "{}", cause)
13332            }
13333            UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateNameRequired(ref cause) => {
13334                write!(f, "{}", cause)
13335            }
13336            UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateContent(
13337                ref cause,
13338            ) => write!(f, "{}", cause),
13339            UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateName(ref cause) => {
13340                write!(f, "{}", cause)
13341            }
13342            UpdateApprovalRuleTemplateContentError::InvalidRuleContentSha256(ref cause) => {
13343                write!(f, "{}", cause)
13344            }
13345        }
13346    }
13347}
13348impl Error for UpdateApprovalRuleTemplateContentError {}
13349/// Errors returned by UpdateApprovalRuleTemplateDescription
13350#[derive(Debug, PartialEq)]
13351pub enum UpdateApprovalRuleTemplateDescriptionError {
13352    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
13353    ApprovalRuleTemplateDoesNotExist(String),
13354    /// <p>An approval rule template name is required, but was not specified.</p>
13355    ApprovalRuleTemplateNameRequired(String),
13356    /// <p>The description for the approval rule template is not valid because it exceeds the maximum characters allowed for a description. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
13357    InvalidApprovalRuleTemplateDescription(String),
13358    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
13359    InvalidApprovalRuleTemplateName(String),
13360}
13361
13362impl UpdateApprovalRuleTemplateDescriptionError {
13363    pub fn from_response(
13364        res: BufferedHttpResponse,
13365    ) -> RusotoError<UpdateApprovalRuleTemplateDescriptionError> {
13366        if let Some(err) = proto::json::Error::parse(&res) {
13367            match err.typ.as_str() {
13368                                "ApprovalRuleTemplateDoesNotExistException" => return RusotoError::Service(UpdateApprovalRuleTemplateDescriptionError::ApprovalRuleTemplateDoesNotExist(err.msg)),
13369"ApprovalRuleTemplateNameRequiredException" => return RusotoError::Service(UpdateApprovalRuleTemplateDescriptionError::ApprovalRuleTemplateNameRequired(err.msg)),
13370"InvalidApprovalRuleTemplateDescriptionException" => return RusotoError::Service(UpdateApprovalRuleTemplateDescriptionError::InvalidApprovalRuleTemplateDescription(err.msg)),
13371"InvalidApprovalRuleTemplateNameException" => return RusotoError::Service(UpdateApprovalRuleTemplateDescriptionError::InvalidApprovalRuleTemplateName(err.msg)),
13372"ValidationException" => return RusotoError::Validation(err.msg),
13373_ => {}
13374                            }
13375        }
13376        RusotoError::Unknown(res)
13377    }
13378}
13379impl fmt::Display for UpdateApprovalRuleTemplateDescriptionError {
13380    #[allow(unused_variables)]
13381    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13382        match *self {
13383            UpdateApprovalRuleTemplateDescriptionError::ApprovalRuleTemplateDoesNotExist(
13384                ref cause,
13385            ) => write!(f, "{}", cause),
13386            UpdateApprovalRuleTemplateDescriptionError::ApprovalRuleTemplateNameRequired(
13387                ref cause,
13388            ) => write!(f, "{}", cause),
13389            UpdateApprovalRuleTemplateDescriptionError::InvalidApprovalRuleTemplateDescription(
13390                ref cause,
13391            ) => write!(f, "{}", cause),
13392            UpdateApprovalRuleTemplateDescriptionError::InvalidApprovalRuleTemplateName(
13393                ref cause,
13394            ) => write!(f, "{}", cause),
13395        }
13396    }
13397}
13398impl Error for UpdateApprovalRuleTemplateDescriptionError {}
13399/// Errors returned by UpdateApprovalRuleTemplateName
13400#[derive(Debug, PartialEq)]
13401pub enum UpdateApprovalRuleTemplateNameError {
13402    /// <p>The specified approval rule template does not exist. Verify that the name is correct and that you are signed in to the AWS Region where the template was created, and then try again.</p>
13403    ApprovalRuleTemplateDoesNotExist(String),
13404    /// <p>You cannot create an approval rule template with that name because a template with that name already exists in this AWS Region for your AWS account. Approval rule template names must be unique.</p>
13405    ApprovalRuleTemplateNameAlreadyExists(String),
13406    /// <p>An approval rule template name is required, but was not specified.</p>
13407    ApprovalRuleTemplateNameRequired(String),
13408    /// <p>The name of the approval rule template is not valid. Template names must be between 1 and 100 valid characters in length. For more information about limits in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">AWS CodeCommit User Guide</a>.</p>
13409    InvalidApprovalRuleTemplateName(String),
13410}
13411
13412impl UpdateApprovalRuleTemplateNameError {
13413    pub fn from_response(
13414        res: BufferedHttpResponse,
13415    ) -> RusotoError<UpdateApprovalRuleTemplateNameError> {
13416        if let Some(err) = proto::json::Error::parse(&res) {
13417            match err.typ.as_str() {
13418                "ApprovalRuleTemplateDoesNotExistException" => {
13419                    return RusotoError::Service(
13420                        UpdateApprovalRuleTemplateNameError::ApprovalRuleTemplateDoesNotExist(
13421                            err.msg,
13422                        ),
13423                    )
13424                }
13425                "ApprovalRuleTemplateNameAlreadyExistsException" => {
13426                    return RusotoError::Service(
13427                        UpdateApprovalRuleTemplateNameError::ApprovalRuleTemplateNameAlreadyExists(
13428                            err.msg,
13429                        ),
13430                    )
13431                }
13432                "ApprovalRuleTemplateNameRequiredException" => {
13433                    return RusotoError::Service(
13434                        UpdateApprovalRuleTemplateNameError::ApprovalRuleTemplateNameRequired(
13435                            err.msg,
13436                        ),
13437                    )
13438                }
13439                "InvalidApprovalRuleTemplateNameException" => {
13440                    return RusotoError::Service(
13441                        UpdateApprovalRuleTemplateNameError::InvalidApprovalRuleTemplateName(
13442                            err.msg,
13443                        ),
13444                    )
13445                }
13446                "ValidationException" => return RusotoError::Validation(err.msg),
13447                _ => {}
13448            }
13449        }
13450        RusotoError::Unknown(res)
13451    }
13452}
13453impl fmt::Display for UpdateApprovalRuleTemplateNameError {
13454    #[allow(unused_variables)]
13455    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13456        match *self {
13457            UpdateApprovalRuleTemplateNameError::ApprovalRuleTemplateDoesNotExist(ref cause) => {
13458                write!(f, "{}", cause)
13459            }
13460            UpdateApprovalRuleTemplateNameError::ApprovalRuleTemplateNameAlreadyExists(
13461                ref cause,
13462            ) => write!(f, "{}", cause),
13463            UpdateApprovalRuleTemplateNameError::ApprovalRuleTemplateNameRequired(ref cause) => {
13464                write!(f, "{}", cause)
13465            }
13466            UpdateApprovalRuleTemplateNameError::InvalidApprovalRuleTemplateName(ref cause) => {
13467                write!(f, "{}", cause)
13468            }
13469        }
13470    }
13471}
13472impl Error for UpdateApprovalRuleTemplateNameError {}
13473/// Errors returned by UpdateComment
13474#[derive(Debug, PartialEq)]
13475pub enum UpdateCommentError {
13476    /// <p>The comment is empty. You must provide some content for a comment. The content cannot be null.</p>
13477    CommentContentRequired(String),
13478    /// <p>The comment is too large. Comments are limited to 1,000 characters.</p>
13479    CommentContentSizeLimitExceeded(String),
13480    /// <p>This comment has already been deleted. You cannot edit or delete a deleted comment.</p>
13481    CommentDeleted(String),
13482    /// <p>No comment exists with the provided ID. Verify that you have used the correct ID, and then try again.</p>
13483    CommentDoesNotExist(String),
13484    /// <p>The comment ID is missing or null. A comment ID is required.</p>
13485    CommentIdRequired(String),
13486    /// <p>You cannot modify or delete this comment. Only comment authors can modify or delete their comments.</p>
13487    CommentNotCreatedByCaller(String),
13488    /// <p>The comment ID is not in a valid format. Make sure that you have provided the full comment ID.</p>
13489    InvalidCommentId(String),
13490}
13491
13492impl UpdateCommentError {
13493    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateCommentError> {
13494        if let Some(err) = proto::json::Error::parse(&res) {
13495            match err.typ.as_str() {
13496                "CommentContentRequiredException" => {
13497                    return RusotoError::Service(UpdateCommentError::CommentContentRequired(
13498                        err.msg,
13499                    ))
13500                }
13501                "CommentContentSizeLimitExceededException" => {
13502                    return RusotoError::Service(
13503                        UpdateCommentError::CommentContentSizeLimitExceeded(err.msg),
13504                    )
13505                }
13506                "CommentDeletedException" => {
13507                    return RusotoError::Service(UpdateCommentError::CommentDeleted(err.msg))
13508                }
13509                "CommentDoesNotExistException" => {
13510                    return RusotoError::Service(UpdateCommentError::CommentDoesNotExist(err.msg))
13511                }
13512                "CommentIdRequiredException" => {
13513                    return RusotoError::Service(UpdateCommentError::CommentIdRequired(err.msg))
13514                }
13515                "CommentNotCreatedByCallerException" => {
13516                    return RusotoError::Service(UpdateCommentError::CommentNotCreatedByCaller(
13517                        err.msg,
13518                    ))
13519                }
13520                "InvalidCommentIdException" => {
13521                    return RusotoError::Service(UpdateCommentError::InvalidCommentId(err.msg))
13522                }
13523                "ValidationException" => return RusotoError::Validation(err.msg),
13524                _ => {}
13525            }
13526        }
13527        RusotoError::Unknown(res)
13528    }
13529}
13530impl fmt::Display for UpdateCommentError {
13531    #[allow(unused_variables)]
13532    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13533        match *self {
13534            UpdateCommentError::CommentContentRequired(ref cause) => write!(f, "{}", cause),
13535            UpdateCommentError::CommentContentSizeLimitExceeded(ref cause) => {
13536                write!(f, "{}", cause)
13537            }
13538            UpdateCommentError::CommentDeleted(ref cause) => write!(f, "{}", cause),
13539            UpdateCommentError::CommentDoesNotExist(ref cause) => write!(f, "{}", cause),
13540            UpdateCommentError::CommentIdRequired(ref cause) => write!(f, "{}", cause),
13541            UpdateCommentError::CommentNotCreatedByCaller(ref cause) => write!(f, "{}", cause),
13542            UpdateCommentError::InvalidCommentId(ref cause) => write!(f, "{}", cause),
13543        }
13544    }
13545}
13546impl Error for UpdateCommentError {}
13547/// Errors returned by UpdateDefaultBranch
13548#[derive(Debug, PartialEq)]
13549pub enum UpdateDefaultBranchError {
13550    /// <p>The specified branch does not exist.</p>
13551    BranchDoesNotExist(String),
13552    /// <p>A branch name is required, but was not specified.</p>
13553    BranchNameRequired(String),
13554    /// <p>An encryption integrity check failed.</p>
13555    EncryptionIntegrityChecksFailed(String),
13556    /// <p>An encryption key could not be accessed.</p>
13557    EncryptionKeyAccessDenied(String),
13558    /// <p>The encryption key is disabled.</p>
13559    EncryptionKeyDisabled(String),
13560    /// <p>No encryption key was found.</p>
13561    EncryptionKeyNotFound(String),
13562    /// <p>The encryption key is not available.</p>
13563    EncryptionKeyUnavailable(String),
13564    /// <p>The specified reference name is not valid.</p>
13565    InvalidBranchName(String),
13566    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
13567    InvalidRepositoryName(String),
13568    /// <p>The specified repository does not exist.</p>
13569    RepositoryDoesNotExist(String),
13570    /// <p>A repository name is required, but was not specified.</p>
13571    RepositoryNameRequired(String),
13572}
13573
13574impl UpdateDefaultBranchError {
13575    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateDefaultBranchError> {
13576        if let Some(err) = proto::json::Error::parse(&res) {
13577            match err.typ.as_str() {
13578                "BranchDoesNotExistException" => {
13579                    return RusotoError::Service(UpdateDefaultBranchError::BranchDoesNotExist(
13580                        err.msg,
13581                    ))
13582                }
13583                "BranchNameRequiredException" => {
13584                    return RusotoError::Service(UpdateDefaultBranchError::BranchNameRequired(
13585                        err.msg,
13586                    ))
13587                }
13588                "EncryptionIntegrityChecksFailedException" => {
13589                    return RusotoError::Service(
13590                        UpdateDefaultBranchError::EncryptionIntegrityChecksFailed(err.msg),
13591                    )
13592                }
13593                "EncryptionKeyAccessDeniedException" => {
13594                    return RusotoError::Service(
13595                        UpdateDefaultBranchError::EncryptionKeyAccessDenied(err.msg),
13596                    )
13597                }
13598                "EncryptionKeyDisabledException" => {
13599                    return RusotoError::Service(UpdateDefaultBranchError::EncryptionKeyDisabled(
13600                        err.msg,
13601                    ))
13602                }
13603                "EncryptionKeyNotFoundException" => {
13604                    return RusotoError::Service(UpdateDefaultBranchError::EncryptionKeyNotFound(
13605                        err.msg,
13606                    ))
13607                }
13608                "EncryptionKeyUnavailableException" => {
13609                    return RusotoError::Service(
13610                        UpdateDefaultBranchError::EncryptionKeyUnavailable(err.msg),
13611                    )
13612                }
13613                "InvalidBranchNameException" => {
13614                    return RusotoError::Service(UpdateDefaultBranchError::InvalidBranchName(
13615                        err.msg,
13616                    ))
13617                }
13618                "InvalidRepositoryNameException" => {
13619                    return RusotoError::Service(UpdateDefaultBranchError::InvalidRepositoryName(
13620                        err.msg,
13621                    ))
13622                }
13623                "RepositoryDoesNotExistException" => {
13624                    return RusotoError::Service(UpdateDefaultBranchError::RepositoryDoesNotExist(
13625                        err.msg,
13626                    ))
13627                }
13628                "RepositoryNameRequiredException" => {
13629                    return RusotoError::Service(UpdateDefaultBranchError::RepositoryNameRequired(
13630                        err.msg,
13631                    ))
13632                }
13633                "ValidationException" => return RusotoError::Validation(err.msg),
13634                _ => {}
13635            }
13636        }
13637        RusotoError::Unknown(res)
13638    }
13639}
13640impl fmt::Display for UpdateDefaultBranchError {
13641    #[allow(unused_variables)]
13642    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13643        match *self {
13644            UpdateDefaultBranchError::BranchDoesNotExist(ref cause) => write!(f, "{}", cause),
13645            UpdateDefaultBranchError::BranchNameRequired(ref cause) => write!(f, "{}", cause),
13646            UpdateDefaultBranchError::EncryptionIntegrityChecksFailed(ref cause) => {
13647                write!(f, "{}", cause)
13648            }
13649            UpdateDefaultBranchError::EncryptionKeyAccessDenied(ref cause) => {
13650                write!(f, "{}", cause)
13651            }
13652            UpdateDefaultBranchError::EncryptionKeyDisabled(ref cause) => write!(f, "{}", cause),
13653            UpdateDefaultBranchError::EncryptionKeyNotFound(ref cause) => write!(f, "{}", cause),
13654            UpdateDefaultBranchError::EncryptionKeyUnavailable(ref cause) => write!(f, "{}", cause),
13655            UpdateDefaultBranchError::InvalidBranchName(ref cause) => write!(f, "{}", cause),
13656            UpdateDefaultBranchError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
13657            UpdateDefaultBranchError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
13658            UpdateDefaultBranchError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
13659        }
13660    }
13661}
13662impl Error for UpdateDefaultBranchError {}
13663/// Errors returned by UpdatePullRequestApprovalRuleContent
13664#[derive(Debug, PartialEq)]
13665pub enum UpdatePullRequestApprovalRuleContentError {
13666    /// <p>The content for the approval rule is empty. You must provide some content for an approval rule. The content cannot be null.</p>
13667    ApprovalRuleContentRequired(String),
13668    /// <p>The specified approval rule does not exist.</p>
13669    ApprovalRuleDoesNotExist(String),
13670    /// <p>An approval rule name is required, but was not specified.</p>
13671    ApprovalRuleNameRequired(String),
13672    /// <p>The approval rule cannot be modified for the pull request because it was created by an approval rule template and applied to the pull request automatically.</p>
13673    CannotModifyApprovalRuleFromTemplate(String),
13674    /// <p>An encryption integrity check failed.</p>
13675    EncryptionIntegrityChecksFailed(String),
13676    /// <p>An encryption key could not be accessed.</p>
13677    EncryptionKeyAccessDenied(String),
13678    /// <p>The encryption key is disabled.</p>
13679    EncryptionKeyDisabled(String),
13680    /// <p>No encryption key was found.</p>
13681    EncryptionKeyNotFound(String),
13682    /// <p>The encryption key is not available.</p>
13683    EncryptionKeyUnavailable(String),
13684    /// <p>The content for the approval rule is not valid.</p>
13685    InvalidApprovalRuleContent(String),
13686    /// <p>The name for the approval rule is not valid.</p>
13687    InvalidApprovalRuleName(String),
13688    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
13689    InvalidPullRequestId(String),
13690    /// <p>The SHA-256 hash signature for the rule content is not valid.</p>
13691    InvalidRuleContentSha256(String),
13692    /// <p>The pull request status cannot be updated because it is already closed.</p>
13693    PullRequestAlreadyClosed(String),
13694    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
13695    PullRequestDoesNotExist(String),
13696    /// <p>A pull request ID is required, but none was provided.</p>
13697    PullRequestIdRequired(String),
13698}
13699
13700impl UpdatePullRequestApprovalRuleContentError {
13701    pub fn from_response(
13702        res: BufferedHttpResponse,
13703    ) -> RusotoError<UpdatePullRequestApprovalRuleContentError> {
13704        if let Some(err) = proto::json::Error::parse(&res) {
13705            match err.typ.as_str() {
13706                "ApprovalRuleContentRequiredException" => {
13707                    return RusotoError::Service(
13708                        UpdatePullRequestApprovalRuleContentError::ApprovalRuleContentRequired(
13709                            err.msg,
13710                        ),
13711                    )
13712                }
13713                "ApprovalRuleDoesNotExistException" => {
13714                    return RusotoError::Service(
13715                        UpdatePullRequestApprovalRuleContentError::ApprovalRuleDoesNotExist(
13716                            err.msg,
13717                        ),
13718                    )
13719                }
13720                "ApprovalRuleNameRequiredException" => {
13721                    return RusotoError::Service(
13722                        UpdatePullRequestApprovalRuleContentError::ApprovalRuleNameRequired(
13723                            err.msg,
13724                        ),
13725                    )
13726                }
13727                "CannotModifyApprovalRuleFromTemplateException" => return RusotoError::Service(
13728                    UpdatePullRequestApprovalRuleContentError::CannotModifyApprovalRuleFromTemplate(
13729                        err.msg,
13730                    ),
13731                ),
13732                "EncryptionIntegrityChecksFailedException" => {
13733                    return RusotoError::Service(
13734                        UpdatePullRequestApprovalRuleContentError::EncryptionIntegrityChecksFailed(
13735                            err.msg,
13736                        ),
13737                    )
13738                }
13739                "EncryptionKeyAccessDeniedException" => {
13740                    return RusotoError::Service(
13741                        UpdatePullRequestApprovalRuleContentError::EncryptionKeyAccessDenied(
13742                            err.msg,
13743                        ),
13744                    )
13745                }
13746                "EncryptionKeyDisabledException" => {
13747                    return RusotoError::Service(
13748                        UpdatePullRequestApprovalRuleContentError::EncryptionKeyDisabled(err.msg),
13749                    )
13750                }
13751                "EncryptionKeyNotFoundException" => {
13752                    return RusotoError::Service(
13753                        UpdatePullRequestApprovalRuleContentError::EncryptionKeyNotFound(err.msg),
13754                    )
13755                }
13756                "EncryptionKeyUnavailableException" => {
13757                    return RusotoError::Service(
13758                        UpdatePullRequestApprovalRuleContentError::EncryptionKeyUnavailable(
13759                            err.msg,
13760                        ),
13761                    )
13762                }
13763                "InvalidApprovalRuleContentException" => {
13764                    return RusotoError::Service(
13765                        UpdatePullRequestApprovalRuleContentError::InvalidApprovalRuleContent(
13766                            err.msg,
13767                        ),
13768                    )
13769                }
13770                "InvalidApprovalRuleNameException" => {
13771                    return RusotoError::Service(
13772                        UpdatePullRequestApprovalRuleContentError::InvalidApprovalRuleName(err.msg),
13773                    )
13774                }
13775                "InvalidPullRequestIdException" => {
13776                    return RusotoError::Service(
13777                        UpdatePullRequestApprovalRuleContentError::InvalidPullRequestId(err.msg),
13778                    )
13779                }
13780                "InvalidRuleContentSha256Exception" => {
13781                    return RusotoError::Service(
13782                        UpdatePullRequestApprovalRuleContentError::InvalidRuleContentSha256(
13783                            err.msg,
13784                        ),
13785                    )
13786                }
13787                "PullRequestAlreadyClosedException" => {
13788                    return RusotoError::Service(
13789                        UpdatePullRequestApprovalRuleContentError::PullRequestAlreadyClosed(
13790                            err.msg,
13791                        ),
13792                    )
13793                }
13794                "PullRequestDoesNotExistException" => {
13795                    return RusotoError::Service(
13796                        UpdatePullRequestApprovalRuleContentError::PullRequestDoesNotExist(err.msg),
13797                    )
13798                }
13799                "PullRequestIdRequiredException" => {
13800                    return RusotoError::Service(
13801                        UpdatePullRequestApprovalRuleContentError::PullRequestIdRequired(err.msg),
13802                    )
13803                }
13804                "ValidationException" => return RusotoError::Validation(err.msg),
13805                _ => {}
13806            }
13807        }
13808        RusotoError::Unknown(res)
13809    }
13810}
13811impl fmt::Display for UpdatePullRequestApprovalRuleContentError {
13812    #[allow(unused_variables)]
13813    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
13814        match *self {
13815            UpdatePullRequestApprovalRuleContentError::ApprovalRuleContentRequired(ref cause) => {
13816                write!(f, "{}", cause)
13817            }
13818            UpdatePullRequestApprovalRuleContentError::ApprovalRuleDoesNotExist(ref cause) => {
13819                write!(f, "{}", cause)
13820            }
13821            UpdatePullRequestApprovalRuleContentError::ApprovalRuleNameRequired(ref cause) => {
13822                write!(f, "{}", cause)
13823            }
13824            UpdatePullRequestApprovalRuleContentError::CannotModifyApprovalRuleFromTemplate(
13825                ref cause,
13826            ) => write!(f, "{}", cause),
13827            UpdatePullRequestApprovalRuleContentError::EncryptionIntegrityChecksFailed(
13828                ref cause,
13829            ) => write!(f, "{}", cause),
13830            UpdatePullRequestApprovalRuleContentError::EncryptionKeyAccessDenied(ref cause) => {
13831                write!(f, "{}", cause)
13832            }
13833            UpdatePullRequestApprovalRuleContentError::EncryptionKeyDisabled(ref cause) => {
13834                write!(f, "{}", cause)
13835            }
13836            UpdatePullRequestApprovalRuleContentError::EncryptionKeyNotFound(ref cause) => {
13837                write!(f, "{}", cause)
13838            }
13839            UpdatePullRequestApprovalRuleContentError::EncryptionKeyUnavailable(ref cause) => {
13840                write!(f, "{}", cause)
13841            }
13842            UpdatePullRequestApprovalRuleContentError::InvalidApprovalRuleContent(ref cause) => {
13843                write!(f, "{}", cause)
13844            }
13845            UpdatePullRequestApprovalRuleContentError::InvalidApprovalRuleName(ref cause) => {
13846                write!(f, "{}", cause)
13847            }
13848            UpdatePullRequestApprovalRuleContentError::InvalidPullRequestId(ref cause) => {
13849                write!(f, "{}", cause)
13850            }
13851            UpdatePullRequestApprovalRuleContentError::InvalidRuleContentSha256(ref cause) => {
13852                write!(f, "{}", cause)
13853            }
13854            UpdatePullRequestApprovalRuleContentError::PullRequestAlreadyClosed(ref cause) => {
13855                write!(f, "{}", cause)
13856            }
13857            UpdatePullRequestApprovalRuleContentError::PullRequestDoesNotExist(ref cause) => {
13858                write!(f, "{}", cause)
13859            }
13860            UpdatePullRequestApprovalRuleContentError::PullRequestIdRequired(ref cause) => {
13861                write!(f, "{}", cause)
13862            }
13863        }
13864    }
13865}
13866impl Error for UpdatePullRequestApprovalRuleContentError {}
13867/// Errors returned by UpdatePullRequestApprovalState
13868#[derive(Debug, PartialEq)]
13869pub enum UpdatePullRequestApprovalStateError {
13870    /// <p>An approval state is required, but was not specified.</p>
13871    ApprovalStateRequired(String),
13872    /// <p>An encryption integrity check failed.</p>
13873    EncryptionIntegrityChecksFailed(String),
13874    /// <p>An encryption key could not be accessed.</p>
13875    EncryptionKeyAccessDenied(String),
13876    /// <p>The encryption key is disabled.</p>
13877    EncryptionKeyDisabled(String),
13878    /// <p>No encryption key was found.</p>
13879    EncryptionKeyNotFound(String),
13880    /// <p>The encryption key is not available.</p>
13881    EncryptionKeyUnavailable(String),
13882    /// <p>The state for the approval is not valid. Valid values include APPROVE and REVOKE. </p>
13883    InvalidApprovalState(String),
13884    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
13885    InvalidPullRequestId(String),
13886    /// <p>The revision ID is not valid. Use GetPullRequest to determine the value.</p>
13887    InvalidRevisionId(String),
13888    /// <p>The number of approvals required for the approval rule exceeds the maximum number allowed.</p>
13889    MaximumNumberOfApprovalsExceeded(String),
13890    /// <p>The pull request status cannot be updated because it is already closed.</p>
13891    PullRequestAlreadyClosed(String),
13892    /// <p>The approval cannot be applied because the user approving the pull request matches the user who created the pull request. You cannot approve a pull request that you created.</p>
13893    PullRequestCannotBeApprovedByAuthor(String),
13894    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
13895    PullRequestDoesNotExist(String),
13896    /// <p>A pull request ID is required, but none was provided.</p>
13897    PullRequestIdRequired(String),
13898    /// <p>A revision ID is required, but was not provided.</p>
13899    RevisionIdRequired(String),
13900    /// <p>The revision ID provided in the request does not match the current revision ID. Use GetPullRequest to retrieve the current revision ID.</p>
13901    RevisionNotCurrent(String),
13902}
13903
13904impl UpdatePullRequestApprovalStateError {
13905    pub fn from_response(
13906        res: BufferedHttpResponse,
13907    ) -> RusotoError<UpdatePullRequestApprovalStateError> {
13908        if let Some(err) = proto::json::Error::parse(&res) {
13909            match err.typ.as_str() {
13910                "ApprovalStateRequiredException" => {
13911                    return RusotoError::Service(
13912                        UpdatePullRequestApprovalStateError::ApprovalStateRequired(err.msg),
13913                    )
13914                }
13915                "EncryptionIntegrityChecksFailedException" => {
13916                    return RusotoError::Service(
13917                        UpdatePullRequestApprovalStateError::EncryptionIntegrityChecksFailed(
13918                            err.msg,
13919                        ),
13920                    )
13921                }
13922                "EncryptionKeyAccessDeniedException" => {
13923                    return RusotoError::Service(
13924                        UpdatePullRequestApprovalStateError::EncryptionKeyAccessDenied(err.msg),
13925                    )
13926                }
13927                "EncryptionKeyDisabledException" => {
13928                    return RusotoError::Service(
13929                        UpdatePullRequestApprovalStateError::EncryptionKeyDisabled(err.msg),
13930                    )
13931                }
13932                "EncryptionKeyNotFoundException" => {
13933                    return RusotoError::Service(
13934                        UpdatePullRequestApprovalStateError::EncryptionKeyNotFound(err.msg),
13935                    )
13936                }
13937                "EncryptionKeyUnavailableException" => {
13938                    return RusotoError::Service(
13939                        UpdatePullRequestApprovalStateError::EncryptionKeyUnavailable(err.msg),
13940                    )
13941                }
13942                "InvalidApprovalStateException" => {
13943                    return RusotoError::Service(
13944                        UpdatePullRequestApprovalStateError::InvalidApprovalState(err.msg),
13945                    )
13946                }
13947                "InvalidPullRequestIdException" => {
13948                    return RusotoError::Service(
13949                        UpdatePullRequestApprovalStateError::InvalidPullRequestId(err.msg),
13950                    )
13951                }
13952                "InvalidRevisionIdException" => {
13953                    return RusotoError::Service(
13954                        UpdatePullRequestApprovalStateError::InvalidRevisionId(err.msg),
13955                    )
13956                }
13957                "MaximumNumberOfApprovalsExceededException" => {
13958                    return RusotoError::Service(
13959                        UpdatePullRequestApprovalStateError::MaximumNumberOfApprovalsExceeded(
13960                            err.msg,
13961                        ),
13962                    )
13963                }
13964                "PullRequestAlreadyClosedException" => {
13965                    return RusotoError::Service(
13966                        UpdatePullRequestApprovalStateError::PullRequestAlreadyClosed(err.msg),
13967                    )
13968                }
13969                "PullRequestCannotBeApprovedByAuthorException" => {
13970                    return RusotoError::Service(
13971                        UpdatePullRequestApprovalStateError::PullRequestCannotBeApprovedByAuthor(
13972                            err.msg,
13973                        ),
13974                    )
13975                }
13976                "PullRequestDoesNotExistException" => {
13977                    return RusotoError::Service(
13978                        UpdatePullRequestApprovalStateError::PullRequestDoesNotExist(err.msg),
13979                    )
13980                }
13981                "PullRequestIdRequiredException" => {
13982                    return RusotoError::Service(
13983                        UpdatePullRequestApprovalStateError::PullRequestIdRequired(err.msg),
13984                    )
13985                }
13986                "RevisionIdRequiredException" => {
13987                    return RusotoError::Service(
13988                        UpdatePullRequestApprovalStateError::RevisionIdRequired(err.msg),
13989                    )
13990                }
13991                "RevisionNotCurrentException" => {
13992                    return RusotoError::Service(
13993                        UpdatePullRequestApprovalStateError::RevisionNotCurrent(err.msg),
13994                    )
13995                }
13996                "ValidationException" => return RusotoError::Validation(err.msg),
13997                _ => {}
13998            }
13999        }
14000        RusotoError::Unknown(res)
14001    }
14002}
14003impl fmt::Display for UpdatePullRequestApprovalStateError {
14004    #[allow(unused_variables)]
14005    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14006        match *self {
14007            UpdatePullRequestApprovalStateError::ApprovalStateRequired(ref cause) => {
14008                write!(f, "{}", cause)
14009            }
14010            UpdatePullRequestApprovalStateError::EncryptionIntegrityChecksFailed(ref cause) => {
14011                write!(f, "{}", cause)
14012            }
14013            UpdatePullRequestApprovalStateError::EncryptionKeyAccessDenied(ref cause) => {
14014                write!(f, "{}", cause)
14015            }
14016            UpdatePullRequestApprovalStateError::EncryptionKeyDisabled(ref cause) => {
14017                write!(f, "{}", cause)
14018            }
14019            UpdatePullRequestApprovalStateError::EncryptionKeyNotFound(ref cause) => {
14020                write!(f, "{}", cause)
14021            }
14022            UpdatePullRequestApprovalStateError::EncryptionKeyUnavailable(ref cause) => {
14023                write!(f, "{}", cause)
14024            }
14025            UpdatePullRequestApprovalStateError::InvalidApprovalState(ref cause) => {
14026                write!(f, "{}", cause)
14027            }
14028            UpdatePullRequestApprovalStateError::InvalidPullRequestId(ref cause) => {
14029                write!(f, "{}", cause)
14030            }
14031            UpdatePullRequestApprovalStateError::InvalidRevisionId(ref cause) => {
14032                write!(f, "{}", cause)
14033            }
14034            UpdatePullRequestApprovalStateError::MaximumNumberOfApprovalsExceeded(ref cause) => {
14035                write!(f, "{}", cause)
14036            }
14037            UpdatePullRequestApprovalStateError::PullRequestAlreadyClosed(ref cause) => {
14038                write!(f, "{}", cause)
14039            }
14040            UpdatePullRequestApprovalStateError::PullRequestCannotBeApprovedByAuthor(ref cause) => {
14041                write!(f, "{}", cause)
14042            }
14043            UpdatePullRequestApprovalStateError::PullRequestDoesNotExist(ref cause) => {
14044                write!(f, "{}", cause)
14045            }
14046            UpdatePullRequestApprovalStateError::PullRequestIdRequired(ref cause) => {
14047                write!(f, "{}", cause)
14048            }
14049            UpdatePullRequestApprovalStateError::RevisionIdRequired(ref cause) => {
14050                write!(f, "{}", cause)
14051            }
14052            UpdatePullRequestApprovalStateError::RevisionNotCurrent(ref cause) => {
14053                write!(f, "{}", cause)
14054            }
14055        }
14056    }
14057}
14058impl Error for UpdatePullRequestApprovalStateError {}
14059/// Errors returned by UpdatePullRequestDescription
14060#[derive(Debug, PartialEq)]
14061pub enum UpdatePullRequestDescriptionError {
14062    /// <p>The pull request description is not valid. Descriptions cannot be more than 1,000 characters.</p>
14063    InvalidDescription(String),
14064    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
14065    InvalidPullRequestId(String),
14066    /// <p>The pull request status cannot be updated because it is already closed.</p>
14067    PullRequestAlreadyClosed(String),
14068    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
14069    PullRequestDoesNotExist(String),
14070    /// <p>A pull request ID is required, but none was provided.</p>
14071    PullRequestIdRequired(String),
14072}
14073
14074impl UpdatePullRequestDescriptionError {
14075    pub fn from_response(
14076        res: BufferedHttpResponse,
14077    ) -> RusotoError<UpdatePullRequestDescriptionError> {
14078        if let Some(err) = proto::json::Error::parse(&res) {
14079            match err.typ.as_str() {
14080                "InvalidDescriptionException" => {
14081                    return RusotoError::Service(
14082                        UpdatePullRequestDescriptionError::InvalidDescription(err.msg),
14083                    )
14084                }
14085                "InvalidPullRequestIdException" => {
14086                    return RusotoError::Service(
14087                        UpdatePullRequestDescriptionError::InvalidPullRequestId(err.msg),
14088                    )
14089                }
14090                "PullRequestAlreadyClosedException" => {
14091                    return RusotoError::Service(
14092                        UpdatePullRequestDescriptionError::PullRequestAlreadyClosed(err.msg),
14093                    )
14094                }
14095                "PullRequestDoesNotExistException" => {
14096                    return RusotoError::Service(
14097                        UpdatePullRequestDescriptionError::PullRequestDoesNotExist(err.msg),
14098                    )
14099                }
14100                "PullRequestIdRequiredException" => {
14101                    return RusotoError::Service(
14102                        UpdatePullRequestDescriptionError::PullRequestIdRequired(err.msg),
14103                    )
14104                }
14105                "ValidationException" => return RusotoError::Validation(err.msg),
14106                _ => {}
14107            }
14108        }
14109        RusotoError::Unknown(res)
14110    }
14111}
14112impl fmt::Display for UpdatePullRequestDescriptionError {
14113    #[allow(unused_variables)]
14114    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14115        match *self {
14116            UpdatePullRequestDescriptionError::InvalidDescription(ref cause) => {
14117                write!(f, "{}", cause)
14118            }
14119            UpdatePullRequestDescriptionError::InvalidPullRequestId(ref cause) => {
14120                write!(f, "{}", cause)
14121            }
14122            UpdatePullRequestDescriptionError::PullRequestAlreadyClosed(ref cause) => {
14123                write!(f, "{}", cause)
14124            }
14125            UpdatePullRequestDescriptionError::PullRequestDoesNotExist(ref cause) => {
14126                write!(f, "{}", cause)
14127            }
14128            UpdatePullRequestDescriptionError::PullRequestIdRequired(ref cause) => {
14129                write!(f, "{}", cause)
14130            }
14131        }
14132    }
14133}
14134impl Error for UpdatePullRequestDescriptionError {}
14135/// Errors returned by UpdatePullRequestStatus
14136#[derive(Debug, PartialEq)]
14137pub enum UpdatePullRequestStatusError {
14138    /// <p>An encryption integrity check failed.</p>
14139    EncryptionIntegrityChecksFailed(String),
14140    /// <p>An encryption key could not be accessed.</p>
14141    EncryptionKeyAccessDenied(String),
14142    /// <p>The encryption key is disabled.</p>
14143    EncryptionKeyDisabled(String),
14144    /// <p>No encryption key was found.</p>
14145    EncryptionKeyNotFound(String),
14146    /// <p>The encryption key is not available.</p>
14147    EncryptionKeyUnavailable(String),
14148    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
14149    InvalidPullRequestId(String),
14150    /// <p>The pull request status is not valid. The only valid values are <code>OPEN</code> and <code>CLOSED</code>.</p>
14151    InvalidPullRequestStatus(String),
14152    /// <p>The pull request status update is not valid. The only valid update is from <code>OPEN</code> to <code>CLOSED</code>.</p>
14153    InvalidPullRequestStatusUpdate(String),
14154    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
14155    PullRequestDoesNotExist(String),
14156    /// <p>A pull request ID is required, but none was provided.</p>
14157    PullRequestIdRequired(String),
14158    /// <p>A pull request status is required, but none was provided.</p>
14159    PullRequestStatusRequired(String),
14160}
14161
14162impl UpdatePullRequestStatusError {
14163    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdatePullRequestStatusError> {
14164        if let Some(err) = proto::json::Error::parse(&res) {
14165            match err.typ.as_str() {
14166                "EncryptionIntegrityChecksFailedException" => {
14167                    return RusotoError::Service(
14168                        UpdatePullRequestStatusError::EncryptionIntegrityChecksFailed(err.msg),
14169                    )
14170                }
14171                "EncryptionKeyAccessDeniedException" => {
14172                    return RusotoError::Service(
14173                        UpdatePullRequestStatusError::EncryptionKeyAccessDenied(err.msg),
14174                    )
14175                }
14176                "EncryptionKeyDisabledException" => {
14177                    return RusotoError::Service(
14178                        UpdatePullRequestStatusError::EncryptionKeyDisabled(err.msg),
14179                    )
14180                }
14181                "EncryptionKeyNotFoundException" => {
14182                    return RusotoError::Service(
14183                        UpdatePullRequestStatusError::EncryptionKeyNotFound(err.msg),
14184                    )
14185                }
14186                "EncryptionKeyUnavailableException" => {
14187                    return RusotoError::Service(
14188                        UpdatePullRequestStatusError::EncryptionKeyUnavailable(err.msg),
14189                    )
14190                }
14191                "InvalidPullRequestIdException" => {
14192                    return RusotoError::Service(
14193                        UpdatePullRequestStatusError::InvalidPullRequestId(err.msg),
14194                    )
14195                }
14196                "InvalidPullRequestStatusException" => {
14197                    return RusotoError::Service(
14198                        UpdatePullRequestStatusError::InvalidPullRequestStatus(err.msg),
14199                    )
14200                }
14201                "InvalidPullRequestStatusUpdateException" => {
14202                    return RusotoError::Service(
14203                        UpdatePullRequestStatusError::InvalidPullRequestStatusUpdate(err.msg),
14204                    )
14205                }
14206                "PullRequestDoesNotExistException" => {
14207                    return RusotoError::Service(
14208                        UpdatePullRequestStatusError::PullRequestDoesNotExist(err.msg),
14209                    )
14210                }
14211                "PullRequestIdRequiredException" => {
14212                    return RusotoError::Service(
14213                        UpdatePullRequestStatusError::PullRequestIdRequired(err.msg),
14214                    )
14215                }
14216                "PullRequestStatusRequiredException" => {
14217                    return RusotoError::Service(
14218                        UpdatePullRequestStatusError::PullRequestStatusRequired(err.msg),
14219                    )
14220                }
14221                "ValidationException" => return RusotoError::Validation(err.msg),
14222                _ => {}
14223            }
14224        }
14225        RusotoError::Unknown(res)
14226    }
14227}
14228impl fmt::Display for UpdatePullRequestStatusError {
14229    #[allow(unused_variables)]
14230    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14231        match *self {
14232            UpdatePullRequestStatusError::EncryptionIntegrityChecksFailed(ref cause) => {
14233                write!(f, "{}", cause)
14234            }
14235            UpdatePullRequestStatusError::EncryptionKeyAccessDenied(ref cause) => {
14236                write!(f, "{}", cause)
14237            }
14238            UpdatePullRequestStatusError::EncryptionKeyDisabled(ref cause) => {
14239                write!(f, "{}", cause)
14240            }
14241            UpdatePullRequestStatusError::EncryptionKeyNotFound(ref cause) => {
14242                write!(f, "{}", cause)
14243            }
14244            UpdatePullRequestStatusError::EncryptionKeyUnavailable(ref cause) => {
14245                write!(f, "{}", cause)
14246            }
14247            UpdatePullRequestStatusError::InvalidPullRequestId(ref cause) => write!(f, "{}", cause),
14248            UpdatePullRequestStatusError::InvalidPullRequestStatus(ref cause) => {
14249                write!(f, "{}", cause)
14250            }
14251            UpdatePullRequestStatusError::InvalidPullRequestStatusUpdate(ref cause) => {
14252                write!(f, "{}", cause)
14253            }
14254            UpdatePullRequestStatusError::PullRequestDoesNotExist(ref cause) => {
14255                write!(f, "{}", cause)
14256            }
14257            UpdatePullRequestStatusError::PullRequestIdRequired(ref cause) => {
14258                write!(f, "{}", cause)
14259            }
14260            UpdatePullRequestStatusError::PullRequestStatusRequired(ref cause) => {
14261                write!(f, "{}", cause)
14262            }
14263        }
14264    }
14265}
14266impl Error for UpdatePullRequestStatusError {}
14267/// Errors returned by UpdatePullRequestTitle
14268#[derive(Debug, PartialEq)]
14269pub enum UpdatePullRequestTitleError {
14270    /// <p>The pull request ID is not valid. Make sure that you have provided the full ID and that the pull request is in the specified repository, and then try again.</p>
14271    InvalidPullRequestId(String),
14272    /// <p>The title of the pull request is not valid. Pull request titles cannot exceed 100 characters in length.</p>
14273    InvalidTitle(String),
14274    /// <p>The pull request status cannot be updated because it is already closed.</p>
14275    PullRequestAlreadyClosed(String),
14276    /// <p>The pull request ID could not be found. Make sure that you have specified the correct repository name and pull request ID, and then try again.</p>
14277    PullRequestDoesNotExist(String),
14278    /// <p>A pull request ID is required, but none was provided.</p>
14279    PullRequestIdRequired(String),
14280    /// <p>A pull request title is required. It cannot be empty or null.</p>
14281    TitleRequired(String),
14282}
14283
14284impl UpdatePullRequestTitleError {
14285    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdatePullRequestTitleError> {
14286        if let Some(err) = proto::json::Error::parse(&res) {
14287            match err.typ.as_str() {
14288                "InvalidPullRequestIdException" => {
14289                    return RusotoError::Service(UpdatePullRequestTitleError::InvalidPullRequestId(
14290                        err.msg,
14291                    ))
14292                }
14293                "InvalidTitleException" => {
14294                    return RusotoError::Service(UpdatePullRequestTitleError::InvalidTitle(err.msg))
14295                }
14296                "PullRequestAlreadyClosedException" => {
14297                    return RusotoError::Service(
14298                        UpdatePullRequestTitleError::PullRequestAlreadyClosed(err.msg),
14299                    )
14300                }
14301                "PullRequestDoesNotExistException" => {
14302                    return RusotoError::Service(
14303                        UpdatePullRequestTitleError::PullRequestDoesNotExist(err.msg),
14304                    )
14305                }
14306                "PullRequestIdRequiredException" => {
14307                    return RusotoError::Service(
14308                        UpdatePullRequestTitleError::PullRequestIdRequired(err.msg),
14309                    )
14310                }
14311                "TitleRequiredException" => {
14312                    return RusotoError::Service(UpdatePullRequestTitleError::TitleRequired(
14313                        err.msg,
14314                    ))
14315                }
14316                "ValidationException" => return RusotoError::Validation(err.msg),
14317                _ => {}
14318            }
14319        }
14320        RusotoError::Unknown(res)
14321    }
14322}
14323impl fmt::Display for UpdatePullRequestTitleError {
14324    #[allow(unused_variables)]
14325    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14326        match *self {
14327            UpdatePullRequestTitleError::InvalidPullRequestId(ref cause) => write!(f, "{}", cause),
14328            UpdatePullRequestTitleError::InvalidTitle(ref cause) => write!(f, "{}", cause),
14329            UpdatePullRequestTitleError::PullRequestAlreadyClosed(ref cause) => {
14330                write!(f, "{}", cause)
14331            }
14332            UpdatePullRequestTitleError::PullRequestDoesNotExist(ref cause) => {
14333                write!(f, "{}", cause)
14334            }
14335            UpdatePullRequestTitleError::PullRequestIdRequired(ref cause) => write!(f, "{}", cause),
14336            UpdatePullRequestTitleError::TitleRequired(ref cause) => write!(f, "{}", cause),
14337        }
14338    }
14339}
14340impl Error for UpdatePullRequestTitleError {}
14341/// Errors returned by UpdateRepositoryDescription
14342#[derive(Debug, PartialEq)]
14343pub enum UpdateRepositoryDescriptionError {
14344    /// <p>An encryption integrity check failed.</p>
14345    EncryptionIntegrityChecksFailed(String),
14346    /// <p>An encryption key could not be accessed.</p>
14347    EncryptionKeyAccessDenied(String),
14348    /// <p>The encryption key is disabled.</p>
14349    EncryptionKeyDisabled(String),
14350    /// <p>No encryption key was found.</p>
14351    EncryptionKeyNotFound(String),
14352    /// <p>The encryption key is not available.</p>
14353    EncryptionKeyUnavailable(String),
14354    /// <p>The specified repository description is not valid.</p>
14355    InvalidRepositoryDescription(String),
14356    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
14357    InvalidRepositoryName(String),
14358    /// <p>The specified repository does not exist.</p>
14359    RepositoryDoesNotExist(String),
14360    /// <p>A repository name is required, but was not specified.</p>
14361    RepositoryNameRequired(String),
14362}
14363
14364impl UpdateRepositoryDescriptionError {
14365    pub fn from_response(
14366        res: BufferedHttpResponse,
14367    ) -> RusotoError<UpdateRepositoryDescriptionError> {
14368        if let Some(err) = proto::json::Error::parse(&res) {
14369            match err.typ.as_str() {
14370                "EncryptionIntegrityChecksFailedException" => {
14371                    return RusotoError::Service(
14372                        UpdateRepositoryDescriptionError::EncryptionIntegrityChecksFailed(err.msg),
14373                    )
14374                }
14375                "EncryptionKeyAccessDeniedException" => {
14376                    return RusotoError::Service(
14377                        UpdateRepositoryDescriptionError::EncryptionKeyAccessDenied(err.msg),
14378                    )
14379                }
14380                "EncryptionKeyDisabledException" => {
14381                    return RusotoError::Service(
14382                        UpdateRepositoryDescriptionError::EncryptionKeyDisabled(err.msg),
14383                    )
14384                }
14385                "EncryptionKeyNotFoundException" => {
14386                    return RusotoError::Service(
14387                        UpdateRepositoryDescriptionError::EncryptionKeyNotFound(err.msg),
14388                    )
14389                }
14390                "EncryptionKeyUnavailableException" => {
14391                    return RusotoError::Service(
14392                        UpdateRepositoryDescriptionError::EncryptionKeyUnavailable(err.msg),
14393                    )
14394                }
14395                "InvalidRepositoryDescriptionException" => {
14396                    return RusotoError::Service(
14397                        UpdateRepositoryDescriptionError::InvalidRepositoryDescription(err.msg),
14398                    )
14399                }
14400                "InvalidRepositoryNameException" => {
14401                    return RusotoError::Service(
14402                        UpdateRepositoryDescriptionError::InvalidRepositoryName(err.msg),
14403                    )
14404                }
14405                "RepositoryDoesNotExistException" => {
14406                    return RusotoError::Service(
14407                        UpdateRepositoryDescriptionError::RepositoryDoesNotExist(err.msg),
14408                    )
14409                }
14410                "RepositoryNameRequiredException" => {
14411                    return RusotoError::Service(
14412                        UpdateRepositoryDescriptionError::RepositoryNameRequired(err.msg),
14413                    )
14414                }
14415                "ValidationException" => return RusotoError::Validation(err.msg),
14416                _ => {}
14417            }
14418        }
14419        RusotoError::Unknown(res)
14420    }
14421}
14422impl fmt::Display for UpdateRepositoryDescriptionError {
14423    #[allow(unused_variables)]
14424    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14425        match *self {
14426            UpdateRepositoryDescriptionError::EncryptionIntegrityChecksFailed(ref cause) => {
14427                write!(f, "{}", cause)
14428            }
14429            UpdateRepositoryDescriptionError::EncryptionKeyAccessDenied(ref cause) => {
14430                write!(f, "{}", cause)
14431            }
14432            UpdateRepositoryDescriptionError::EncryptionKeyDisabled(ref cause) => {
14433                write!(f, "{}", cause)
14434            }
14435            UpdateRepositoryDescriptionError::EncryptionKeyNotFound(ref cause) => {
14436                write!(f, "{}", cause)
14437            }
14438            UpdateRepositoryDescriptionError::EncryptionKeyUnavailable(ref cause) => {
14439                write!(f, "{}", cause)
14440            }
14441            UpdateRepositoryDescriptionError::InvalidRepositoryDescription(ref cause) => {
14442                write!(f, "{}", cause)
14443            }
14444            UpdateRepositoryDescriptionError::InvalidRepositoryName(ref cause) => {
14445                write!(f, "{}", cause)
14446            }
14447            UpdateRepositoryDescriptionError::RepositoryDoesNotExist(ref cause) => {
14448                write!(f, "{}", cause)
14449            }
14450            UpdateRepositoryDescriptionError::RepositoryNameRequired(ref cause) => {
14451                write!(f, "{}", cause)
14452            }
14453        }
14454    }
14455}
14456impl Error for UpdateRepositoryDescriptionError {}
14457/// Errors returned by UpdateRepositoryName
14458#[derive(Debug, PartialEq)]
14459pub enum UpdateRepositoryNameError {
14460    /// <p><p>A specified repository name is not valid.</p> <note> <p>This exception occurs only when a specified repository name is not valid. Other exceptions occur when a required repository parameter is missing, or when a specified repository does not exist.</p> </note></p>
14461    InvalidRepositoryName(String),
14462    /// <p>The specified repository does not exist.</p>
14463    RepositoryDoesNotExist(String),
14464    /// <p>The specified repository name already exists.</p>
14465    RepositoryNameExists(String),
14466    /// <p>A repository name is required, but was not specified.</p>
14467    RepositoryNameRequired(String),
14468}
14469
14470impl UpdateRepositoryNameError {
14471    pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateRepositoryNameError> {
14472        if let Some(err) = proto::json::Error::parse(&res) {
14473            match err.typ.as_str() {
14474                "InvalidRepositoryNameException" => {
14475                    return RusotoError::Service(UpdateRepositoryNameError::InvalidRepositoryName(
14476                        err.msg,
14477                    ))
14478                }
14479                "RepositoryDoesNotExistException" => {
14480                    return RusotoError::Service(UpdateRepositoryNameError::RepositoryDoesNotExist(
14481                        err.msg,
14482                    ))
14483                }
14484                "RepositoryNameExistsException" => {
14485                    return RusotoError::Service(UpdateRepositoryNameError::RepositoryNameExists(
14486                        err.msg,
14487                    ))
14488                }
14489                "RepositoryNameRequiredException" => {
14490                    return RusotoError::Service(UpdateRepositoryNameError::RepositoryNameRequired(
14491                        err.msg,
14492                    ))
14493                }
14494                "ValidationException" => return RusotoError::Validation(err.msg),
14495                _ => {}
14496            }
14497        }
14498        RusotoError::Unknown(res)
14499    }
14500}
14501impl fmt::Display for UpdateRepositoryNameError {
14502    #[allow(unused_variables)]
14503    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
14504        match *self {
14505            UpdateRepositoryNameError::InvalidRepositoryName(ref cause) => write!(f, "{}", cause),
14506            UpdateRepositoryNameError::RepositoryDoesNotExist(ref cause) => write!(f, "{}", cause),
14507            UpdateRepositoryNameError::RepositoryNameExists(ref cause) => write!(f, "{}", cause),
14508            UpdateRepositoryNameError::RepositoryNameRequired(ref cause) => write!(f, "{}", cause),
14509        }
14510    }
14511}
14512impl Error for UpdateRepositoryNameError {}
14513/// Trait representing the capabilities of the CodeCommit API. CodeCommit clients implement this trait.
14514#[async_trait]
14515pub trait CodeCommit {
14516    /// <p>Creates an association between an approval rule template and a specified repository. Then, the next time a pull request is created in the repository where the destination reference (if specified) matches the destination reference (branch) for the pull request, an approval rule that matches the template conditions is automatically created for that pull request. If no destination references are specified in the template, an approval rule that matches the template contents is created for all pull requests in that repository.</p>
14517    async fn associate_approval_rule_template_with_repository(
14518        &self,
14519        input: AssociateApprovalRuleTemplateWithRepositoryInput,
14520    ) -> Result<(), RusotoError<AssociateApprovalRuleTemplateWithRepositoryError>>;
14521
14522    /// <p>Creates an association between an approval rule template and one or more specified repositories. </p>
14523    async fn batch_associate_approval_rule_template_with_repositories(
14524        &self,
14525        input: BatchAssociateApprovalRuleTemplateWithRepositoriesInput,
14526    ) -> Result<
14527        BatchAssociateApprovalRuleTemplateWithRepositoriesOutput,
14528        RusotoError<BatchAssociateApprovalRuleTemplateWithRepositoriesError>,
14529    >;
14530
14531    /// <p>Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy.</p>
14532    async fn batch_describe_merge_conflicts(
14533        &self,
14534        input: BatchDescribeMergeConflictsInput,
14535    ) -> Result<BatchDescribeMergeConflictsOutput, RusotoError<BatchDescribeMergeConflictsError>>;
14536
14537    /// <p>Removes the association between an approval rule template and one or more specified repositories. </p>
14538    async fn batch_disassociate_approval_rule_template_from_repositories(
14539        &self,
14540        input: BatchDisassociateApprovalRuleTemplateFromRepositoriesInput,
14541    ) -> Result<
14542        BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput,
14543        RusotoError<BatchDisassociateApprovalRuleTemplateFromRepositoriesError>,
14544    >;
14545
14546    /// <p>Returns information about the contents of one or more commits in a repository.</p>
14547    async fn batch_get_commits(
14548        &self,
14549        input: BatchGetCommitsInput,
14550    ) -> Result<BatchGetCommitsOutput, RusotoError<BatchGetCommitsError>>;
14551
14552    /// <p><p>Returns information about one or more repositories.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
14553    async fn batch_get_repositories(
14554        &self,
14555        input: BatchGetRepositoriesInput,
14556    ) -> Result<BatchGetRepositoriesOutput, RusotoError<BatchGetRepositoriesError>>;
14557
14558    /// <p>Creates a template for approval rules that can then be associated with one or more repositories in your AWS account. When you associate a template with a repository, AWS CodeCommit creates an approval rule that matches the conditions of the template for all pull requests that meet the conditions of the template. For more information, see <a>AssociateApprovalRuleTemplateWithRepository</a>.</p>
14559    async fn create_approval_rule_template(
14560        &self,
14561        input: CreateApprovalRuleTemplateInput,
14562    ) -> Result<CreateApprovalRuleTemplateOutput, RusotoError<CreateApprovalRuleTemplateError>>;
14563
14564    /// <p><p>Creates a branch in a repository and points the branch to a commit.</p> <note> <p>Calling the create branch operation does not set a repository&#39;s default branch. To do this, call the update default branch operation.</p> </note></p>
14565    async fn create_branch(
14566        &self,
14567        input: CreateBranchInput,
14568    ) -> Result<(), RusotoError<CreateBranchError>>;
14569
14570    /// <p>Creates a commit for a repository on the tip of a specified branch.</p>
14571    async fn create_commit(
14572        &self,
14573        input: CreateCommitInput,
14574    ) -> Result<CreateCommitOutput, RusotoError<CreateCommitError>>;
14575
14576    /// <p>Creates a pull request in the specified repository.</p>
14577    async fn create_pull_request(
14578        &self,
14579        input: CreatePullRequestInput,
14580    ) -> Result<CreatePullRequestOutput, RusotoError<CreatePullRequestError>>;
14581
14582    /// <p>Creates an approval rule for a pull request.</p>
14583    async fn create_pull_request_approval_rule(
14584        &self,
14585        input: CreatePullRequestApprovalRuleInput,
14586    ) -> Result<CreatePullRequestApprovalRuleOutput, RusotoError<CreatePullRequestApprovalRuleError>>;
14587
14588    /// <p>Creates a new, empty repository.</p>
14589    async fn create_repository(
14590        &self,
14591        input: CreateRepositoryInput,
14592    ) -> Result<CreateRepositoryOutput, RusotoError<CreateRepositoryError>>;
14593
14594    /// <p><p>Creates an unreferenced commit that represents the result of merging two branches using a specified merge strategy. This can help you determine the outcome of a potential merge. This API cannot be used with the fast-forward merge strategy because that strategy does not create a merge commit.</p> <note> <p>This unreferenced merge commit can only be accessed using the GetCommit API or through git commands such as git fetch. To retrieve this commit, you must specify its commit ID or otherwise reference it.</p> </note></p>
14595    async fn create_unreferenced_merge_commit(
14596        &self,
14597        input: CreateUnreferencedMergeCommitInput,
14598    ) -> Result<CreateUnreferencedMergeCommitOutput, RusotoError<CreateUnreferencedMergeCommitError>>;
14599
14600    /// <p>Deletes a specified approval rule template. Deleting a template does not remove approval rules on pull requests already created with the template.</p>
14601    async fn delete_approval_rule_template(
14602        &self,
14603        input: DeleteApprovalRuleTemplateInput,
14604    ) -> Result<DeleteApprovalRuleTemplateOutput, RusotoError<DeleteApprovalRuleTemplateError>>;
14605
14606    /// <p>Deletes a branch from a repository, unless that branch is the default branch for the repository. </p>
14607    async fn delete_branch(
14608        &self,
14609        input: DeleteBranchInput,
14610    ) -> Result<DeleteBranchOutput, RusotoError<DeleteBranchError>>;
14611
14612    /// <p>Deletes the content of a comment made on a change, file, or commit in a repository.</p>
14613    async fn delete_comment_content(
14614        &self,
14615        input: DeleteCommentContentInput,
14616    ) -> Result<DeleteCommentContentOutput, RusotoError<DeleteCommentContentError>>;
14617
14618    /// <p>Deletes a specified file from a specified branch. A commit is created on the branch that contains the revision. The file still exists in the commits earlier to the commit that contains the deletion.</p>
14619    async fn delete_file(
14620        &self,
14621        input: DeleteFileInput,
14622    ) -> Result<DeleteFileOutput, RusotoError<DeleteFileError>>;
14623
14624    /// <p>Deletes an approval rule from a specified pull request. Approval rules can be deleted from a pull request only if the pull request is open, and if the approval rule was created specifically for a pull request and not generated from an approval rule template associated with the repository where the pull request was created. You cannot delete an approval rule from a merged or closed pull request.</p>
14625    async fn delete_pull_request_approval_rule(
14626        &self,
14627        input: DeletePullRequestApprovalRuleInput,
14628    ) -> Result<DeletePullRequestApprovalRuleOutput, RusotoError<DeletePullRequestApprovalRuleError>>;
14629
14630    /// <p><p>Deletes a repository. If a specified repository was already deleted, a null repository ID is returned.</p> <important> <p>Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository fail.</p> </important></p>
14631    async fn delete_repository(
14632        &self,
14633        input: DeleteRepositoryInput,
14634    ) -> Result<DeleteRepositoryOutput, RusotoError<DeleteRepositoryError>>;
14635
14636    /// <p>Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. If the merge option for the attempted merge is specified as FAST_FORWARD_MERGE, an exception is thrown.</p>
14637    async fn describe_merge_conflicts(
14638        &self,
14639        input: DescribeMergeConflictsInput,
14640    ) -> Result<DescribeMergeConflictsOutput, RusotoError<DescribeMergeConflictsError>>;
14641
14642    /// <p>Returns information about one or more pull request events.</p>
14643    async fn describe_pull_request_events(
14644        &self,
14645        input: DescribePullRequestEventsInput,
14646    ) -> Result<DescribePullRequestEventsOutput, RusotoError<DescribePullRequestEventsError>>;
14647
14648    /// <p>Removes the association between a template and a repository so that approval rules based on the template are not automatically created when pull requests are created in the specified repository. This does not delete any approval rules previously created for pull requests through the template association.</p>
14649    async fn disassociate_approval_rule_template_from_repository(
14650        &self,
14651        input: DisassociateApprovalRuleTemplateFromRepositoryInput,
14652    ) -> Result<(), RusotoError<DisassociateApprovalRuleTemplateFromRepositoryError>>;
14653
14654    /// <p>Evaluates whether a pull request has met all the conditions specified in its associated approval rules.</p>
14655    async fn evaluate_pull_request_approval_rules(
14656        &self,
14657        input: EvaluatePullRequestApprovalRulesInput,
14658    ) -> Result<
14659        EvaluatePullRequestApprovalRulesOutput,
14660        RusotoError<EvaluatePullRequestApprovalRulesError>,
14661    >;
14662
14663    /// <p>Returns information about a specified approval rule template.</p>
14664    async fn get_approval_rule_template(
14665        &self,
14666        input: GetApprovalRuleTemplateInput,
14667    ) -> Result<GetApprovalRuleTemplateOutput, RusotoError<GetApprovalRuleTemplateError>>;
14668
14669    /// <p>Returns the base-64 encoded content of an individual blob in a repository.</p>
14670    async fn get_blob(
14671        &self,
14672        input: GetBlobInput,
14673    ) -> Result<GetBlobOutput, RusotoError<GetBlobError>>;
14674
14675    /// <p>Returns information about a repository branch, including its name and the last commit ID.</p>
14676    async fn get_branch(
14677        &self,
14678        input: GetBranchInput,
14679    ) -> Result<GetBranchOutput, RusotoError<GetBranchError>>;
14680
14681    /// <p><p>Returns the content of a comment made on a change, file, or commit in a repository. </p> <note> <p>Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions.</p> </note></p>
14682    async fn get_comment(
14683        &self,
14684        input: GetCommentInput,
14685    ) -> Result<GetCommentOutput, RusotoError<GetCommentError>>;
14686
14687    /// <p>Returns information about reactions to a specified comment ID. Reactions from users who have been deleted will not be included in the count.</p>
14688    async fn get_comment_reactions(
14689        &self,
14690        input: GetCommentReactionsInput,
14691    ) -> Result<GetCommentReactionsOutput, RusotoError<GetCommentReactionsError>>;
14692
14693    /// <p><p>Returns information about comments made on the comparison between two commits.</p> <note> <p>Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions.</p> </note></p>
14694    async fn get_comments_for_compared_commit(
14695        &self,
14696        input: GetCommentsForComparedCommitInput,
14697    ) -> Result<GetCommentsForComparedCommitOutput, RusotoError<GetCommentsForComparedCommitError>>;
14698
14699    /// <p><p>Returns comments made on a pull request.</p> <note> <p>Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions.</p> </note></p>
14700    async fn get_comments_for_pull_request(
14701        &self,
14702        input: GetCommentsForPullRequestInput,
14703    ) -> Result<GetCommentsForPullRequestOutput, RusotoError<GetCommentsForPullRequestError>>;
14704
14705    /// <p>Returns information about a commit, including commit message and committer information.</p>
14706    async fn get_commit(
14707        &self,
14708        input: GetCommitInput,
14709    ) -> Result<GetCommitOutput, RusotoError<GetCommitError>>;
14710
14711    /// <p>Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). Results can be limited to a specified path.</p>
14712    async fn get_differences(
14713        &self,
14714        input: GetDifferencesInput,
14715    ) -> Result<GetDifferencesOutput, RusotoError<GetDifferencesError>>;
14716
14717    /// <p>Returns the base-64 encoded contents of a specified file and its metadata.</p>
14718    async fn get_file(
14719        &self,
14720        input: GetFileInput,
14721    ) -> Result<GetFileOutput, RusotoError<GetFileError>>;
14722
14723    /// <p>Returns the contents of a specified folder in a repository.</p>
14724    async fn get_folder(
14725        &self,
14726        input: GetFolderInput,
14727    ) -> Result<GetFolderOutput, RusotoError<GetFolderError>>;
14728
14729    /// <p>Returns information about a specified merge commit.</p>
14730    async fn get_merge_commit(
14731        &self,
14732        input: GetMergeCommitInput,
14733    ) -> Result<GetMergeCommitOutput, RusotoError<GetMergeCommitError>>;
14734
14735    /// <p>Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository.</p>
14736    async fn get_merge_conflicts(
14737        &self,
14738        input: GetMergeConflictsInput,
14739    ) -> Result<GetMergeConflictsOutput, RusotoError<GetMergeConflictsError>>;
14740
14741    /// <p>Returns information about the merge options available for merging two specified branches. For details about why a merge option is not available, use GetMergeConflicts or DescribeMergeConflicts.</p>
14742    async fn get_merge_options(
14743        &self,
14744        input: GetMergeOptionsInput,
14745    ) -> Result<GetMergeOptionsOutput, RusotoError<GetMergeOptionsError>>;
14746
14747    /// <p>Gets information about a pull request in a specified repository.</p>
14748    async fn get_pull_request(
14749        &self,
14750        input: GetPullRequestInput,
14751    ) -> Result<GetPullRequestOutput, RusotoError<GetPullRequestError>>;
14752
14753    /// <p>Gets information about the approval states for a specified pull request. Approval states only apply to pull requests that have one or more approval rules applied to them.</p>
14754    async fn get_pull_request_approval_states(
14755        &self,
14756        input: GetPullRequestApprovalStatesInput,
14757    ) -> Result<GetPullRequestApprovalStatesOutput, RusotoError<GetPullRequestApprovalStatesError>>;
14758
14759    /// <p>Returns information about whether approval rules have been set aside (overridden) for a pull request, and if so, the Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request.</p>
14760    async fn get_pull_request_override_state(
14761        &self,
14762        input: GetPullRequestOverrideStateInput,
14763    ) -> Result<GetPullRequestOverrideStateOutput, RusotoError<GetPullRequestOverrideStateError>>;
14764
14765    /// <p><p>Returns information about a repository.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
14766    async fn get_repository(
14767        &self,
14768        input: GetRepositoryInput,
14769    ) -> Result<GetRepositoryOutput, RusotoError<GetRepositoryError>>;
14770
14771    /// <p>Gets information about triggers configured for a repository.</p>
14772    async fn get_repository_triggers(
14773        &self,
14774        input: GetRepositoryTriggersInput,
14775    ) -> Result<GetRepositoryTriggersOutput, RusotoError<GetRepositoryTriggersError>>;
14776
14777    /// <p>Lists all approval rule templates in the specified AWS Region in your AWS account. If an AWS Region is not specified, the AWS Region where you are signed in is used.</p>
14778    async fn list_approval_rule_templates(
14779        &self,
14780        input: ListApprovalRuleTemplatesInput,
14781    ) -> Result<ListApprovalRuleTemplatesOutput, RusotoError<ListApprovalRuleTemplatesError>>;
14782
14783    /// <p>Lists all approval rule templates that are associated with a specified repository.</p>
14784    async fn list_associated_approval_rule_templates_for_repository(
14785        &self,
14786        input: ListAssociatedApprovalRuleTemplatesForRepositoryInput,
14787    ) -> Result<
14788        ListAssociatedApprovalRuleTemplatesForRepositoryOutput,
14789        RusotoError<ListAssociatedApprovalRuleTemplatesForRepositoryError>,
14790    >;
14791
14792    /// <p>Gets information about one or more branches in a repository.</p>
14793    async fn list_branches(
14794        &self,
14795        input: ListBranchesInput,
14796    ) -> Result<ListBranchesOutput, RusotoError<ListBranchesError>>;
14797
14798    /// <p>Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN.</p>
14799    async fn list_pull_requests(
14800        &self,
14801        input: ListPullRequestsInput,
14802    ) -> Result<ListPullRequestsOutput, RusotoError<ListPullRequestsError>>;
14803
14804    /// <p>Gets information about one or more repositories.</p>
14805    async fn list_repositories(
14806        &self,
14807        input: ListRepositoriesInput,
14808    ) -> Result<ListRepositoriesOutput, RusotoError<ListRepositoriesError>>;
14809
14810    /// <p>Lists all repositories associated with the specified approval rule template.</p>
14811    async fn list_repositories_for_approval_rule_template(
14812        &self,
14813        input: ListRepositoriesForApprovalRuleTemplateInput,
14814    ) -> Result<
14815        ListRepositoriesForApprovalRuleTemplateOutput,
14816        RusotoError<ListRepositoriesForApprovalRuleTemplateError>,
14817    >;
14818
14819    /// <p>Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the<i> AWS CodeCommit User Guide</i>.</p>
14820    async fn list_tags_for_resource(
14821        &self,
14822        input: ListTagsForResourceInput,
14823    ) -> Result<ListTagsForResourceOutput, RusotoError<ListTagsForResourceError>>;
14824
14825    /// <p>Merges two branches using the fast-forward merge strategy.</p>
14826    async fn merge_branches_by_fast_forward(
14827        &self,
14828        input: MergeBranchesByFastForwardInput,
14829    ) -> Result<MergeBranchesByFastForwardOutput, RusotoError<MergeBranchesByFastForwardError>>;
14830
14831    /// <p>Merges two branches using the squash merge strategy.</p>
14832    async fn merge_branches_by_squash(
14833        &self,
14834        input: MergeBranchesBySquashInput,
14835    ) -> Result<MergeBranchesBySquashOutput, RusotoError<MergeBranchesBySquashError>>;
14836
14837    /// <p>Merges two specified branches using the three-way merge strategy.</p>
14838    async fn merge_branches_by_three_way(
14839        &self,
14840        input: MergeBranchesByThreeWayInput,
14841    ) -> Result<MergeBranchesByThreeWayOutput, RusotoError<MergeBranchesByThreeWayError>>;
14842
14843    /// <p>Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge strategy. If the merge is successful, it closes the pull request.</p>
14844    async fn merge_pull_request_by_fast_forward(
14845        &self,
14846        input: MergePullRequestByFastForwardInput,
14847    ) -> Result<MergePullRequestByFastForwardOutput, RusotoError<MergePullRequestByFastForwardError>>;
14848
14849    /// <p>Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the squash merge strategy. If the merge is successful, it closes the pull request.</p>
14850    async fn merge_pull_request_by_squash(
14851        &self,
14852        input: MergePullRequestBySquashInput,
14853    ) -> Result<MergePullRequestBySquashOutput, RusotoError<MergePullRequestBySquashError>>;
14854
14855    /// <p>Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the three-way merge strategy. If the merge is successful, it closes the pull request.</p>
14856    async fn merge_pull_request_by_three_way(
14857        &self,
14858        input: MergePullRequestByThreeWayInput,
14859    ) -> Result<MergePullRequestByThreeWayOutput, RusotoError<MergePullRequestByThreeWayError>>;
14860
14861    /// <p>Sets aside (overrides) all approval rule requirements for a specified pull request.</p>
14862    async fn override_pull_request_approval_rules(
14863        &self,
14864        input: OverridePullRequestApprovalRulesInput,
14865    ) -> Result<(), RusotoError<OverridePullRequestApprovalRulesError>>;
14866
14867    /// <p>Posts a comment on the comparison between two commits.</p>
14868    async fn post_comment_for_compared_commit(
14869        &self,
14870        input: PostCommentForComparedCommitInput,
14871    ) -> Result<PostCommentForComparedCommitOutput, RusotoError<PostCommentForComparedCommitError>>;
14872
14873    /// <p>Posts a comment on a pull request.</p>
14874    async fn post_comment_for_pull_request(
14875        &self,
14876        input: PostCommentForPullRequestInput,
14877    ) -> Result<PostCommentForPullRequestOutput, RusotoError<PostCommentForPullRequestError>>;
14878
14879    /// <p>Posts a comment in reply to an existing comment on a comparison between commits or a pull request.</p>
14880    async fn post_comment_reply(
14881        &self,
14882        input: PostCommentReplyInput,
14883    ) -> Result<PostCommentReplyOutput, RusotoError<PostCommentReplyError>>;
14884
14885    /// <p>Adds or updates a reaction to a specified comment for the user whose identity is used to make the request. You can only add or update a reaction for yourself. You cannot add, modify, or delete a reaction for another user.</p>
14886    async fn put_comment_reaction(
14887        &self,
14888        input: PutCommentReactionInput,
14889    ) -> Result<(), RusotoError<PutCommentReactionError>>;
14890
14891    /// <p>Adds or updates a file in a branch in an AWS CodeCommit repository, and generates a commit for the addition in the specified branch.</p>
14892    async fn put_file(
14893        &self,
14894        input: PutFileInput,
14895    ) -> Result<PutFileOutput, RusotoError<PutFileError>>;
14896
14897    /// <p>Replaces all triggers for a repository. Used to create or delete triggers.</p>
14898    async fn put_repository_triggers(
14899        &self,
14900        input: PutRepositoryTriggersInput,
14901    ) -> Result<PutRepositoryTriggersOutput, RusotoError<PutRepositoryTriggersError>>;
14902
14903    /// <p>Adds or updates tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the <i>AWS CodeCommit User Guide</i>.</p>
14904    async fn tag_resource(
14905        &self,
14906        input: TagResourceInput,
14907    ) -> Result<(), RusotoError<TagResourceError>>;
14908
14909    /// <p>Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test sends data from the last commit. If no data is available, sample data is generated.</p>
14910    async fn test_repository_triggers(
14911        &self,
14912        input: TestRepositoryTriggersInput,
14913    ) -> Result<TestRepositoryTriggersOutput, RusotoError<TestRepositoryTriggersError>>;
14914
14915    /// <p>Removes tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the <i>AWS CodeCommit User Guide</i>.</p>
14916    async fn untag_resource(
14917        &self,
14918        input: UntagResourceInput,
14919    ) -> Result<(), RusotoError<UntagResourceError>>;
14920
14921    /// <p>Updates the content of an approval rule template. You can change the number of required approvals, the membership of the approval rule, and whether an approval pool is defined.</p>
14922    async fn update_approval_rule_template_content(
14923        &self,
14924        input: UpdateApprovalRuleTemplateContentInput,
14925    ) -> Result<
14926        UpdateApprovalRuleTemplateContentOutput,
14927        RusotoError<UpdateApprovalRuleTemplateContentError>,
14928    >;
14929
14930    /// <p>Updates the description for a specified approval rule template.</p>
14931    async fn update_approval_rule_template_description(
14932        &self,
14933        input: UpdateApprovalRuleTemplateDescriptionInput,
14934    ) -> Result<
14935        UpdateApprovalRuleTemplateDescriptionOutput,
14936        RusotoError<UpdateApprovalRuleTemplateDescriptionError>,
14937    >;
14938
14939    /// <p>Updates the name of a specified approval rule template.</p>
14940    async fn update_approval_rule_template_name(
14941        &self,
14942        input: UpdateApprovalRuleTemplateNameInput,
14943    ) -> Result<
14944        UpdateApprovalRuleTemplateNameOutput,
14945        RusotoError<UpdateApprovalRuleTemplateNameError>,
14946    >;
14947
14948    /// <p>Replaces the contents of a comment.</p>
14949    async fn update_comment(
14950        &self,
14951        input: UpdateCommentInput,
14952    ) -> Result<UpdateCommentOutput, RusotoError<UpdateCommentError>>;
14953
14954    /// <p><p>Sets or changes the default branch name for the specified repository.</p> <note> <p>If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change.</p> </note></p>
14955    async fn update_default_branch(
14956        &self,
14957        input: UpdateDefaultBranchInput,
14958    ) -> Result<(), RusotoError<UpdateDefaultBranchError>>;
14959
14960    /// <p>Updates the structure of an approval rule created specifically for a pull request. For example, you can change the number of required approvers and the approval pool for approvers. </p>
14961    async fn update_pull_request_approval_rule_content(
14962        &self,
14963        input: UpdatePullRequestApprovalRuleContentInput,
14964    ) -> Result<
14965        UpdatePullRequestApprovalRuleContentOutput,
14966        RusotoError<UpdatePullRequestApprovalRuleContentError>,
14967    >;
14968
14969    /// <p>Updates the state of a user's approval on a pull request. The user is derived from the signed-in account when the request is made.</p>
14970    async fn update_pull_request_approval_state(
14971        &self,
14972        input: UpdatePullRequestApprovalStateInput,
14973    ) -> Result<(), RusotoError<UpdatePullRequestApprovalStateError>>;
14974
14975    /// <p>Replaces the contents of the description of a pull request.</p>
14976    async fn update_pull_request_description(
14977        &self,
14978        input: UpdatePullRequestDescriptionInput,
14979    ) -> Result<UpdatePullRequestDescriptionOutput, RusotoError<UpdatePullRequestDescriptionError>>;
14980
14981    /// <p>Updates the status of a pull request. </p>
14982    async fn update_pull_request_status(
14983        &self,
14984        input: UpdatePullRequestStatusInput,
14985    ) -> Result<UpdatePullRequestStatusOutput, RusotoError<UpdatePullRequestStatusError>>;
14986
14987    /// <p>Replaces the title of a pull request.</p>
14988    async fn update_pull_request_title(
14989        &self,
14990        input: UpdatePullRequestTitleInput,
14991    ) -> Result<UpdatePullRequestTitleOutput, RusotoError<UpdatePullRequestTitleError>>;
14992
14993    /// <p><p>Sets or changes the comment or description for a repository.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
14994    async fn update_repository_description(
14995        &self,
14996        input: UpdateRepositoryDescriptionInput,
14997    ) -> Result<(), RusotoError<UpdateRepositoryDescriptionError>>;
14998
14999    /// <p>Renames a repository. The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix .git is prohibited. For more information about the limits on repository names, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">Limits</a> in the AWS CodeCommit User Guide.</p>
15000    async fn update_repository_name(
15001        &self,
15002        input: UpdateRepositoryNameInput,
15003    ) -> Result<(), RusotoError<UpdateRepositoryNameError>>;
15004}
15005/// A client for the CodeCommit API.
15006#[derive(Clone)]
15007pub struct CodeCommitClient {
15008    client: Client,
15009    region: region::Region,
15010}
15011
15012impl CodeCommitClient {
15013    /// Creates a client backed by the default tokio event loop.
15014    ///
15015    /// The client will use the default credentials provider and tls client.
15016    pub fn new(region: region::Region) -> CodeCommitClient {
15017        CodeCommitClient {
15018            client: Client::shared(),
15019            region,
15020        }
15021    }
15022
15023    pub fn new_with<P, D>(
15024        request_dispatcher: D,
15025        credentials_provider: P,
15026        region: region::Region,
15027    ) -> CodeCommitClient
15028    where
15029        P: ProvideAwsCredentials + Send + Sync + 'static,
15030        D: DispatchSignedRequest + Send + Sync + 'static,
15031    {
15032        CodeCommitClient {
15033            client: Client::new_with(credentials_provider, request_dispatcher),
15034            region,
15035        }
15036    }
15037
15038    pub fn new_with_client(client: Client, region: region::Region) -> CodeCommitClient {
15039        CodeCommitClient { client, region }
15040    }
15041}
15042
15043#[async_trait]
15044impl CodeCommit for CodeCommitClient {
15045    /// <p>Creates an association between an approval rule template and a specified repository. Then, the next time a pull request is created in the repository where the destination reference (if specified) matches the destination reference (branch) for the pull request, an approval rule that matches the template conditions is automatically created for that pull request. If no destination references are specified in the template, an approval rule that matches the template contents is created for all pull requests in that repository.</p>
15046    async fn associate_approval_rule_template_with_repository(
15047        &self,
15048        input: AssociateApprovalRuleTemplateWithRepositoryInput,
15049    ) -> Result<(), RusotoError<AssociateApprovalRuleTemplateWithRepositoryError>> {
15050        let mut request = self.new_signed_request("POST", "/");
15051        request.add_header(
15052            "x-amz-target",
15053            "CodeCommit_20150413.AssociateApprovalRuleTemplateWithRepository",
15054        );
15055        let encoded = serde_json::to_string(&input).unwrap();
15056        request.set_payload(Some(encoded));
15057
15058        let response = self
15059            .sign_and_dispatch(
15060                request,
15061                AssociateApprovalRuleTemplateWithRepositoryError::from_response,
15062            )
15063            .await?;
15064        std::mem::drop(response);
15065        Ok(())
15066    }
15067
15068    /// <p>Creates an association between an approval rule template and one or more specified repositories. </p>
15069    async fn batch_associate_approval_rule_template_with_repositories(
15070        &self,
15071        input: BatchAssociateApprovalRuleTemplateWithRepositoriesInput,
15072    ) -> Result<
15073        BatchAssociateApprovalRuleTemplateWithRepositoriesOutput,
15074        RusotoError<BatchAssociateApprovalRuleTemplateWithRepositoriesError>,
15075    > {
15076        let mut request = self.new_signed_request("POST", "/");
15077        request.add_header(
15078            "x-amz-target",
15079            "CodeCommit_20150413.BatchAssociateApprovalRuleTemplateWithRepositories",
15080        );
15081        let encoded = serde_json::to_string(&input).unwrap();
15082        request.set_payload(Some(encoded));
15083
15084        let response = self
15085            .sign_and_dispatch(
15086                request,
15087                BatchAssociateApprovalRuleTemplateWithRepositoriesError::from_response,
15088            )
15089            .await?;
15090        let mut response = response;
15091        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15092        proto::json::ResponsePayload::new(&response)
15093            .deserialize::<BatchAssociateApprovalRuleTemplateWithRepositoriesOutput, _>()
15094    }
15095
15096    /// <p>Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy.</p>
15097    async fn batch_describe_merge_conflicts(
15098        &self,
15099        input: BatchDescribeMergeConflictsInput,
15100    ) -> Result<BatchDescribeMergeConflictsOutput, RusotoError<BatchDescribeMergeConflictsError>>
15101    {
15102        let mut request = self.new_signed_request("POST", "/");
15103        request.add_header(
15104            "x-amz-target",
15105            "CodeCommit_20150413.BatchDescribeMergeConflicts",
15106        );
15107        let encoded = serde_json::to_string(&input).unwrap();
15108        request.set_payload(Some(encoded));
15109
15110        let response = self
15111            .sign_and_dispatch(request, BatchDescribeMergeConflictsError::from_response)
15112            .await?;
15113        let mut response = response;
15114        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15115        proto::json::ResponsePayload::new(&response)
15116            .deserialize::<BatchDescribeMergeConflictsOutput, _>()
15117    }
15118
15119    /// <p>Removes the association between an approval rule template and one or more specified repositories. </p>
15120    async fn batch_disassociate_approval_rule_template_from_repositories(
15121        &self,
15122        input: BatchDisassociateApprovalRuleTemplateFromRepositoriesInput,
15123    ) -> Result<
15124        BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput,
15125        RusotoError<BatchDisassociateApprovalRuleTemplateFromRepositoriesError>,
15126    > {
15127        let mut request = self.new_signed_request("POST", "/");
15128        request.add_header(
15129            "x-amz-target",
15130            "CodeCommit_20150413.BatchDisassociateApprovalRuleTemplateFromRepositories",
15131        );
15132        let encoded = serde_json::to_string(&input).unwrap();
15133        request.set_payload(Some(encoded));
15134
15135        let response = self
15136            .sign_and_dispatch(
15137                request,
15138                BatchDisassociateApprovalRuleTemplateFromRepositoriesError::from_response,
15139            )
15140            .await?;
15141        let mut response = response;
15142        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15143        proto::json::ResponsePayload::new(&response)
15144            .deserialize::<BatchDisassociateApprovalRuleTemplateFromRepositoriesOutput, _>()
15145    }
15146
15147    /// <p>Returns information about the contents of one or more commits in a repository.</p>
15148    async fn batch_get_commits(
15149        &self,
15150        input: BatchGetCommitsInput,
15151    ) -> Result<BatchGetCommitsOutput, RusotoError<BatchGetCommitsError>> {
15152        let mut request = self.new_signed_request("POST", "/");
15153        request.add_header("x-amz-target", "CodeCommit_20150413.BatchGetCommits");
15154        let encoded = serde_json::to_string(&input).unwrap();
15155        request.set_payload(Some(encoded));
15156
15157        let response = self
15158            .sign_and_dispatch(request, BatchGetCommitsError::from_response)
15159            .await?;
15160        let mut response = response;
15161        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15162        proto::json::ResponsePayload::new(&response).deserialize::<BatchGetCommitsOutput, _>()
15163    }
15164
15165    /// <p><p>Returns information about one or more repositories.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
15166    async fn batch_get_repositories(
15167        &self,
15168        input: BatchGetRepositoriesInput,
15169    ) -> Result<BatchGetRepositoriesOutput, RusotoError<BatchGetRepositoriesError>> {
15170        let mut request = self.new_signed_request("POST", "/");
15171        request.add_header("x-amz-target", "CodeCommit_20150413.BatchGetRepositories");
15172        let encoded = serde_json::to_string(&input).unwrap();
15173        request.set_payload(Some(encoded));
15174
15175        let response = self
15176            .sign_and_dispatch(request, BatchGetRepositoriesError::from_response)
15177            .await?;
15178        let mut response = response;
15179        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15180        proto::json::ResponsePayload::new(&response).deserialize::<BatchGetRepositoriesOutput, _>()
15181    }
15182
15183    /// <p>Creates a template for approval rules that can then be associated with one or more repositories in your AWS account. When you associate a template with a repository, AWS CodeCommit creates an approval rule that matches the conditions of the template for all pull requests that meet the conditions of the template. For more information, see <a>AssociateApprovalRuleTemplateWithRepository</a>.</p>
15184    async fn create_approval_rule_template(
15185        &self,
15186        input: CreateApprovalRuleTemplateInput,
15187    ) -> Result<CreateApprovalRuleTemplateOutput, RusotoError<CreateApprovalRuleTemplateError>>
15188    {
15189        let mut request = self.new_signed_request("POST", "/");
15190        request.add_header(
15191            "x-amz-target",
15192            "CodeCommit_20150413.CreateApprovalRuleTemplate",
15193        );
15194        let encoded = serde_json::to_string(&input).unwrap();
15195        request.set_payload(Some(encoded));
15196
15197        let response = self
15198            .sign_and_dispatch(request, CreateApprovalRuleTemplateError::from_response)
15199            .await?;
15200        let mut response = response;
15201        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15202        proto::json::ResponsePayload::new(&response)
15203            .deserialize::<CreateApprovalRuleTemplateOutput, _>()
15204    }
15205
15206    /// <p><p>Creates a branch in a repository and points the branch to a commit.</p> <note> <p>Calling the create branch operation does not set a repository&#39;s default branch. To do this, call the update default branch operation.</p> </note></p>
15207    async fn create_branch(
15208        &self,
15209        input: CreateBranchInput,
15210    ) -> Result<(), RusotoError<CreateBranchError>> {
15211        let mut request = self.new_signed_request("POST", "/");
15212        request.add_header("x-amz-target", "CodeCommit_20150413.CreateBranch");
15213        let encoded = serde_json::to_string(&input).unwrap();
15214        request.set_payload(Some(encoded));
15215
15216        let response = self
15217            .sign_and_dispatch(request, CreateBranchError::from_response)
15218            .await?;
15219        std::mem::drop(response);
15220        Ok(())
15221    }
15222
15223    /// <p>Creates a commit for a repository on the tip of a specified branch.</p>
15224    async fn create_commit(
15225        &self,
15226        input: CreateCommitInput,
15227    ) -> Result<CreateCommitOutput, RusotoError<CreateCommitError>> {
15228        let mut request = self.new_signed_request("POST", "/");
15229        request.add_header("x-amz-target", "CodeCommit_20150413.CreateCommit");
15230        let encoded = serde_json::to_string(&input).unwrap();
15231        request.set_payload(Some(encoded));
15232
15233        let response = self
15234            .sign_and_dispatch(request, CreateCommitError::from_response)
15235            .await?;
15236        let mut response = response;
15237        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15238        proto::json::ResponsePayload::new(&response).deserialize::<CreateCommitOutput, _>()
15239    }
15240
15241    /// <p>Creates a pull request in the specified repository.</p>
15242    async fn create_pull_request(
15243        &self,
15244        input: CreatePullRequestInput,
15245    ) -> Result<CreatePullRequestOutput, RusotoError<CreatePullRequestError>> {
15246        let mut request = self.new_signed_request("POST", "/");
15247        request.add_header("x-amz-target", "CodeCommit_20150413.CreatePullRequest");
15248        let encoded = serde_json::to_string(&input).unwrap();
15249        request.set_payload(Some(encoded));
15250
15251        let response = self
15252            .sign_and_dispatch(request, CreatePullRequestError::from_response)
15253            .await?;
15254        let mut response = response;
15255        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15256        proto::json::ResponsePayload::new(&response).deserialize::<CreatePullRequestOutput, _>()
15257    }
15258
15259    /// <p>Creates an approval rule for a pull request.</p>
15260    async fn create_pull_request_approval_rule(
15261        &self,
15262        input: CreatePullRequestApprovalRuleInput,
15263    ) -> Result<CreatePullRequestApprovalRuleOutput, RusotoError<CreatePullRequestApprovalRuleError>>
15264    {
15265        let mut request = self.new_signed_request("POST", "/");
15266        request.add_header(
15267            "x-amz-target",
15268            "CodeCommit_20150413.CreatePullRequestApprovalRule",
15269        );
15270        let encoded = serde_json::to_string(&input).unwrap();
15271        request.set_payload(Some(encoded));
15272
15273        let response = self
15274            .sign_and_dispatch(request, CreatePullRequestApprovalRuleError::from_response)
15275            .await?;
15276        let mut response = response;
15277        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15278        proto::json::ResponsePayload::new(&response)
15279            .deserialize::<CreatePullRequestApprovalRuleOutput, _>()
15280    }
15281
15282    /// <p>Creates a new, empty repository.</p>
15283    async fn create_repository(
15284        &self,
15285        input: CreateRepositoryInput,
15286    ) -> Result<CreateRepositoryOutput, RusotoError<CreateRepositoryError>> {
15287        let mut request = self.new_signed_request("POST", "/");
15288        request.add_header("x-amz-target", "CodeCommit_20150413.CreateRepository");
15289        let encoded = serde_json::to_string(&input).unwrap();
15290        request.set_payload(Some(encoded));
15291
15292        let response = self
15293            .sign_and_dispatch(request, CreateRepositoryError::from_response)
15294            .await?;
15295        let mut response = response;
15296        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15297        proto::json::ResponsePayload::new(&response).deserialize::<CreateRepositoryOutput, _>()
15298    }
15299
15300    /// <p><p>Creates an unreferenced commit that represents the result of merging two branches using a specified merge strategy. This can help you determine the outcome of a potential merge. This API cannot be used with the fast-forward merge strategy because that strategy does not create a merge commit.</p> <note> <p>This unreferenced merge commit can only be accessed using the GetCommit API or through git commands such as git fetch. To retrieve this commit, you must specify its commit ID or otherwise reference it.</p> </note></p>
15301    async fn create_unreferenced_merge_commit(
15302        &self,
15303        input: CreateUnreferencedMergeCommitInput,
15304    ) -> Result<CreateUnreferencedMergeCommitOutput, RusotoError<CreateUnreferencedMergeCommitError>>
15305    {
15306        let mut request = self.new_signed_request("POST", "/");
15307        request.add_header(
15308            "x-amz-target",
15309            "CodeCommit_20150413.CreateUnreferencedMergeCommit",
15310        );
15311        let encoded = serde_json::to_string(&input).unwrap();
15312        request.set_payload(Some(encoded));
15313
15314        let response = self
15315            .sign_and_dispatch(request, CreateUnreferencedMergeCommitError::from_response)
15316            .await?;
15317        let mut response = response;
15318        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15319        proto::json::ResponsePayload::new(&response)
15320            .deserialize::<CreateUnreferencedMergeCommitOutput, _>()
15321    }
15322
15323    /// <p>Deletes a specified approval rule template. Deleting a template does not remove approval rules on pull requests already created with the template.</p>
15324    async fn delete_approval_rule_template(
15325        &self,
15326        input: DeleteApprovalRuleTemplateInput,
15327    ) -> Result<DeleteApprovalRuleTemplateOutput, RusotoError<DeleteApprovalRuleTemplateError>>
15328    {
15329        let mut request = self.new_signed_request("POST", "/");
15330        request.add_header(
15331            "x-amz-target",
15332            "CodeCommit_20150413.DeleteApprovalRuleTemplate",
15333        );
15334        let encoded = serde_json::to_string(&input).unwrap();
15335        request.set_payload(Some(encoded));
15336
15337        let response = self
15338            .sign_and_dispatch(request, DeleteApprovalRuleTemplateError::from_response)
15339            .await?;
15340        let mut response = response;
15341        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15342        proto::json::ResponsePayload::new(&response)
15343            .deserialize::<DeleteApprovalRuleTemplateOutput, _>()
15344    }
15345
15346    /// <p>Deletes a branch from a repository, unless that branch is the default branch for the repository. </p>
15347    async fn delete_branch(
15348        &self,
15349        input: DeleteBranchInput,
15350    ) -> Result<DeleteBranchOutput, RusotoError<DeleteBranchError>> {
15351        let mut request = self.new_signed_request("POST", "/");
15352        request.add_header("x-amz-target", "CodeCommit_20150413.DeleteBranch");
15353        let encoded = serde_json::to_string(&input).unwrap();
15354        request.set_payload(Some(encoded));
15355
15356        let response = self
15357            .sign_and_dispatch(request, DeleteBranchError::from_response)
15358            .await?;
15359        let mut response = response;
15360        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15361        proto::json::ResponsePayload::new(&response).deserialize::<DeleteBranchOutput, _>()
15362    }
15363
15364    /// <p>Deletes the content of a comment made on a change, file, or commit in a repository.</p>
15365    async fn delete_comment_content(
15366        &self,
15367        input: DeleteCommentContentInput,
15368    ) -> Result<DeleteCommentContentOutput, RusotoError<DeleteCommentContentError>> {
15369        let mut request = self.new_signed_request("POST", "/");
15370        request.add_header("x-amz-target", "CodeCommit_20150413.DeleteCommentContent");
15371        let encoded = serde_json::to_string(&input).unwrap();
15372        request.set_payload(Some(encoded));
15373
15374        let response = self
15375            .sign_and_dispatch(request, DeleteCommentContentError::from_response)
15376            .await?;
15377        let mut response = response;
15378        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15379        proto::json::ResponsePayload::new(&response).deserialize::<DeleteCommentContentOutput, _>()
15380    }
15381
15382    /// <p>Deletes a specified file from a specified branch. A commit is created on the branch that contains the revision. The file still exists in the commits earlier to the commit that contains the deletion.</p>
15383    async fn delete_file(
15384        &self,
15385        input: DeleteFileInput,
15386    ) -> Result<DeleteFileOutput, RusotoError<DeleteFileError>> {
15387        let mut request = self.new_signed_request("POST", "/");
15388        request.add_header("x-amz-target", "CodeCommit_20150413.DeleteFile");
15389        let encoded = serde_json::to_string(&input).unwrap();
15390        request.set_payload(Some(encoded));
15391
15392        let response = self
15393            .sign_and_dispatch(request, DeleteFileError::from_response)
15394            .await?;
15395        let mut response = response;
15396        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15397        proto::json::ResponsePayload::new(&response).deserialize::<DeleteFileOutput, _>()
15398    }
15399
15400    /// <p>Deletes an approval rule from a specified pull request. Approval rules can be deleted from a pull request only if the pull request is open, and if the approval rule was created specifically for a pull request and not generated from an approval rule template associated with the repository where the pull request was created. You cannot delete an approval rule from a merged or closed pull request.</p>
15401    async fn delete_pull_request_approval_rule(
15402        &self,
15403        input: DeletePullRequestApprovalRuleInput,
15404    ) -> Result<DeletePullRequestApprovalRuleOutput, RusotoError<DeletePullRequestApprovalRuleError>>
15405    {
15406        let mut request = self.new_signed_request("POST", "/");
15407        request.add_header(
15408            "x-amz-target",
15409            "CodeCommit_20150413.DeletePullRequestApprovalRule",
15410        );
15411        let encoded = serde_json::to_string(&input).unwrap();
15412        request.set_payload(Some(encoded));
15413
15414        let response = self
15415            .sign_and_dispatch(request, DeletePullRequestApprovalRuleError::from_response)
15416            .await?;
15417        let mut response = response;
15418        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15419        proto::json::ResponsePayload::new(&response)
15420            .deserialize::<DeletePullRequestApprovalRuleOutput, _>()
15421    }
15422
15423    /// <p><p>Deletes a repository. If a specified repository was already deleted, a null repository ID is returned.</p> <important> <p>Deleting a repository also deletes all associated objects and metadata. After a repository is deleted, all future push calls to the deleted repository fail.</p> </important></p>
15424    async fn delete_repository(
15425        &self,
15426        input: DeleteRepositoryInput,
15427    ) -> Result<DeleteRepositoryOutput, RusotoError<DeleteRepositoryError>> {
15428        let mut request = self.new_signed_request("POST", "/");
15429        request.add_header("x-amz-target", "CodeCommit_20150413.DeleteRepository");
15430        let encoded = serde_json::to_string(&input).unwrap();
15431        request.set_payload(Some(encoded));
15432
15433        let response = self
15434            .sign_and_dispatch(request, DeleteRepositoryError::from_response)
15435            .await?;
15436        let mut response = response;
15437        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15438        proto::json::ResponsePayload::new(&response).deserialize::<DeleteRepositoryOutput, _>()
15439    }
15440
15441    /// <p>Returns information about one or more merge conflicts in the attempted merge of two commit specifiers using the squash or three-way merge strategy. If the merge option for the attempted merge is specified as FAST_FORWARD_MERGE, an exception is thrown.</p>
15442    async fn describe_merge_conflicts(
15443        &self,
15444        input: DescribeMergeConflictsInput,
15445    ) -> Result<DescribeMergeConflictsOutput, RusotoError<DescribeMergeConflictsError>> {
15446        let mut request = self.new_signed_request("POST", "/");
15447        request.add_header("x-amz-target", "CodeCommit_20150413.DescribeMergeConflicts");
15448        let encoded = serde_json::to_string(&input).unwrap();
15449        request.set_payload(Some(encoded));
15450
15451        let response = self
15452            .sign_and_dispatch(request, DescribeMergeConflictsError::from_response)
15453            .await?;
15454        let mut response = response;
15455        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15456        proto::json::ResponsePayload::new(&response)
15457            .deserialize::<DescribeMergeConflictsOutput, _>()
15458    }
15459
15460    /// <p>Returns information about one or more pull request events.</p>
15461    async fn describe_pull_request_events(
15462        &self,
15463        input: DescribePullRequestEventsInput,
15464    ) -> Result<DescribePullRequestEventsOutput, RusotoError<DescribePullRequestEventsError>> {
15465        let mut request = self.new_signed_request("POST", "/");
15466        request.add_header(
15467            "x-amz-target",
15468            "CodeCommit_20150413.DescribePullRequestEvents",
15469        );
15470        let encoded = serde_json::to_string(&input).unwrap();
15471        request.set_payload(Some(encoded));
15472
15473        let response = self
15474            .sign_and_dispatch(request, DescribePullRequestEventsError::from_response)
15475            .await?;
15476        let mut response = response;
15477        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15478        proto::json::ResponsePayload::new(&response)
15479            .deserialize::<DescribePullRequestEventsOutput, _>()
15480    }
15481
15482    /// <p>Removes the association between a template and a repository so that approval rules based on the template are not automatically created when pull requests are created in the specified repository. This does not delete any approval rules previously created for pull requests through the template association.</p>
15483    async fn disassociate_approval_rule_template_from_repository(
15484        &self,
15485        input: DisassociateApprovalRuleTemplateFromRepositoryInput,
15486    ) -> Result<(), RusotoError<DisassociateApprovalRuleTemplateFromRepositoryError>> {
15487        let mut request = self.new_signed_request("POST", "/");
15488        request.add_header(
15489            "x-amz-target",
15490            "CodeCommit_20150413.DisassociateApprovalRuleTemplateFromRepository",
15491        );
15492        let encoded = serde_json::to_string(&input).unwrap();
15493        request.set_payload(Some(encoded));
15494
15495        let response = self
15496            .sign_and_dispatch(
15497                request,
15498                DisassociateApprovalRuleTemplateFromRepositoryError::from_response,
15499            )
15500            .await?;
15501        std::mem::drop(response);
15502        Ok(())
15503    }
15504
15505    /// <p>Evaluates whether a pull request has met all the conditions specified in its associated approval rules.</p>
15506    async fn evaluate_pull_request_approval_rules(
15507        &self,
15508        input: EvaluatePullRequestApprovalRulesInput,
15509    ) -> Result<
15510        EvaluatePullRequestApprovalRulesOutput,
15511        RusotoError<EvaluatePullRequestApprovalRulesError>,
15512    > {
15513        let mut request = self.new_signed_request("POST", "/");
15514        request.add_header(
15515            "x-amz-target",
15516            "CodeCommit_20150413.EvaluatePullRequestApprovalRules",
15517        );
15518        let encoded = serde_json::to_string(&input).unwrap();
15519        request.set_payload(Some(encoded));
15520
15521        let response = self
15522            .sign_and_dispatch(
15523                request,
15524                EvaluatePullRequestApprovalRulesError::from_response,
15525            )
15526            .await?;
15527        let mut response = response;
15528        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15529        proto::json::ResponsePayload::new(&response)
15530            .deserialize::<EvaluatePullRequestApprovalRulesOutput, _>()
15531    }
15532
15533    /// <p>Returns information about a specified approval rule template.</p>
15534    async fn get_approval_rule_template(
15535        &self,
15536        input: GetApprovalRuleTemplateInput,
15537    ) -> Result<GetApprovalRuleTemplateOutput, RusotoError<GetApprovalRuleTemplateError>> {
15538        let mut request = self.new_signed_request("POST", "/");
15539        request.add_header(
15540            "x-amz-target",
15541            "CodeCommit_20150413.GetApprovalRuleTemplate",
15542        );
15543        let encoded = serde_json::to_string(&input).unwrap();
15544        request.set_payload(Some(encoded));
15545
15546        let response = self
15547            .sign_and_dispatch(request, GetApprovalRuleTemplateError::from_response)
15548            .await?;
15549        let mut response = response;
15550        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15551        proto::json::ResponsePayload::new(&response)
15552            .deserialize::<GetApprovalRuleTemplateOutput, _>()
15553    }
15554
15555    /// <p>Returns the base-64 encoded content of an individual blob in a repository.</p>
15556    async fn get_blob(
15557        &self,
15558        input: GetBlobInput,
15559    ) -> Result<GetBlobOutput, RusotoError<GetBlobError>> {
15560        let mut request = self.new_signed_request("POST", "/");
15561        request.add_header("x-amz-target", "CodeCommit_20150413.GetBlob");
15562        let encoded = serde_json::to_string(&input).unwrap();
15563        request.set_payload(Some(encoded));
15564
15565        let response = self
15566            .sign_and_dispatch(request, GetBlobError::from_response)
15567            .await?;
15568        let mut response = response;
15569        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15570        proto::json::ResponsePayload::new(&response).deserialize::<GetBlobOutput, _>()
15571    }
15572
15573    /// <p>Returns information about a repository branch, including its name and the last commit ID.</p>
15574    async fn get_branch(
15575        &self,
15576        input: GetBranchInput,
15577    ) -> Result<GetBranchOutput, RusotoError<GetBranchError>> {
15578        let mut request = self.new_signed_request("POST", "/");
15579        request.add_header("x-amz-target", "CodeCommit_20150413.GetBranch");
15580        let encoded = serde_json::to_string(&input).unwrap();
15581        request.set_payload(Some(encoded));
15582
15583        let response = self
15584            .sign_and_dispatch(request, GetBranchError::from_response)
15585            .await?;
15586        let mut response = response;
15587        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15588        proto::json::ResponsePayload::new(&response).deserialize::<GetBranchOutput, _>()
15589    }
15590
15591    /// <p><p>Returns the content of a comment made on a change, file, or commit in a repository. </p> <note> <p>Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions.</p> </note></p>
15592    async fn get_comment(
15593        &self,
15594        input: GetCommentInput,
15595    ) -> Result<GetCommentOutput, RusotoError<GetCommentError>> {
15596        let mut request = self.new_signed_request("POST", "/");
15597        request.add_header("x-amz-target", "CodeCommit_20150413.GetComment");
15598        let encoded = serde_json::to_string(&input).unwrap();
15599        request.set_payload(Some(encoded));
15600
15601        let response = self
15602            .sign_and_dispatch(request, GetCommentError::from_response)
15603            .await?;
15604        let mut response = response;
15605        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15606        proto::json::ResponsePayload::new(&response).deserialize::<GetCommentOutput, _>()
15607    }
15608
15609    /// <p>Returns information about reactions to a specified comment ID. Reactions from users who have been deleted will not be included in the count.</p>
15610    async fn get_comment_reactions(
15611        &self,
15612        input: GetCommentReactionsInput,
15613    ) -> Result<GetCommentReactionsOutput, RusotoError<GetCommentReactionsError>> {
15614        let mut request = self.new_signed_request("POST", "/");
15615        request.add_header("x-amz-target", "CodeCommit_20150413.GetCommentReactions");
15616        let encoded = serde_json::to_string(&input).unwrap();
15617        request.set_payload(Some(encoded));
15618
15619        let response = self
15620            .sign_and_dispatch(request, GetCommentReactionsError::from_response)
15621            .await?;
15622        let mut response = response;
15623        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15624        proto::json::ResponsePayload::new(&response).deserialize::<GetCommentReactionsOutput, _>()
15625    }
15626
15627    /// <p><p>Returns information about comments made on the comparison between two commits.</p> <note> <p>Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions.</p> </note></p>
15628    async fn get_comments_for_compared_commit(
15629        &self,
15630        input: GetCommentsForComparedCommitInput,
15631    ) -> Result<GetCommentsForComparedCommitOutput, RusotoError<GetCommentsForComparedCommitError>>
15632    {
15633        let mut request = self.new_signed_request("POST", "/");
15634        request.add_header(
15635            "x-amz-target",
15636            "CodeCommit_20150413.GetCommentsForComparedCommit",
15637        );
15638        let encoded = serde_json::to_string(&input).unwrap();
15639        request.set_payload(Some(encoded));
15640
15641        let response = self
15642            .sign_and_dispatch(request, GetCommentsForComparedCommitError::from_response)
15643            .await?;
15644        let mut response = response;
15645        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15646        proto::json::ResponsePayload::new(&response)
15647            .deserialize::<GetCommentsForComparedCommitOutput, _>()
15648    }
15649
15650    /// <p><p>Returns comments made on a pull request.</p> <note> <p>Reaction counts might include numbers from user identities who were deleted after the reaction was made. For a count of reactions from active identities, use GetCommentReactions.</p> </note></p>
15651    async fn get_comments_for_pull_request(
15652        &self,
15653        input: GetCommentsForPullRequestInput,
15654    ) -> Result<GetCommentsForPullRequestOutput, RusotoError<GetCommentsForPullRequestError>> {
15655        let mut request = self.new_signed_request("POST", "/");
15656        request.add_header(
15657            "x-amz-target",
15658            "CodeCommit_20150413.GetCommentsForPullRequest",
15659        );
15660        let encoded = serde_json::to_string(&input).unwrap();
15661        request.set_payload(Some(encoded));
15662
15663        let response = self
15664            .sign_and_dispatch(request, GetCommentsForPullRequestError::from_response)
15665            .await?;
15666        let mut response = response;
15667        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15668        proto::json::ResponsePayload::new(&response)
15669            .deserialize::<GetCommentsForPullRequestOutput, _>()
15670    }
15671
15672    /// <p>Returns information about a commit, including commit message and committer information.</p>
15673    async fn get_commit(
15674        &self,
15675        input: GetCommitInput,
15676    ) -> Result<GetCommitOutput, RusotoError<GetCommitError>> {
15677        let mut request = self.new_signed_request("POST", "/");
15678        request.add_header("x-amz-target", "CodeCommit_20150413.GetCommit");
15679        let encoded = serde_json::to_string(&input).unwrap();
15680        request.set_payload(Some(encoded));
15681
15682        let response = self
15683            .sign_and_dispatch(request, GetCommitError::from_response)
15684            .await?;
15685        let mut response = response;
15686        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15687        proto::json::ResponsePayload::new(&response).deserialize::<GetCommitOutput, _>()
15688    }
15689
15690    /// <p>Returns information about the differences in a valid commit specifier (such as a branch, tag, HEAD, commit ID, or other fully qualified reference). Results can be limited to a specified path.</p>
15691    async fn get_differences(
15692        &self,
15693        input: GetDifferencesInput,
15694    ) -> Result<GetDifferencesOutput, RusotoError<GetDifferencesError>> {
15695        let mut request = self.new_signed_request("POST", "/");
15696        request.add_header("x-amz-target", "CodeCommit_20150413.GetDifferences");
15697        let encoded = serde_json::to_string(&input).unwrap();
15698        request.set_payload(Some(encoded));
15699
15700        let response = self
15701            .sign_and_dispatch(request, GetDifferencesError::from_response)
15702            .await?;
15703        let mut response = response;
15704        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15705        proto::json::ResponsePayload::new(&response).deserialize::<GetDifferencesOutput, _>()
15706    }
15707
15708    /// <p>Returns the base-64 encoded contents of a specified file and its metadata.</p>
15709    async fn get_file(
15710        &self,
15711        input: GetFileInput,
15712    ) -> Result<GetFileOutput, RusotoError<GetFileError>> {
15713        let mut request = self.new_signed_request("POST", "/");
15714        request.add_header("x-amz-target", "CodeCommit_20150413.GetFile");
15715        let encoded = serde_json::to_string(&input).unwrap();
15716        request.set_payload(Some(encoded));
15717
15718        let response = self
15719            .sign_and_dispatch(request, GetFileError::from_response)
15720            .await?;
15721        let mut response = response;
15722        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15723        proto::json::ResponsePayload::new(&response).deserialize::<GetFileOutput, _>()
15724    }
15725
15726    /// <p>Returns the contents of a specified folder in a repository.</p>
15727    async fn get_folder(
15728        &self,
15729        input: GetFolderInput,
15730    ) -> Result<GetFolderOutput, RusotoError<GetFolderError>> {
15731        let mut request = self.new_signed_request("POST", "/");
15732        request.add_header("x-amz-target", "CodeCommit_20150413.GetFolder");
15733        let encoded = serde_json::to_string(&input).unwrap();
15734        request.set_payload(Some(encoded));
15735
15736        let response = self
15737            .sign_and_dispatch(request, GetFolderError::from_response)
15738            .await?;
15739        let mut response = response;
15740        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15741        proto::json::ResponsePayload::new(&response).deserialize::<GetFolderOutput, _>()
15742    }
15743
15744    /// <p>Returns information about a specified merge commit.</p>
15745    async fn get_merge_commit(
15746        &self,
15747        input: GetMergeCommitInput,
15748    ) -> Result<GetMergeCommitOutput, RusotoError<GetMergeCommitError>> {
15749        let mut request = self.new_signed_request("POST", "/");
15750        request.add_header("x-amz-target", "CodeCommit_20150413.GetMergeCommit");
15751        let encoded = serde_json::to_string(&input).unwrap();
15752        request.set_payload(Some(encoded));
15753
15754        let response = self
15755            .sign_and_dispatch(request, GetMergeCommitError::from_response)
15756            .await?;
15757        let mut response = response;
15758        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15759        proto::json::ResponsePayload::new(&response).deserialize::<GetMergeCommitOutput, _>()
15760    }
15761
15762    /// <p>Returns information about merge conflicts between the before and after commit IDs for a pull request in a repository.</p>
15763    async fn get_merge_conflicts(
15764        &self,
15765        input: GetMergeConflictsInput,
15766    ) -> Result<GetMergeConflictsOutput, RusotoError<GetMergeConflictsError>> {
15767        let mut request = self.new_signed_request("POST", "/");
15768        request.add_header("x-amz-target", "CodeCommit_20150413.GetMergeConflicts");
15769        let encoded = serde_json::to_string(&input).unwrap();
15770        request.set_payload(Some(encoded));
15771
15772        let response = self
15773            .sign_and_dispatch(request, GetMergeConflictsError::from_response)
15774            .await?;
15775        let mut response = response;
15776        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15777        proto::json::ResponsePayload::new(&response).deserialize::<GetMergeConflictsOutput, _>()
15778    }
15779
15780    /// <p>Returns information about the merge options available for merging two specified branches. For details about why a merge option is not available, use GetMergeConflicts or DescribeMergeConflicts.</p>
15781    async fn get_merge_options(
15782        &self,
15783        input: GetMergeOptionsInput,
15784    ) -> Result<GetMergeOptionsOutput, RusotoError<GetMergeOptionsError>> {
15785        let mut request = self.new_signed_request("POST", "/");
15786        request.add_header("x-amz-target", "CodeCommit_20150413.GetMergeOptions");
15787        let encoded = serde_json::to_string(&input).unwrap();
15788        request.set_payload(Some(encoded));
15789
15790        let response = self
15791            .sign_and_dispatch(request, GetMergeOptionsError::from_response)
15792            .await?;
15793        let mut response = response;
15794        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15795        proto::json::ResponsePayload::new(&response).deserialize::<GetMergeOptionsOutput, _>()
15796    }
15797
15798    /// <p>Gets information about a pull request in a specified repository.</p>
15799    async fn get_pull_request(
15800        &self,
15801        input: GetPullRequestInput,
15802    ) -> Result<GetPullRequestOutput, RusotoError<GetPullRequestError>> {
15803        let mut request = self.new_signed_request("POST", "/");
15804        request.add_header("x-amz-target", "CodeCommit_20150413.GetPullRequest");
15805        let encoded = serde_json::to_string(&input).unwrap();
15806        request.set_payload(Some(encoded));
15807
15808        let response = self
15809            .sign_and_dispatch(request, GetPullRequestError::from_response)
15810            .await?;
15811        let mut response = response;
15812        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15813        proto::json::ResponsePayload::new(&response).deserialize::<GetPullRequestOutput, _>()
15814    }
15815
15816    /// <p>Gets information about the approval states for a specified pull request. Approval states only apply to pull requests that have one or more approval rules applied to them.</p>
15817    async fn get_pull_request_approval_states(
15818        &self,
15819        input: GetPullRequestApprovalStatesInput,
15820    ) -> Result<GetPullRequestApprovalStatesOutput, RusotoError<GetPullRequestApprovalStatesError>>
15821    {
15822        let mut request = self.new_signed_request("POST", "/");
15823        request.add_header(
15824            "x-amz-target",
15825            "CodeCommit_20150413.GetPullRequestApprovalStates",
15826        );
15827        let encoded = serde_json::to_string(&input).unwrap();
15828        request.set_payload(Some(encoded));
15829
15830        let response = self
15831            .sign_and_dispatch(request, GetPullRequestApprovalStatesError::from_response)
15832            .await?;
15833        let mut response = response;
15834        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15835        proto::json::ResponsePayload::new(&response)
15836            .deserialize::<GetPullRequestApprovalStatesOutput, _>()
15837    }
15838
15839    /// <p>Returns information about whether approval rules have been set aside (overridden) for a pull request, and if so, the Amazon Resource Name (ARN) of the user or identity that overrode the rules and their requirements for the pull request.</p>
15840    async fn get_pull_request_override_state(
15841        &self,
15842        input: GetPullRequestOverrideStateInput,
15843    ) -> Result<GetPullRequestOverrideStateOutput, RusotoError<GetPullRequestOverrideStateError>>
15844    {
15845        let mut request = self.new_signed_request("POST", "/");
15846        request.add_header(
15847            "x-amz-target",
15848            "CodeCommit_20150413.GetPullRequestOverrideState",
15849        );
15850        let encoded = serde_json::to_string(&input).unwrap();
15851        request.set_payload(Some(encoded));
15852
15853        let response = self
15854            .sign_and_dispatch(request, GetPullRequestOverrideStateError::from_response)
15855            .await?;
15856        let mut response = response;
15857        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15858        proto::json::ResponsePayload::new(&response)
15859            .deserialize::<GetPullRequestOverrideStateOutput, _>()
15860    }
15861
15862    /// <p><p>Returns information about a repository.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
15863    async fn get_repository(
15864        &self,
15865        input: GetRepositoryInput,
15866    ) -> Result<GetRepositoryOutput, RusotoError<GetRepositoryError>> {
15867        let mut request = self.new_signed_request("POST", "/");
15868        request.add_header("x-amz-target", "CodeCommit_20150413.GetRepository");
15869        let encoded = serde_json::to_string(&input).unwrap();
15870        request.set_payload(Some(encoded));
15871
15872        let response = self
15873            .sign_and_dispatch(request, GetRepositoryError::from_response)
15874            .await?;
15875        let mut response = response;
15876        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15877        proto::json::ResponsePayload::new(&response).deserialize::<GetRepositoryOutput, _>()
15878    }
15879
15880    /// <p>Gets information about triggers configured for a repository.</p>
15881    async fn get_repository_triggers(
15882        &self,
15883        input: GetRepositoryTriggersInput,
15884    ) -> Result<GetRepositoryTriggersOutput, RusotoError<GetRepositoryTriggersError>> {
15885        let mut request = self.new_signed_request("POST", "/");
15886        request.add_header("x-amz-target", "CodeCommit_20150413.GetRepositoryTriggers");
15887        let encoded = serde_json::to_string(&input).unwrap();
15888        request.set_payload(Some(encoded));
15889
15890        let response = self
15891            .sign_and_dispatch(request, GetRepositoryTriggersError::from_response)
15892            .await?;
15893        let mut response = response;
15894        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15895        proto::json::ResponsePayload::new(&response).deserialize::<GetRepositoryTriggersOutput, _>()
15896    }
15897
15898    /// <p>Lists all approval rule templates in the specified AWS Region in your AWS account. If an AWS Region is not specified, the AWS Region where you are signed in is used.</p>
15899    async fn list_approval_rule_templates(
15900        &self,
15901        input: ListApprovalRuleTemplatesInput,
15902    ) -> Result<ListApprovalRuleTemplatesOutput, RusotoError<ListApprovalRuleTemplatesError>> {
15903        let mut request = self.new_signed_request("POST", "/");
15904        request.add_header(
15905            "x-amz-target",
15906            "CodeCommit_20150413.ListApprovalRuleTemplates",
15907        );
15908        let encoded = serde_json::to_string(&input).unwrap();
15909        request.set_payload(Some(encoded));
15910
15911        let response = self
15912            .sign_and_dispatch(request, ListApprovalRuleTemplatesError::from_response)
15913            .await?;
15914        let mut response = response;
15915        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15916        proto::json::ResponsePayload::new(&response)
15917            .deserialize::<ListApprovalRuleTemplatesOutput, _>()
15918    }
15919
15920    /// <p>Lists all approval rule templates that are associated with a specified repository.</p>
15921    async fn list_associated_approval_rule_templates_for_repository(
15922        &self,
15923        input: ListAssociatedApprovalRuleTemplatesForRepositoryInput,
15924    ) -> Result<
15925        ListAssociatedApprovalRuleTemplatesForRepositoryOutput,
15926        RusotoError<ListAssociatedApprovalRuleTemplatesForRepositoryError>,
15927    > {
15928        let mut request = self.new_signed_request("POST", "/");
15929        request.add_header(
15930            "x-amz-target",
15931            "CodeCommit_20150413.ListAssociatedApprovalRuleTemplatesForRepository",
15932        );
15933        let encoded = serde_json::to_string(&input).unwrap();
15934        request.set_payload(Some(encoded));
15935
15936        let response = self
15937            .sign_and_dispatch(
15938                request,
15939                ListAssociatedApprovalRuleTemplatesForRepositoryError::from_response,
15940            )
15941            .await?;
15942        let mut response = response;
15943        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15944        proto::json::ResponsePayload::new(&response)
15945            .deserialize::<ListAssociatedApprovalRuleTemplatesForRepositoryOutput, _>()
15946    }
15947
15948    /// <p>Gets information about one or more branches in a repository.</p>
15949    async fn list_branches(
15950        &self,
15951        input: ListBranchesInput,
15952    ) -> Result<ListBranchesOutput, RusotoError<ListBranchesError>> {
15953        let mut request = self.new_signed_request("POST", "/");
15954        request.add_header("x-amz-target", "CodeCommit_20150413.ListBranches");
15955        let encoded = serde_json::to_string(&input).unwrap();
15956        request.set_payload(Some(encoded));
15957
15958        let response = self
15959            .sign_and_dispatch(request, ListBranchesError::from_response)
15960            .await?;
15961        let mut response = response;
15962        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15963        proto::json::ResponsePayload::new(&response).deserialize::<ListBranchesOutput, _>()
15964    }
15965
15966    /// <p>Returns a list of pull requests for a specified repository. The return list can be refined by pull request status or pull request author ARN.</p>
15967    async fn list_pull_requests(
15968        &self,
15969        input: ListPullRequestsInput,
15970    ) -> Result<ListPullRequestsOutput, RusotoError<ListPullRequestsError>> {
15971        let mut request = self.new_signed_request("POST", "/");
15972        request.add_header("x-amz-target", "CodeCommit_20150413.ListPullRequests");
15973        let encoded = serde_json::to_string(&input).unwrap();
15974        request.set_payload(Some(encoded));
15975
15976        let response = self
15977            .sign_and_dispatch(request, ListPullRequestsError::from_response)
15978            .await?;
15979        let mut response = response;
15980        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15981        proto::json::ResponsePayload::new(&response).deserialize::<ListPullRequestsOutput, _>()
15982    }
15983
15984    /// <p>Gets information about one or more repositories.</p>
15985    async fn list_repositories(
15986        &self,
15987        input: ListRepositoriesInput,
15988    ) -> Result<ListRepositoriesOutput, RusotoError<ListRepositoriesError>> {
15989        let mut request = self.new_signed_request("POST", "/");
15990        request.add_header("x-amz-target", "CodeCommit_20150413.ListRepositories");
15991        let encoded = serde_json::to_string(&input).unwrap();
15992        request.set_payload(Some(encoded));
15993
15994        let response = self
15995            .sign_and_dispatch(request, ListRepositoriesError::from_response)
15996            .await?;
15997        let mut response = response;
15998        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
15999        proto::json::ResponsePayload::new(&response).deserialize::<ListRepositoriesOutput, _>()
16000    }
16001
16002    /// <p>Lists all repositories associated with the specified approval rule template.</p>
16003    async fn list_repositories_for_approval_rule_template(
16004        &self,
16005        input: ListRepositoriesForApprovalRuleTemplateInput,
16006    ) -> Result<
16007        ListRepositoriesForApprovalRuleTemplateOutput,
16008        RusotoError<ListRepositoriesForApprovalRuleTemplateError>,
16009    > {
16010        let mut request = self.new_signed_request("POST", "/");
16011        request.add_header(
16012            "x-amz-target",
16013            "CodeCommit_20150413.ListRepositoriesForApprovalRuleTemplate",
16014        );
16015        let encoded = serde_json::to_string(&input).unwrap();
16016        request.set_payload(Some(encoded));
16017
16018        let response = self
16019            .sign_and_dispatch(
16020                request,
16021                ListRepositoriesForApprovalRuleTemplateError::from_response,
16022            )
16023            .await?;
16024        let mut response = response;
16025        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16026        proto::json::ResponsePayload::new(&response)
16027            .deserialize::<ListRepositoriesForApprovalRuleTemplateOutput, _>()
16028    }
16029
16030    /// <p>Gets information about AWS tags for a specified Amazon Resource Name (ARN) in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the<i> AWS CodeCommit User Guide</i>.</p>
16031    async fn list_tags_for_resource(
16032        &self,
16033        input: ListTagsForResourceInput,
16034    ) -> Result<ListTagsForResourceOutput, RusotoError<ListTagsForResourceError>> {
16035        let mut request = self.new_signed_request("POST", "/");
16036        request.add_header("x-amz-target", "CodeCommit_20150413.ListTagsForResource");
16037        let encoded = serde_json::to_string(&input).unwrap();
16038        request.set_payload(Some(encoded));
16039
16040        let response = self
16041            .sign_and_dispatch(request, ListTagsForResourceError::from_response)
16042            .await?;
16043        let mut response = response;
16044        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16045        proto::json::ResponsePayload::new(&response).deserialize::<ListTagsForResourceOutput, _>()
16046    }
16047
16048    /// <p>Merges two branches using the fast-forward merge strategy.</p>
16049    async fn merge_branches_by_fast_forward(
16050        &self,
16051        input: MergeBranchesByFastForwardInput,
16052    ) -> Result<MergeBranchesByFastForwardOutput, RusotoError<MergeBranchesByFastForwardError>>
16053    {
16054        let mut request = self.new_signed_request("POST", "/");
16055        request.add_header(
16056            "x-amz-target",
16057            "CodeCommit_20150413.MergeBranchesByFastForward",
16058        );
16059        let encoded = serde_json::to_string(&input).unwrap();
16060        request.set_payload(Some(encoded));
16061
16062        let response = self
16063            .sign_and_dispatch(request, MergeBranchesByFastForwardError::from_response)
16064            .await?;
16065        let mut response = response;
16066        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16067        proto::json::ResponsePayload::new(&response)
16068            .deserialize::<MergeBranchesByFastForwardOutput, _>()
16069    }
16070
16071    /// <p>Merges two branches using the squash merge strategy.</p>
16072    async fn merge_branches_by_squash(
16073        &self,
16074        input: MergeBranchesBySquashInput,
16075    ) -> Result<MergeBranchesBySquashOutput, RusotoError<MergeBranchesBySquashError>> {
16076        let mut request = self.new_signed_request("POST", "/");
16077        request.add_header("x-amz-target", "CodeCommit_20150413.MergeBranchesBySquash");
16078        let encoded = serde_json::to_string(&input).unwrap();
16079        request.set_payload(Some(encoded));
16080
16081        let response = self
16082            .sign_and_dispatch(request, MergeBranchesBySquashError::from_response)
16083            .await?;
16084        let mut response = response;
16085        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16086        proto::json::ResponsePayload::new(&response).deserialize::<MergeBranchesBySquashOutput, _>()
16087    }
16088
16089    /// <p>Merges two specified branches using the three-way merge strategy.</p>
16090    async fn merge_branches_by_three_way(
16091        &self,
16092        input: MergeBranchesByThreeWayInput,
16093    ) -> Result<MergeBranchesByThreeWayOutput, RusotoError<MergeBranchesByThreeWayError>> {
16094        let mut request = self.new_signed_request("POST", "/");
16095        request.add_header(
16096            "x-amz-target",
16097            "CodeCommit_20150413.MergeBranchesByThreeWay",
16098        );
16099        let encoded = serde_json::to_string(&input).unwrap();
16100        request.set_payload(Some(encoded));
16101
16102        let response = self
16103            .sign_and_dispatch(request, MergeBranchesByThreeWayError::from_response)
16104            .await?;
16105        let mut response = response;
16106        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16107        proto::json::ResponsePayload::new(&response)
16108            .deserialize::<MergeBranchesByThreeWayOutput, _>()
16109    }
16110
16111    /// <p>Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the fast-forward merge strategy. If the merge is successful, it closes the pull request.</p>
16112    async fn merge_pull_request_by_fast_forward(
16113        &self,
16114        input: MergePullRequestByFastForwardInput,
16115    ) -> Result<MergePullRequestByFastForwardOutput, RusotoError<MergePullRequestByFastForwardError>>
16116    {
16117        let mut request = self.new_signed_request("POST", "/");
16118        request.add_header(
16119            "x-amz-target",
16120            "CodeCommit_20150413.MergePullRequestByFastForward",
16121        );
16122        let encoded = serde_json::to_string(&input).unwrap();
16123        request.set_payload(Some(encoded));
16124
16125        let response = self
16126            .sign_and_dispatch(request, MergePullRequestByFastForwardError::from_response)
16127            .await?;
16128        let mut response = response;
16129        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16130        proto::json::ResponsePayload::new(&response)
16131            .deserialize::<MergePullRequestByFastForwardOutput, _>()
16132    }
16133
16134    /// <p>Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the squash merge strategy. If the merge is successful, it closes the pull request.</p>
16135    async fn merge_pull_request_by_squash(
16136        &self,
16137        input: MergePullRequestBySquashInput,
16138    ) -> Result<MergePullRequestBySquashOutput, RusotoError<MergePullRequestBySquashError>> {
16139        let mut request = self.new_signed_request("POST", "/");
16140        request.add_header(
16141            "x-amz-target",
16142            "CodeCommit_20150413.MergePullRequestBySquash",
16143        );
16144        let encoded = serde_json::to_string(&input).unwrap();
16145        request.set_payload(Some(encoded));
16146
16147        let response = self
16148            .sign_and_dispatch(request, MergePullRequestBySquashError::from_response)
16149            .await?;
16150        let mut response = response;
16151        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16152        proto::json::ResponsePayload::new(&response)
16153            .deserialize::<MergePullRequestBySquashOutput, _>()
16154    }
16155
16156    /// <p>Attempts to merge the source commit of a pull request into the specified destination branch for that pull request at the specified commit using the three-way merge strategy. If the merge is successful, it closes the pull request.</p>
16157    async fn merge_pull_request_by_three_way(
16158        &self,
16159        input: MergePullRequestByThreeWayInput,
16160    ) -> Result<MergePullRequestByThreeWayOutput, RusotoError<MergePullRequestByThreeWayError>>
16161    {
16162        let mut request = self.new_signed_request("POST", "/");
16163        request.add_header(
16164            "x-amz-target",
16165            "CodeCommit_20150413.MergePullRequestByThreeWay",
16166        );
16167        let encoded = serde_json::to_string(&input).unwrap();
16168        request.set_payload(Some(encoded));
16169
16170        let response = self
16171            .sign_and_dispatch(request, MergePullRequestByThreeWayError::from_response)
16172            .await?;
16173        let mut response = response;
16174        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16175        proto::json::ResponsePayload::new(&response)
16176            .deserialize::<MergePullRequestByThreeWayOutput, _>()
16177    }
16178
16179    /// <p>Sets aside (overrides) all approval rule requirements for a specified pull request.</p>
16180    async fn override_pull_request_approval_rules(
16181        &self,
16182        input: OverridePullRequestApprovalRulesInput,
16183    ) -> Result<(), RusotoError<OverridePullRequestApprovalRulesError>> {
16184        let mut request = self.new_signed_request("POST", "/");
16185        request.add_header(
16186            "x-amz-target",
16187            "CodeCommit_20150413.OverridePullRequestApprovalRules",
16188        );
16189        let encoded = serde_json::to_string(&input).unwrap();
16190        request.set_payload(Some(encoded));
16191
16192        let response = self
16193            .sign_and_dispatch(
16194                request,
16195                OverridePullRequestApprovalRulesError::from_response,
16196            )
16197            .await?;
16198        std::mem::drop(response);
16199        Ok(())
16200    }
16201
16202    /// <p>Posts a comment on the comparison between two commits.</p>
16203    async fn post_comment_for_compared_commit(
16204        &self,
16205        input: PostCommentForComparedCommitInput,
16206    ) -> Result<PostCommentForComparedCommitOutput, RusotoError<PostCommentForComparedCommitError>>
16207    {
16208        let mut request = self.new_signed_request("POST", "/");
16209        request.add_header(
16210            "x-amz-target",
16211            "CodeCommit_20150413.PostCommentForComparedCommit",
16212        );
16213        let encoded = serde_json::to_string(&input).unwrap();
16214        request.set_payload(Some(encoded));
16215
16216        let response = self
16217            .sign_and_dispatch(request, PostCommentForComparedCommitError::from_response)
16218            .await?;
16219        let mut response = response;
16220        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16221        proto::json::ResponsePayload::new(&response)
16222            .deserialize::<PostCommentForComparedCommitOutput, _>()
16223    }
16224
16225    /// <p>Posts a comment on a pull request.</p>
16226    async fn post_comment_for_pull_request(
16227        &self,
16228        input: PostCommentForPullRequestInput,
16229    ) -> Result<PostCommentForPullRequestOutput, RusotoError<PostCommentForPullRequestError>> {
16230        let mut request = self.new_signed_request("POST", "/");
16231        request.add_header(
16232            "x-amz-target",
16233            "CodeCommit_20150413.PostCommentForPullRequest",
16234        );
16235        let encoded = serde_json::to_string(&input).unwrap();
16236        request.set_payload(Some(encoded));
16237
16238        let response = self
16239            .sign_and_dispatch(request, PostCommentForPullRequestError::from_response)
16240            .await?;
16241        let mut response = response;
16242        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16243        proto::json::ResponsePayload::new(&response)
16244            .deserialize::<PostCommentForPullRequestOutput, _>()
16245    }
16246
16247    /// <p>Posts a comment in reply to an existing comment on a comparison between commits or a pull request.</p>
16248    async fn post_comment_reply(
16249        &self,
16250        input: PostCommentReplyInput,
16251    ) -> Result<PostCommentReplyOutput, RusotoError<PostCommentReplyError>> {
16252        let mut request = self.new_signed_request("POST", "/");
16253        request.add_header("x-amz-target", "CodeCommit_20150413.PostCommentReply");
16254        let encoded = serde_json::to_string(&input).unwrap();
16255        request.set_payload(Some(encoded));
16256
16257        let response = self
16258            .sign_and_dispatch(request, PostCommentReplyError::from_response)
16259            .await?;
16260        let mut response = response;
16261        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16262        proto::json::ResponsePayload::new(&response).deserialize::<PostCommentReplyOutput, _>()
16263    }
16264
16265    /// <p>Adds or updates a reaction to a specified comment for the user whose identity is used to make the request. You can only add or update a reaction for yourself. You cannot add, modify, or delete a reaction for another user.</p>
16266    async fn put_comment_reaction(
16267        &self,
16268        input: PutCommentReactionInput,
16269    ) -> Result<(), RusotoError<PutCommentReactionError>> {
16270        let mut request = self.new_signed_request("POST", "/");
16271        request.add_header("x-amz-target", "CodeCommit_20150413.PutCommentReaction");
16272        let encoded = serde_json::to_string(&input).unwrap();
16273        request.set_payload(Some(encoded));
16274
16275        let response = self
16276            .sign_and_dispatch(request, PutCommentReactionError::from_response)
16277            .await?;
16278        std::mem::drop(response);
16279        Ok(())
16280    }
16281
16282    /// <p>Adds or updates a file in a branch in an AWS CodeCommit repository, and generates a commit for the addition in the specified branch.</p>
16283    async fn put_file(
16284        &self,
16285        input: PutFileInput,
16286    ) -> Result<PutFileOutput, RusotoError<PutFileError>> {
16287        let mut request = self.new_signed_request("POST", "/");
16288        request.add_header("x-amz-target", "CodeCommit_20150413.PutFile");
16289        let encoded = serde_json::to_string(&input).unwrap();
16290        request.set_payload(Some(encoded));
16291
16292        let response = self
16293            .sign_and_dispatch(request, PutFileError::from_response)
16294            .await?;
16295        let mut response = response;
16296        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16297        proto::json::ResponsePayload::new(&response).deserialize::<PutFileOutput, _>()
16298    }
16299
16300    /// <p>Replaces all triggers for a repository. Used to create or delete triggers.</p>
16301    async fn put_repository_triggers(
16302        &self,
16303        input: PutRepositoryTriggersInput,
16304    ) -> Result<PutRepositoryTriggersOutput, RusotoError<PutRepositoryTriggersError>> {
16305        let mut request = self.new_signed_request("POST", "/");
16306        request.add_header("x-amz-target", "CodeCommit_20150413.PutRepositoryTriggers");
16307        let encoded = serde_json::to_string(&input).unwrap();
16308        request.set_payload(Some(encoded));
16309
16310        let response = self
16311            .sign_and_dispatch(request, PutRepositoryTriggersError::from_response)
16312            .await?;
16313        let mut response = response;
16314        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16315        proto::json::ResponsePayload::new(&response).deserialize::<PutRepositoryTriggersOutput, _>()
16316    }
16317
16318    /// <p>Adds or updates tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the <i>AWS CodeCommit User Guide</i>.</p>
16319    async fn tag_resource(
16320        &self,
16321        input: TagResourceInput,
16322    ) -> Result<(), RusotoError<TagResourceError>> {
16323        let mut request = self.new_signed_request("POST", "/");
16324        request.add_header("x-amz-target", "CodeCommit_20150413.TagResource");
16325        let encoded = serde_json::to_string(&input).unwrap();
16326        request.set_payload(Some(encoded));
16327
16328        let response = self
16329            .sign_and_dispatch(request, TagResourceError::from_response)
16330            .await?;
16331        std::mem::drop(response);
16332        Ok(())
16333    }
16334
16335    /// <p>Tests the functionality of repository triggers by sending information to the trigger target. If real data is available in the repository, the test sends data from the last commit. If no data is available, sample data is generated.</p>
16336    async fn test_repository_triggers(
16337        &self,
16338        input: TestRepositoryTriggersInput,
16339    ) -> Result<TestRepositoryTriggersOutput, RusotoError<TestRepositoryTriggersError>> {
16340        let mut request = self.new_signed_request("POST", "/");
16341        request.add_header("x-amz-target", "CodeCommit_20150413.TestRepositoryTriggers");
16342        let encoded = serde_json::to_string(&input).unwrap();
16343        request.set_payload(Some(encoded));
16344
16345        let response = self
16346            .sign_and_dispatch(request, TestRepositoryTriggersError::from_response)
16347            .await?;
16348        let mut response = response;
16349        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16350        proto::json::ResponsePayload::new(&response)
16351            .deserialize::<TestRepositoryTriggersOutput, _>()
16352    }
16353
16354    /// <p>Removes tags for a resource in AWS CodeCommit. For a list of valid resources in AWS CodeCommit, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-iam-access-control-identity-based.html#arn-formats">CodeCommit Resources and Operations</a> in the <i>AWS CodeCommit User Guide</i>.</p>
16355    async fn untag_resource(
16356        &self,
16357        input: UntagResourceInput,
16358    ) -> Result<(), RusotoError<UntagResourceError>> {
16359        let mut request = self.new_signed_request("POST", "/");
16360        request.add_header("x-amz-target", "CodeCommit_20150413.UntagResource");
16361        let encoded = serde_json::to_string(&input).unwrap();
16362        request.set_payload(Some(encoded));
16363
16364        let response = self
16365            .sign_and_dispatch(request, UntagResourceError::from_response)
16366            .await?;
16367        std::mem::drop(response);
16368        Ok(())
16369    }
16370
16371    /// <p>Updates the content of an approval rule template. You can change the number of required approvals, the membership of the approval rule, and whether an approval pool is defined.</p>
16372    async fn update_approval_rule_template_content(
16373        &self,
16374        input: UpdateApprovalRuleTemplateContentInput,
16375    ) -> Result<
16376        UpdateApprovalRuleTemplateContentOutput,
16377        RusotoError<UpdateApprovalRuleTemplateContentError>,
16378    > {
16379        let mut request = self.new_signed_request("POST", "/");
16380        request.add_header(
16381            "x-amz-target",
16382            "CodeCommit_20150413.UpdateApprovalRuleTemplateContent",
16383        );
16384        let encoded = serde_json::to_string(&input).unwrap();
16385        request.set_payload(Some(encoded));
16386
16387        let response = self
16388            .sign_and_dispatch(
16389                request,
16390                UpdateApprovalRuleTemplateContentError::from_response,
16391            )
16392            .await?;
16393        let mut response = response;
16394        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16395        proto::json::ResponsePayload::new(&response)
16396            .deserialize::<UpdateApprovalRuleTemplateContentOutput, _>()
16397    }
16398
16399    /// <p>Updates the description for a specified approval rule template.</p>
16400    async fn update_approval_rule_template_description(
16401        &self,
16402        input: UpdateApprovalRuleTemplateDescriptionInput,
16403    ) -> Result<
16404        UpdateApprovalRuleTemplateDescriptionOutput,
16405        RusotoError<UpdateApprovalRuleTemplateDescriptionError>,
16406    > {
16407        let mut request = self.new_signed_request("POST", "/");
16408        request.add_header(
16409            "x-amz-target",
16410            "CodeCommit_20150413.UpdateApprovalRuleTemplateDescription",
16411        );
16412        let encoded = serde_json::to_string(&input).unwrap();
16413        request.set_payload(Some(encoded));
16414
16415        let response = self
16416            .sign_and_dispatch(
16417                request,
16418                UpdateApprovalRuleTemplateDescriptionError::from_response,
16419            )
16420            .await?;
16421        let mut response = response;
16422        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16423        proto::json::ResponsePayload::new(&response)
16424            .deserialize::<UpdateApprovalRuleTemplateDescriptionOutput, _>()
16425    }
16426
16427    /// <p>Updates the name of a specified approval rule template.</p>
16428    async fn update_approval_rule_template_name(
16429        &self,
16430        input: UpdateApprovalRuleTemplateNameInput,
16431    ) -> Result<
16432        UpdateApprovalRuleTemplateNameOutput,
16433        RusotoError<UpdateApprovalRuleTemplateNameError>,
16434    > {
16435        let mut request = self.new_signed_request("POST", "/");
16436        request.add_header(
16437            "x-amz-target",
16438            "CodeCommit_20150413.UpdateApprovalRuleTemplateName",
16439        );
16440        let encoded = serde_json::to_string(&input).unwrap();
16441        request.set_payload(Some(encoded));
16442
16443        let response = self
16444            .sign_and_dispatch(request, UpdateApprovalRuleTemplateNameError::from_response)
16445            .await?;
16446        let mut response = response;
16447        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16448        proto::json::ResponsePayload::new(&response)
16449            .deserialize::<UpdateApprovalRuleTemplateNameOutput, _>()
16450    }
16451
16452    /// <p>Replaces the contents of a comment.</p>
16453    async fn update_comment(
16454        &self,
16455        input: UpdateCommentInput,
16456    ) -> Result<UpdateCommentOutput, RusotoError<UpdateCommentError>> {
16457        let mut request = self.new_signed_request("POST", "/");
16458        request.add_header("x-amz-target", "CodeCommit_20150413.UpdateComment");
16459        let encoded = serde_json::to_string(&input).unwrap();
16460        request.set_payload(Some(encoded));
16461
16462        let response = self
16463            .sign_and_dispatch(request, UpdateCommentError::from_response)
16464            .await?;
16465        let mut response = response;
16466        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16467        proto::json::ResponsePayload::new(&response).deserialize::<UpdateCommentOutput, _>()
16468    }
16469
16470    /// <p><p>Sets or changes the default branch name for the specified repository.</p> <note> <p>If you use this operation to change the default branch name to the current default branch name, a success message is returned even though the default branch did not change.</p> </note></p>
16471    async fn update_default_branch(
16472        &self,
16473        input: UpdateDefaultBranchInput,
16474    ) -> Result<(), RusotoError<UpdateDefaultBranchError>> {
16475        let mut request = self.new_signed_request("POST", "/");
16476        request.add_header("x-amz-target", "CodeCommit_20150413.UpdateDefaultBranch");
16477        let encoded = serde_json::to_string(&input).unwrap();
16478        request.set_payload(Some(encoded));
16479
16480        let response = self
16481            .sign_and_dispatch(request, UpdateDefaultBranchError::from_response)
16482            .await?;
16483        std::mem::drop(response);
16484        Ok(())
16485    }
16486
16487    /// <p>Updates the structure of an approval rule created specifically for a pull request. For example, you can change the number of required approvers and the approval pool for approvers. </p>
16488    async fn update_pull_request_approval_rule_content(
16489        &self,
16490        input: UpdatePullRequestApprovalRuleContentInput,
16491    ) -> Result<
16492        UpdatePullRequestApprovalRuleContentOutput,
16493        RusotoError<UpdatePullRequestApprovalRuleContentError>,
16494    > {
16495        let mut request = self.new_signed_request("POST", "/");
16496        request.add_header(
16497            "x-amz-target",
16498            "CodeCommit_20150413.UpdatePullRequestApprovalRuleContent",
16499        );
16500        let encoded = serde_json::to_string(&input).unwrap();
16501        request.set_payload(Some(encoded));
16502
16503        let response = self
16504            .sign_and_dispatch(
16505                request,
16506                UpdatePullRequestApprovalRuleContentError::from_response,
16507            )
16508            .await?;
16509        let mut response = response;
16510        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16511        proto::json::ResponsePayload::new(&response)
16512            .deserialize::<UpdatePullRequestApprovalRuleContentOutput, _>()
16513    }
16514
16515    /// <p>Updates the state of a user's approval on a pull request. The user is derived from the signed-in account when the request is made.</p>
16516    async fn update_pull_request_approval_state(
16517        &self,
16518        input: UpdatePullRequestApprovalStateInput,
16519    ) -> Result<(), RusotoError<UpdatePullRequestApprovalStateError>> {
16520        let mut request = self.new_signed_request("POST", "/");
16521        request.add_header(
16522            "x-amz-target",
16523            "CodeCommit_20150413.UpdatePullRequestApprovalState",
16524        );
16525        let encoded = serde_json::to_string(&input).unwrap();
16526        request.set_payload(Some(encoded));
16527
16528        let response = self
16529            .sign_and_dispatch(request, UpdatePullRequestApprovalStateError::from_response)
16530            .await?;
16531        std::mem::drop(response);
16532        Ok(())
16533    }
16534
16535    /// <p>Replaces the contents of the description of a pull request.</p>
16536    async fn update_pull_request_description(
16537        &self,
16538        input: UpdatePullRequestDescriptionInput,
16539    ) -> Result<UpdatePullRequestDescriptionOutput, RusotoError<UpdatePullRequestDescriptionError>>
16540    {
16541        let mut request = self.new_signed_request("POST", "/");
16542        request.add_header(
16543            "x-amz-target",
16544            "CodeCommit_20150413.UpdatePullRequestDescription",
16545        );
16546        let encoded = serde_json::to_string(&input).unwrap();
16547        request.set_payload(Some(encoded));
16548
16549        let response = self
16550            .sign_and_dispatch(request, UpdatePullRequestDescriptionError::from_response)
16551            .await?;
16552        let mut response = response;
16553        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16554        proto::json::ResponsePayload::new(&response)
16555            .deserialize::<UpdatePullRequestDescriptionOutput, _>()
16556    }
16557
16558    /// <p>Updates the status of a pull request. </p>
16559    async fn update_pull_request_status(
16560        &self,
16561        input: UpdatePullRequestStatusInput,
16562    ) -> Result<UpdatePullRequestStatusOutput, RusotoError<UpdatePullRequestStatusError>> {
16563        let mut request = self.new_signed_request("POST", "/");
16564        request.add_header(
16565            "x-amz-target",
16566            "CodeCommit_20150413.UpdatePullRequestStatus",
16567        );
16568        let encoded = serde_json::to_string(&input).unwrap();
16569        request.set_payload(Some(encoded));
16570
16571        let response = self
16572            .sign_and_dispatch(request, UpdatePullRequestStatusError::from_response)
16573            .await?;
16574        let mut response = response;
16575        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16576        proto::json::ResponsePayload::new(&response)
16577            .deserialize::<UpdatePullRequestStatusOutput, _>()
16578    }
16579
16580    /// <p>Replaces the title of a pull request.</p>
16581    async fn update_pull_request_title(
16582        &self,
16583        input: UpdatePullRequestTitleInput,
16584    ) -> Result<UpdatePullRequestTitleOutput, RusotoError<UpdatePullRequestTitleError>> {
16585        let mut request = self.new_signed_request("POST", "/");
16586        request.add_header("x-amz-target", "CodeCommit_20150413.UpdatePullRequestTitle");
16587        let encoded = serde_json::to_string(&input).unwrap();
16588        request.set_payload(Some(encoded));
16589
16590        let response = self
16591            .sign_and_dispatch(request, UpdatePullRequestTitleError::from_response)
16592            .await?;
16593        let mut response = response;
16594        let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
16595        proto::json::ResponsePayload::new(&response)
16596            .deserialize::<UpdatePullRequestTitleOutput, _>()
16597    }
16598
16599    /// <p><p>Sets or changes the comment or description for a repository.</p> <note> <p>The description field for a repository accepts all HTML characters and all valid Unicode characters. Applications that do not HTML-encode the description and display it in a webpage can expose users to potentially malicious code. Make sure that you HTML-encode the description field in any application that uses this API to display the repository description on a webpage.</p> </note></p>
16600    async fn update_repository_description(
16601        &self,
16602        input: UpdateRepositoryDescriptionInput,
16603    ) -> Result<(), RusotoError<UpdateRepositoryDescriptionError>> {
16604        let mut request = self.new_signed_request("POST", "/");
16605        request.add_header(
16606            "x-amz-target",
16607            "CodeCommit_20150413.UpdateRepositoryDescription",
16608        );
16609        let encoded = serde_json::to_string(&input).unwrap();
16610        request.set_payload(Some(encoded));
16611
16612        let response = self
16613            .sign_and_dispatch(request, UpdateRepositoryDescriptionError::from_response)
16614            .await?;
16615        std::mem::drop(response);
16616        Ok(())
16617    }
16618
16619    /// <p>Renames a repository. The repository name must be unique across the calling AWS account. Repository names are limited to 100 alphanumeric, dash, and underscore characters, and cannot include certain characters. The suffix .git is prohibited. For more information about the limits on repository names, see <a href="https://docs.aws.amazon.com/codecommit/latest/userguide/limits.html">Limits</a> in the AWS CodeCommit User Guide.</p>
16620    async fn update_repository_name(
16621        &self,
16622        input: UpdateRepositoryNameInput,
16623    ) -> Result<(), RusotoError<UpdateRepositoryNameError>> {
16624        let mut request = self.new_signed_request("POST", "/");
16625        request.add_header("x-amz-target", "CodeCommit_20150413.UpdateRepositoryName");
16626        let encoded = serde_json::to_string(&input).unwrap();
16627        request.set_payload(Some(encoded));
16628
16629        let response = self
16630            .sign_and_dispatch(request, UpdateRepositoryNameError::from_response)
16631            .await?;
16632        std::mem::drop(response);
16633        Ok(())
16634    }
16635}