use std::error::Error;
use std::fmt;
use async_trait::async_trait;
use rusoto_core::credential::ProvideAwsCredentials;
use rusoto_core::region;
use rusoto_core::request::{BufferedHttpResponse, DispatchSignedRequest};
use rusoto_core::{Client, RusotoError};
use rusoto_core::proto;
use rusoto_core::signature::SignedRequest;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
use serde_json;
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Attribute {
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct AuthorizationData {
#[serde(rename = "authorizationToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub authorization_token: Option<String>,
#[serde(rename = "expiresAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_at: Option<f64>,
#[serde(rename = "proxyEndpoint")]
#[serde(skip_serializing_if = "Option::is_none")]
pub proxy_endpoint: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct BatchCheckLayerAvailabilityRequest {
#[serde(rename = "layerDigests")]
pub layer_digests: Vec<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct BatchCheckLayerAvailabilityResponse {
#[serde(rename = "failures")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failures: Option<Vec<LayerFailure>>,
#[serde(rename = "layers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layers: Option<Vec<Layer>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct BatchDeleteImageRequest {
#[serde(rename = "imageIds")]
pub image_ids: Vec<ImageIdentifier>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct BatchDeleteImageResponse {
#[serde(rename = "failures")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failures: Option<Vec<ImageFailure>>,
#[serde(rename = "imageIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_ids: Option<Vec<ImageIdentifier>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct BatchGetImageRequest {
#[serde(rename = "acceptedMediaTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub accepted_media_types: Option<Vec<String>>,
#[serde(rename = "imageIds")]
pub image_ids: Vec<ImageIdentifier>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct BatchGetImageResponse {
#[serde(rename = "failures")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failures: Option<Vec<ImageFailure>>,
#[serde(rename = "images")]
#[serde(skip_serializing_if = "Option::is_none")]
pub images: Option<Vec<Image>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CompleteLayerUploadRequest {
#[serde(rename = "layerDigests")]
pub layer_digests: Vec<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
#[serde(rename = "uploadId")]
pub upload_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CompleteLayerUploadResponse {
#[serde(rename = "layerDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layer_digest: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
#[serde(rename = "uploadId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub upload_id: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CreateRepositoryRequest {
#[serde(rename = "imageScanningConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scanning_configuration: Option<ImageScanningConfiguration>,
#[serde(rename = "imageTagMutability")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tag_mutability: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct CreateRepositoryResponse {
#[serde(rename = "repository")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository: Option<Repository>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteLifecyclePolicyRequest {
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteLifecyclePolicyResponse {
#[serde(rename = "lastEvaluatedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_evaluated_at: Option<f64>,
#[serde(rename = "lifecyclePolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lifecycle_policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteRepositoryPolicyRequest {
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteRepositoryPolicyResponse {
#[serde(rename = "policyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DeleteRepositoryRequest {
#[serde(rename = "force")]
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<bool>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DeleteRepositoryResponse {
#[serde(rename = "repository")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository: Option<Repository>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeImageScanFindingsRequest {
#[serde(rename = "imageId")]
pub image_id: ImageIdentifier,
#[serde(rename = "maxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeImageScanFindingsResponse {
#[serde(rename = "imageId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_id: Option<ImageIdentifier>,
#[serde(rename = "imageScanFindings")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_findings: Option<ImageScanFindings>,
#[serde(rename = "imageScanStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_status: Option<ImageScanStatus>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeImagesFilter {
#[serde(rename = "tagStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeImagesRequest {
#[serde(rename = "filter")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<DescribeImagesFilter>,
#[serde(rename = "imageIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_ids: Option<Vec<ImageIdentifier>>,
#[serde(rename = "maxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeImagesResponse {
#[serde(rename = "imageDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_details: Option<Vec<ImageDetail>>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeRepositoriesRequest {
#[serde(rename = "maxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeRepositoriesResponse {
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "repositories")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repositories: Option<Vec<Repository>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetAuthorizationTokenRequest {
#[serde(rename = "registryIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_ids: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetAuthorizationTokenResponse {
#[serde(rename = "authorizationData")]
#[serde(skip_serializing_if = "Option::is_none")]
pub authorization_data: Option<Vec<AuthorizationData>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetDownloadUrlForLayerRequest {
#[serde(rename = "layerDigest")]
pub layer_digest: String,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetDownloadUrlForLayerResponse {
#[serde(rename = "downloadUrl")]
#[serde(skip_serializing_if = "Option::is_none")]
pub download_url: Option<String>,
#[serde(rename = "layerDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layer_digest: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetLifecyclePolicyPreviewRequest {
#[serde(rename = "filter")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<LifecyclePolicyPreviewFilter>,
#[serde(rename = "imageIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_ids: Option<Vec<ImageIdentifier>>,
#[serde(rename = "maxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetLifecyclePolicyPreviewResponse {
#[serde(rename = "lifecyclePolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lifecycle_policy_text: Option<String>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "previewResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub preview_results: Option<Vec<LifecyclePolicyPreviewResult>>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "summary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub summary: Option<LifecyclePolicyPreviewSummary>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetLifecyclePolicyRequest {
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetLifecyclePolicyResponse {
#[serde(rename = "lastEvaluatedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_evaluated_at: Option<f64>,
#[serde(rename = "lifecyclePolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lifecycle_policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetRepositoryPolicyRequest {
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetRepositoryPolicyResponse {
#[serde(rename = "policyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Image {
#[serde(rename = "imageId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_id: Option<ImageIdentifier>,
#[serde(rename = "imageManifest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_manifest: Option<String>,
#[serde(rename = "imageManifestMediaType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_manifest_media_type: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ImageDetail {
#[serde(rename = "imageDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_digest: Option<String>,
#[serde(rename = "imagePushedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_pushed_at: Option<f64>,
#[serde(rename = "imageScanFindingsSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_findings_summary: Option<ImageScanFindingsSummary>,
#[serde(rename = "imageScanStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_status: Option<ImageScanStatus>,
#[serde(rename = "imageSizeInBytes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_size_in_bytes: Option<i64>,
#[serde(rename = "imageTags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tags: Option<Vec<String>>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ImageFailure {
#[serde(rename = "failureCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_code: Option<String>,
#[serde(rename = "failureReason")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_reason: Option<String>,
#[serde(rename = "imageId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_id: Option<ImageIdentifier>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ImageIdentifier {
#[serde(rename = "imageDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_digest: Option<String>,
#[serde(rename = "imageTag")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tag: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ImageScanFinding {
#[serde(rename = "attributes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub attributes: Option<Vec<Attribute>>,
#[serde(rename = "description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "severity")]
#[serde(skip_serializing_if = "Option::is_none")]
pub severity: Option<String>,
#[serde(rename = "uri")]
#[serde(skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ImageScanFindings {
#[serde(rename = "findingSeverityCounts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub finding_severity_counts: Option<::std::collections::HashMap<String, i64>>,
#[serde(rename = "findings")]
#[serde(skip_serializing_if = "Option::is_none")]
pub findings: Option<Vec<ImageScanFinding>>,
#[serde(rename = "imageScanCompletedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_completed_at: Option<f64>,
#[serde(rename = "vulnerabilitySourceUpdatedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub vulnerability_source_updated_at: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ImageScanFindingsSummary {
#[serde(rename = "findingSeverityCounts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub finding_severity_counts: Option<::std::collections::HashMap<String, i64>>,
#[serde(rename = "imageScanCompletedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_completed_at: Option<f64>,
#[serde(rename = "vulnerabilitySourceUpdatedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub vulnerability_source_updated_at: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ImageScanStatus {
#[serde(rename = "description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ImageScanningConfiguration {
#[serde(rename = "scanOnPush")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scan_on_push: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct InitiateLayerUploadRequest {
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct InitiateLayerUploadResponse {
#[serde(rename = "partSize")]
#[serde(skip_serializing_if = "Option::is_none")]
pub part_size: Option<i64>,
#[serde(rename = "uploadId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub upload_id: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Layer {
#[serde(rename = "layerAvailability")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layer_availability: Option<String>,
#[serde(rename = "layerDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layer_digest: Option<String>,
#[serde(rename = "layerSize")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layer_size: Option<i64>,
#[serde(rename = "mediaType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct LayerFailure {
#[serde(rename = "failureCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_code: Option<String>,
#[serde(rename = "failureReason")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_reason: Option<String>,
#[serde(rename = "layerDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub layer_digest: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct LifecyclePolicyPreviewFilter {
#[serde(rename = "tagStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct LifecyclePolicyPreviewResult {
#[serde(rename = "action")]
#[serde(skip_serializing_if = "Option::is_none")]
pub action: Option<LifecyclePolicyRuleAction>,
#[serde(rename = "appliedRulePriority")]
#[serde(skip_serializing_if = "Option::is_none")]
pub applied_rule_priority: Option<i64>,
#[serde(rename = "imageDigest")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_digest: Option<String>,
#[serde(rename = "imagePushedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_pushed_at: Option<f64>,
#[serde(rename = "imageTags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tags: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct LifecyclePolicyPreviewSummary {
#[serde(rename = "expiringImageTotalCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub expiring_image_total_count: Option<i64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct LifecyclePolicyRuleAction {
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListImagesFilter {
#[serde(rename = "tagStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListImagesRequest {
#[serde(rename = "filter")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<ListImagesFilter>,
#[serde(rename = "maxResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_results: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListImagesResponse {
#[serde(rename = "imageIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_ids: Option<Vec<ImageIdentifier>>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListTagsForResourceRequest {
#[serde(rename = "resourceArn")]
pub resource_arn: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListTagsForResourceResponse {
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutImageRequest {
#[serde(rename = "imageManifest")]
pub image_manifest: String,
#[serde(rename = "imageManifestMediaType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_manifest_media_type: Option<String>,
#[serde(rename = "imageTag")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tag: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutImageResponse {
#[serde(rename = "image")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image: Option<Image>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutImageScanningConfigurationRequest {
#[serde(rename = "imageScanningConfiguration")]
pub image_scanning_configuration: ImageScanningConfiguration,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutImageScanningConfigurationResponse {
#[serde(rename = "imageScanningConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scanning_configuration: Option<ImageScanningConfiguration>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutImageTagMutabilityRequest {
#[serde(rename = "imageTagMutability")]
pub image_tag_mutability: String,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutImageTagMutabilityResponse {
#[serde(rename = "imageTagMutability")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tag_mutability: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutLifecyclePolicyRequest {
#[serde(rename = "lifecyclePolicyText")]
pub lifecycle_policy_text: String,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutLifecyclePolicyResponse {
#[serde(rename = "lifecyclePolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lifecycle_policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct Repository {
#[serde(rename = "createdAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<f64>,
#[serde(rename = "imageScanningConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scanning_configuration: Option<ImageScanningConfiguration>,
#[serde(rename = "imageTagMutability")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_tag_mutability: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_arn: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
#[serde(rename = "repositoryUri")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_uri: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct SetRepositoryPolicyRequest {
#[serde(rename = "force")]
#[serde(skip_serializing_if = "Option::is_none")]
pub force: Option<bool>,
#[serde(rename = "policyText")]
pub policy_text: String,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SetRepositoryPolicyResponse {
#[serde(rename = "policyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartImageScanRequest {
#[serde(rename = "imageId")]
pub image_id: ImageIdentifier,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartImageScanResponse {
#[serde(rename = "imageId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_id: Option<ImageIdentifier>,
#[serde(rename = "imageScanStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub image_scan_status: Option<ImageScanStatus>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartLifecyclePolicyPreviewRequest {
#[serde(rename = "lifecyclePolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lifecycle_policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartLifecyclePolicyPreviewResponse {
#[serde(rename = "lifecyclePolicyText")]
#[serde(skip_serializing_if = "Option::is_none")]
pub lifecycle_policy_text: Option<String>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Tag {
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct TagResourceRequest {
#[serde(rename = "resourceArn")]
pub resource_arn: String,
#[serde(rename = "tags")]
pub tags: Vec<Tag>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct TagResourceResponse {}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UntagResourceRequest {
#[serde(rename = "resourceArn")]
pub resource_arn: String,
#[serde(rename = "tagKeys")]
pub tag_keys: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UntagResourceResponse {}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct UploadLayerPartRequest {
#[serde(rename = "layerPartBlob")]
#[serde(
deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
default
)]
pub layer_part_blob: bytes::Bytes,
#[serde(rename = "partFirstByte")]
pub part_first_byte: i64,
#[serde(rename = "partLastByte")]
pub part_last_byte: i64,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
pub repository_name: String,
#[serde(rename = "uploadId")]
pub upload_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct UploadLayerPartResponse {
#[serde(rename = "lastByteReceived")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_byte_received: Option<i64>,
#[serde(rename = "registryId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub registry_id: Option<String>,
#[serde(rename = "repositoryName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub repository_name: Option<String>,
#[serde(rename = "uploadId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub upload_id: Option<String>,
}
#[derive(Debug, PartialEq)]
pub enum BatchCheckLayerAvailabilityError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl BatchCheckLayerAvailabilityError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<BatchCheckLayerAvailabilityError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(
BatchCheckLayerAvailabilityError::InvalidParameter(err.msg),
)
}
"RepositoryNotFoundException" => {
return RusotoError::Service(
BatchCheckLayerAvailabilityError::RepositoryNotFound(err.msg),
)
}
"ServerException" => {
return RusotoError::Service(BatchCheckLayerAvailabilityError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for BatchCheckLayerAvailabilityError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
BatchCheckLayerAvailabilityError::InvalidParameter(ref cause) => write!(f, "{}", cause),
BatchCheckLayerAvailabilityError::RepositoryNotFound(ref cause) => {
write!(f, "{}", cause)
}
BatchCheckLayerAvailabilityError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for BatchCheckLayerAvailabilityError {}
#[derive(Debug, PartialEq)]
pub enum BatchDeleteImageError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl BatchDeleteImageError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<BatchDeleteImageError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(BatchDeleteImageError::InvalidParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(BatchDeleteImageError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(BatchDeleteImageError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for BatchDeleteImageError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
BatchDeleteImageError::InvalidParameter(ref cause) => write!(f, "{}", cause),
BatchDeleteImageError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
BatchDeleteImageError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for BatchDeleteImageError {}
#[derive(Debug, PartialEq)]
pub enum BatchGetImageError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl BatchGetImageError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<BatchGetImageError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(BatchGetImageError::InvalidParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(BatchGetImageError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(BatchGetImageError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for BatchGetImageError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
BatchGetImageError::InvalidParameter(ref cause) => write!(f, "{}", cause),
BatchGetImageError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
BatchGetImageError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for BatchGetImageError {}
#[derive(Debug, PartialEq)]
pub enum CompleteLayerUploadError {
EmptyUpload(String),
InvalidLayer(String),
InvalidParameter(String),
LayerAlreadyExists(String),
LayerPartTooSmall(String),
RepositoryNotFound(String),
Server(String),
UploadNotFound(String),
}
impl CompleteLayerUploadError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CompleteLayerUploadError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"EmptyUploadException" => {
return RusotoError::Service(CompleteLayerUploadError::EmptyUpload(err.msg))
}
"InvalidLayerException" => {
return RusotoError::Service(CompleteLayerUploadError::InvalidLayer(err.msg))
}
"InvalidParameterException" => {
return RusotoError::Service(CompleteLayerUploadError::InvalidParameter(
err.msg,
))
}
"LayerAlreadyExistsException" => {
return RusotoError::Service(CompleteLayerUploadError::LayerAlreadyExists(
err.msg,
))
}
"LayerPartTooSmallException" => {
return RusotoError::Service(CompleteLayerUploadError::LayerPartTooSmall(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(CompleteLayerUploadError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(CompleteLayerUploadError::Server(err.msg))
}
"UploadNotFoundException" => {
return RusotoError::Service(CompleteLayerUploadError::UploadNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CompleteLayerUploadError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CompleteLayerUploadError::EmptyUpload(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::InvalidLayer(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::InvalidParameter(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::LayerAlreadyExists(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::LayerPartTooSmall(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::Server(ref cause) => write!(f, "{}", cause),
CompleteLayerUploadError::UploadNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CompleteLayerUploadError {}
#[derive(Debug, PartialEq)]
pub enum CreateRepositoryError {
InvalidParameter(String),
InvalidTagParameter(String),
LimitExceeded(String),
RepositoryAlreadyExists(String),
Server(String),
TooManyTags(String),
}
impl CreateRepositoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateRepositoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(CreateRepositoryError::InvalidParameter(err.msg))
}
"InvalidTagParameterException" => {
return RusotoError::Service(CreateRepositoryError::InvalidTagParameter(
err.msg,
))
}
"LimitExceededException" => {
return RusotoError::Service(CreateRepositoryError::LimitExceeded(err.msg))
}
"RepositoryAlreadyExistsException" => {
return RusotoError::Service(CreateRepositoryError::RepositoryAlreadyExists(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(CreateRepositoryError::Server(err.msg))
}
"TooManyTagsException" => {
return RusotoError::Service(CreateRepositoryError::TooManyTags(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CreateRepositoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CreateRepositoryError::InvalidParameter(ref cause) => write!(f, "{}", cause),
CreateRepositoryError::InvalidTagParameter(ref cause) => write!(f, "{}", cause),
CreateRepositoryError::LimitExceeded(ref cause) => write!(f, "{}", cause),
CreateRepositoryError::RepositoryAlreadyExists(ref cause) => write!(f, "{}", cause),
CreateRepositoryError::Server(ref cause) => write!(f, "{}", cause),
CreateRepositoryError::TooManyTags(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CreateRepositoryError {}
#[derive(Debug, PartialEq)]
pub enum DeleteLifecyclePolicyError {
InvalidParameter(String),
LifecyclePolicyNotFound(String),
RepositoryNotFound(String),
Server(String),
}
impl DeleteLifecyclePolicyError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteLifecyclePolicyError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(DeleteLifecyclePolicyError::InvalidParameter(
err.msg,
))
}
"LifecyclePolicyNotFoundException" => {
return RusotoError::Service(
DeleteLifecyclePolicyError::LifecyclePolicyNotFound(err.msg),
)
}
"RepositoryNotFoundException" => {
return RusotoError::Service(DeleteLifecyclePolicyError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(DeleteLifecyclePolicyError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteLifecyclePolicyError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteLifecyclePolicyError::InvalidParameter(ref cause) => write!(f, "{}", cause),
DeleteLifecyclePolicyError::LifecyclePolicyNotFound(ref cause) => {
write!(f, "{}", cause)
}
DeleteLifecyclePolicyError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
DeleteLifecyclePolicyError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteLifecyclePolicyError {}
#[derive(Debug, PartialEq)]
pub enum DeleteRepositoryError {
InvalidParameter(String),
RepositoryNotEmpty(String),
RepositoryNotFound(String),
Server(String),
}
impl DeleteRepositoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteRepositoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(DeleteRepositoryError::InvalidParameter(err.msg))
}
"RepositoryNotEmptyException" => {
return RusotoError::Service(DeleteRepositoryError::RepositoryNotEmpty(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(DeleteRepositoryError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(DeleteRepositoryError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteRepositoryError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteRepositoryError::InvalidParameter(ref cause) => write!(f, "{}", cause),
DeleteRepositoryError::RepositoryNotEmpty(ref cause) => write!(f, "{}", cause),
DeleteRepositoryError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
DeleteRepositoryError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteRepositoryError {}
#[derive(Debug, PartialEq)]
pub enum DeleteRepositoryPolicyError {
InvalidParameter(String),
RepositoryNotFound(String),
RepositoryPolicyNotFound(String),
Server(String),
}
impl DeleteRepositoryPolicyError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteRepositoryPolicyError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(DeleteRepositoryPolicyError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(DeleteRepositoryPolicyError::RepositoryNotFound(
err.msg,
))
}
"RepositoryPolicyNotFoundException" => {
return RusotoError::Service(
DeleteRepositoryPolicyError::RepositoryPolicyNotFound(err.msg),
)
}
"ServerException" => {
return RusotoError::Service(DeleteRepositoryPolicyError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DeleteRepositoryPolicyError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DeleteRepositoryPolicyError::InvalidParameter(ref cause) => write!(f, "{}", cause),
DeleteRepositoryPolicyError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
DeleteRepositoryPolicyError::RepositoryPolicyNotFound(ref cause) => {
write!(f, "{}", cause)
}
DeleteRepositoryPolicyError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DeleteRepositoryPolicyError {}
#[derive(Debug, PartialEq)]
pub enum DescribeImageScanFindingsError {
ImageNotFound(String),
InvalidParameter(String),
RepositoryNotFound(String),
ScanNotFound(String),
Server(String),
}
impl DescribeImageScanFindingsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeImageScanFindingsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ImageNotFoundException" => {
return RusotoError::Service(DescribeImageScanFindingsError::ImageNotFound(
err.msg,
))
}
"InvalidParameterException" => {
return RusotoError::Service(DescribeImageScanFindingsError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(
DescribeImageScanFindingsError::RepositoryNotFound(err.msg),
)
}
"ScanNotFoundException" => {
return RusotoError::Service(DescribeImageScanFindingsError::ScanNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(DescribeImageScanFindingsError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeImageScanFindingsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeImageScanFindingsError::ImageNotFound(ref cause) => write!(f, "{}", cause),
DescribeImageScanFindingsError::InvalidParameter(ref cause) => write!(f, "{}", cause),
DescribeImageScanFindingsError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
DescribeImageScanFindingsError::ScanNotFound(ref cause) => write!(f, "{}", cause),
DescribeImageScanFindingsError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeImageScanFindingsError {}
#[derive(Debug, PartialEq)]
pub enum DescribeImagesError {
ImageNotFound(String),
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl DescribeImagesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeImagesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ImageNotFoundException" => {
return RusotoError::Service(DescribeImagesError::ImageNotFound(err.msg))
}
"InvalidParameterException" => {
return RusotoError::Service(DescribeImagesError::InvalidParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(DescribeImagesError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(DescribeImagesError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeImagesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeImagesError::ImageNotFound(ref cause) => write!(f, "{}", cause),
DescribeImagesError::InvalidParameter(ref cause) => write!(f, "{}", cause),
DescribeImagesError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
DescribeImagesError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeImagesError {}
#[derive(Debug, PartialEq)]
pub enum DescribeRepositoriesError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl DescribeRepositoriesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeRepositoriesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(DescribeRepositoriesError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(DescribeRepositoriesError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(DescribeRepositoriesError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeRepositoriesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeRepositoriesError::InvalidParameter(ref cause) => write!(f, "{}", cause),
DescribeRepositoriesError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
DescribeRepositoriesError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeRepositoriesError {}
#[derive(Debug, PartialEq)]
pub enum GetAuthorizationTokenError {
InvalidParameter(String),
Server(String),
}
impl GetAuthorizationTokenError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetAuthorizationTokenError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(GetAuthorizationTokenError::InvalidParameter(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(GetAuthorizationTokenError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetAuthorizationTokenError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetAuthorizationTokenError::InvalidParameter(ref cause) => write!(f, "{}", cause),
GetAuthorizationTokenError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetAuthorizationTokenError {}
#[derive(Debug, PartialEq)]
pub enum GetDownloadUrlForLayerError {
InvalidParameter(String),
LayerInaccessible(String),
LayersNotFound(String),
RepositoryNotFound(String),
Server(String),
}
impl GetDownloadUrlForLayerError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDownloadUrlForLayerError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(GetDownloadUrlForLayerError::InvalidParameter(
err.msg,
))
}
"LayerInaccessibleException" => {
return RusotoError::Service(GetDownloadUrlForLayerError::LayerInaccessible(
err.msg,
))
}
"LayersNotFoundException" => {
return RusotoError::Service(GetDownloadUrlForLayerError::LayersNotFound(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(GetDownloadUrlForLayerError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(GetDownloadUrlForLayerError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetDownloadUrlForLayerError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetDownloadUrlForLayerError::InvalidParameter(ref cause) => write!(f, "{}", cause),
GetDownloadUrlForLayerError::LayerInaccessible(ref cause) => write!(f, "{}", cause),
GetDownloadUrlForLayerError::LayersNotFound(ref cause) => write!(f, "{}", cause),
GetDownloadUrlForLayerError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
GetDownloadUrlForLayerError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetDownloadUrlForLayerError {}
#[derive(Debug, PartialEq)]
pub enum GetLifecyclePolicyError {
InvalidParameter(String),
LifecyclePolicyNotFound(String),
RepositoryNotFound(String),
Server(String),
}
impl GetLifecyclePolicyError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetLifecyclePolicyError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(GetLifecyclePolicyError::InvalidParameter(err.msg))
}
"LifecyclePolicyNotFoundException" => {
return RusotoError::Service(GetLifecyclePolicyError::LifecyclePolicyNotFound(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(GetLifecyclePolicyError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(GetLifecyclePolicyError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetLifecyclePolicyError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetLifecyclePolicyError::InvalidParameter(ref cause) => write!(f, "{}", cause),
GetLifecyclePolicyError::LifecyclePolicyNotFound(ref cause) => write!(f, "{}", cause),
GetLifecyclePolicyError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
GetLifecyclePolicyError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetLifecyclePolicyError {}
#[derive(Debug, PartialEq)]
pub enum GetLifecyclePolicyPreviewError {
InvalidParameter(String),
LifecyclePolicyPreviewNotFound(String),
RepositoryNotFound(String),
Server(String),
}
impl GetLifecyclePolicyPreviewError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetLifecyclePolicyPreviewError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(GetLifecyclePolicyPreviewError::InvalidParameter(
err.msg,
))
}
"LifecyclePolicyPreviewNotFoundException" => {
return RusotoError::Service(
GetLifecyclePolicyPreviewError::LifecyclePolicyPreviewNotFound(err.msg),
)
}
"RepositoryNotFoundException" => {
return RusotoError::Service(
GetLifecyclePolicyPreviewError::RepositoryNotFound(err.msg),
)
}
"ServerException" => {
return RusotoError::Service(GetLifecyclePolicyPreviewError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetLifecyclePolicyPreviewError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetLifecyclePolicyPreviewError::InvalidParameter(ref cause) => write!(f, "{}", cause),
GetLifecyclePolicyPreviewError::LifecyclePolicyPreviewNotFound(ref cause) => {
write!(f, "{}", cause)
}
GetLifecyclePolicyPreviewError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
GetLifecyclePolicyPreviewError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetLifecyclePolicyPreviewError {}
#[derive(Debug, PartialEq)]
pub enum GetRepositoryPolicyError {
InvalidParameter(String),
RepositoryNotFound(String),
RepositoryPolicyNotFound(String),
Server(String),
}
impl GetRepositoryPolicyError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetRepositoryPolicyError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(GetRepositoryPolicyError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(GetRepositoryPolicyError::RepositoryNotFound(
err.msg,
))
}
"RepositoryPolicyNotFoundException" => {
return RusotoError::Service(
GetRepositoryPolicyError::RepositoryPolicyNotFound(err.msg),
)
}
"ServerException" => {
return RusotoError::Service(GetRepositoryPolicyError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetRepositoryPolicyError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetRepositoryPolicyError::InvalidParameter(ref cause) => write!(f, "{}", cause),
GetRepositoryPolicyError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
GetRepositoryPolicyError::RepositoryPolicyNotFound(ref cause) => write!(f, "{}", cause),
GetRepositoryPolicyError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetRepositoryPolicyError {}
#[derive(Debug, PartialEq)]
pub enum InitiateLayerUploadError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl InitiateLayerUploadError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<InitiateLayerUploadError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(InitiateLayerUploadError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(InitiateLayerUploadError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(InitiateLayerUploadError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for InitiateLayerUploadError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
InitiateLayerUploadError::InvalidParameter(ref cause) => write!(f, "{}", cause),
InitiateLayerUploadError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
InitiateLayerUploadError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for InitiateLayerUploadError {}
#[derive(Debug, PartialEq)]
pub enum ListImagesError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl ListImagesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListImagesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(ListImagesError::InvalidParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(ListImagesError::RepositoryNotFound(err.msg))
}
"ServerException" => return RusotoError::Service(ListImagesError::Server(err.msg)),
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListImagesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListImagesError::InvalidParameter(ref cause) => write!(f, "{}", cause),
ListImagesError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
ListImagesError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListImagesError {}
#[derive(Debug, PartialEq)]
pub enum ListTagsForResourceError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl ListTagsForResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListTagsForResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(ListTagsForResourceError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(ListTagsForResourceError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(ListTagsForResourceError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListTagsForResourceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListTagsForResourceError::InvalidParameter(ref cause) => write!(f, "{}", cause),
ListTagsForResourceError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
ListTagsForResourceError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListTagsForResourceError {}
#[derive(Debug, PartialEq)]
pub enum PutImageError {
ImageAlreadyExists(String),
ImageTagAlreadyExists(String),
InvalidParameter(String),
LayersNotFound(String),
LimitExceeded(String),
ReferencedImagesNotFound(String),
RepositoryNotFound(String),
Server(String),
}
impl PutImageError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutImageError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ImageAlreadyExistsException" => {
return RusotoError::Service(PutImageError::ImageAlreadyExists(err.msg))
}
"ImageTagAlreadyExistsException" => {
return RusotoError::Service(PutImageError::ImageTagAlreadyExists(err.msg))
}
"InvalidParameterException" => {
return RusotoError::Service(PutImageError::InvalidParameter(err.msg))
}
"LayersNotFoundException" => {
return RusotoError::Service(PutImageError::LayersNotFound(err.msg))
}
"LimitExceededException" => {
return RusotoError::Service(PutImageError::LimitExceeded(err.msg))
}
"ReferencedImagesNotFoundException" => {
return RusotoError::Service(PutImageError::ReferencedImagesNotFound(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(PutImageError::RepositoryNotFound(err.msg))
}
"ServerException" => return RusotoError::Service(PutImageError::Server(err.msg)),
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutImageError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutImageError::ImageAlreadyExists(ref cause) => write!(f, "{}", cause),
PutImageError::ImageTagAlreadyExists(ref cause) => write!(f, "{}", cause),
PutImageError::InvalidParameter(ref cause) => write!(f, "{}", cause),
PutImageError::LayersNotFound(ref cause) => write!(f, "{}", cause),
PutImageError::LimitExceeded(ref cause) => write!(f, "{}", cause),
PutImageError::ReferencedImagesNotFound(ref cause) => write!(f, "{}", cause),
PutImageError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
PutImageError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutImageError {}
#[derive(Debug, PartialEq)]
pub enum PutImageScanningConfigurationError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl PutImageScanningConfigurationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<PutImageScanningConfigurationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(
PutImageScanningConfigurationError::InvalidParameter(err.msg),
)
}
"RepositoryNotFoundException" => {
return RusotoError::Service(
PutImageScanningConfigurationError::RepositoryNotFound(err.msg),
)
}
"ServerException" => {
return RusotoError::Service(PutImageScanningConfigurationError::Server(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutImageScanningConfigurationError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutImageScanningConfigurationError::InvalidParameter(ref cause) => {
write!(f, "{}", cause)
}
PutImageScanningConfigurationError::RepositoryNotFound(ref cause) => {
write!(f, "{}", cause)
}
PutImageScanningConfigurationError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutImageScanningConfigurationError {}
#[derive(Debug, PartialEq)]
pub enum PutImageTagMutabilityError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl PutImageTagMutabilityError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutImageTagMutabilityError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(PutImageTagMutabilityError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(PutImageTagMutabilityError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(PutImageTagMutabilityError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutImageTagMutabilityError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutImageTagMutabilityError::InvalidParameter(ref cause) => write!(f, "{}", cause),
PutImageTagMutabilityError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
PutImageTagMutabilityError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutImageTagMutabilityError {}
#[derive(Debug, PartialEq)]
pub enum PutLifecyclePolicyError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl PutLifecyclePolicyError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutLifecyclePolicyError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(PutLifecyclePolicyError::InvalidParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(PutLifecyclePolicyError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(PutLifecyclePolicyError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutLifecyclePolicyError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutLifecyclePolicyError::InvalidParameter(ref cause) => write!(f, "{}", cause),
PutLifecyclePolicyError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
PutLifecyclePolicyError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutLifecyclePolicyError {}
#[derive(Debug, PartialEq)]
pub enum SetRepositoryPolicyError {
InvalidParameter(String),
RepositoryNotFound(String),
Server(String),
}
impl SetRepositoryPolicyError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<SetRepositoryPolicyError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(SetRepositoryPolicyError::InvalidParameter(
err.msg,
))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(SetRepositoryPolicyError::RepositoryNotFound(
err.msg,
))
}
"ServerException" => {
return RusotoError::Service(SetRepositoryPolicyError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for SetRepositoryPolicyError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
SetRepositoryPolicyError::InvalidParameter(ref cause) => write!(f, "{}", cause),
SetRepositoryPolicyError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
SetRepositoryPolicyError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for SetRepositoryPolicyError {}
#[derive(Debug, PartialEq)]
pub enum StartImageScanError {
ImageNotFound(String),
InvalidParameter(String),
LimitExceeded(String),
RepositoryNotFound(String),
Server(String),
UnsupportedImageType(String),
}
impl StartImageScanError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StartImageScanError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ImageNotFoundException" => {
return RusotoError::Service(StartImageScanError::ImageNotFound(err.msg))
}
"InvalidParameterException" => {
return RusotoError::Service(StartImageScanError::InvalidParameter(err.msg))
}
"LimitExceededException" => {
return RusotoError::Service(StartImageScanError::LimitExceeded(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(StartImageScanError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(StartImageScanError::Server(err.msg))
}
"UnsupportedImageTypeException" => {
return RusotoError::Service(StartImageScanError::UnsupportedImageType(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartImageScanError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartImageScanError::ImageNotFound(ref cause) => write!(f, "{}", cause),
StartImageScanError::InvalidParameter(ref cause) => write!(f, "{}", cause),
StartImageScanError::LimitExceeded(ref cause) => write!(f, "{}", cause),
StartImageScanError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
StartImageScanError::Server(ref cause) => write!(f, "{}", cause),
StartImageScanError::UnsupportedImageType(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for StartImageScanError {}
#[derive(Debug, PartialEq)]
pub enum StartLifecyclePolicyPreviewError {
InvalidParameter(String),
LifecyclePolicyNotFound(String),
LifecyclePolicyPreviewInProgress(String),
RepositoryNotFound(String),
Server(String),
}
impl StartLifecyclePolicyPreviewError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<StartLifecyclePolicyPreviewError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(
StartLifecyclePolicyPreviewError::InvalidParameter(err.msg),
)
}
"LifecyclePolicyNotFoundException" => {
return RusotoError::Service(
StartLifecyclePolicyPreviewError::LifecyclePolicyNotFound(err.msg),
)
}
"LifecyclePolicyPreviewInProgressException" => {
return RusotoError::Service(
StartLifecyclePolicyPreviewError::LifecyclePolicyPreviewInProgress(err.msg),
)
}
"RepositoryNotFoundException" => {
return RusotoError::Service(
StartLifecyclePolicyPreviewError::RepositoryNotFound(err.msg),
)
}
"ServerException" => {
return RusotoError::Service(StartLifecyclePolicyPreviewError::Server(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartLifecyclePolicyPreviewError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartLifecyclePolicyPreviewError::InvalidParameter(ref cause) => write!(f, "{}", cause),
StartLifecyclePolicyPreviewError::LifecyclePolicyNotFound(ref cause) => {
write!(f, "{}", cause)
}
StartLifecyclePolicyPreviewError::LifecyclePolicyPreviewInProgress(ref cause) => {
write!(f, "{}", cause)
}
StartLifecyclePolicyPreviewError::RepositoryNotFound(ref cause) => {
write!(f, "{}", cause)
}
StartLifecyclePolicyPreviewError::Server(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for StartLifecyclePolicyPreviewError {}
#[derive(Debug, PartialEq)]
pub enum TagResourceError {
InvalidParameter(String),
InvalidTagParameter(String),
RepositoryNotFound(String),
Server(String),
TooManyTags(String),
}
impl TagResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TagResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(TagResourceError::InvalidParameter(err.msg))
}
"InvalidTagParameterException" => {
return RusotoError::Service(TagResourceError::InvalidTagParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(TagResourceError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(TagResourceError::Server(err.msg))
}
"TooManyTagsException" => {
return RusotoError::Service(TagResourceError::TooManyTags(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for TagResourceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
TagResourceError::InvalidParameter(ref cause) => write!(f, "{}", cause),
TagResourceError::InvalidTagParameter(ref cause) => write!(f, "{}", cause),
TagResourceError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
TagResourceError::Server(ref cause) => write!(f, "{}", cause),
TagResourceError::TooManyTags(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for TagResourceError {}
#[derive(Debug, PartialEq)]
pub enum UntagResourceError {
InvalidParameter(String),
InvalidTagParameter(String),
RepositoryNotFound(String),
Server(String),
TooManyTags(String),
}
impl UntagResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UntagResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterException" => {
return RusotoError::Service(UntagResourceError::InvalidParameter(err.msg))
}
"InvalidTagParameterException" => {
return RusotoError::Service(UntagResourceError::InvalidTagParameter(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(UntagResourceError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(UntagResourceError::Server(err.msg))
}
"TooManyTagsException" => {
return RusotoError::Service(UntagResourceError::TooManyTags(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UntagResourceError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UntagResourceError::InvalidParameter(ref cause) => write!(f, "{}", cause),
UntagResourceError::InvalidTagParameter(ref cause) => write!(f, "{}", cause),
UntagResourceError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
UntagResourceError::Server(ref cause) => write!(f, "{}", cause),
UntagResourceError::TooManyTags(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UntagResourceError {}
#[derive(Debug, PartialEq)]
pub enum UploadLayerPartError {
InvalidLayerPart(String),
InvalidParameter(String),
LimitExceeded(String),
RepositoryNotFound(String),
Server(String),
UploadNotFound(String),
}
impl UploadLayerPartError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UploadLayerPartError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLayerPartException" => {
return RusotoError::Service(UploadLayerPartError::InvalidLayerPart(err.msg))
}
"InvalidParameterException" => {
return RusotoError::Service(UploadLayerPartError::InvalidParameter(err.msg))
}
"LimitExceededException" => {
return RusotoError::Service(UploadLayerPartError::LimitExceeded(err.msg))
}
"RepositoryNotFoundException" => {
return RusotoError::Service(UploadLayerPartError::RepositoryNotFound(err.msg))
}
"ServerException" => {
return RusotoError::Service(UploadLayerPartError::Server(err.msg))
}
"UploadNotFoundException" => {
return RusotoError::Service(UploadLayerPartError::UploadNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for UploadLayerPartError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
UploadLayerPartError::InvalidLayerPart(ref cause) => write!(f, "{}", cause),
UploadLayerPartError::InvalidParameter(ref cause) => write!(f, "{}", cause),
UploadLayerPartError::LimitExceeded(ref cause) => write!(f, "{}", cause),
UploadLayerPartError::RepositoryNotFound(ref cause) => write!(f, "{}", cause),
UploadLayerPartError::Server(ref cause) => write!(f, "{}", cause),
UploadLayerPartError::UploadNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UploadLayerPartError {}
#[async_trait]
pub trait Ecr {
async fn batch_check_layer_availability(
&self,
input: BatchCheckLayerAvailabilityRequest,
) -> Result<BatchCheckLayerAvailabilityResponse, RusotoError<BatchCheckLayerAvailabilityError>>;
async fn batch_delete_image(
&self,
input: BatchDeleteImageRequest,
) -> Result<BatchDeleteImageResponse, RusotoError<BatchDeleteImageError>>;
async fn batch_get_image(
&self,
input: BatchGetImageRequest,
) -> Result<BatchGetImageResponse, RusotoError<BatchGetImageError>>;
async fn complete_layer_upload(
&self,
input: CompleteLayerUploadRequest,
) -> Result<CompleteLayerUploadResponse, RusotoError<CompleteLayerUploadError>>;
async fn create_repository(
&self,
input: CreateRepositoryRequest,
) -> Result<CreateRepositoryResponse, RusotoError<CreateRepositoryError>>;
async fn delete_lifecycle_policy(
&self,
input: DeleteLifecyclePolicyRequest,
) -> Result<DeleteLifecyclePolicyResponse, RusotoError<DeleteLifecyclePolicyError>>;
async fn delete_repository(
&self,
input: DeleteRepositoryRequest,
) -> Result<DeleteRepositoryResponse, RusotoError<DeleteRepositoryError>>;
async fn delete_repository_policy(
&self,
input: DeleteRepositoryPolicyRequest,
) -> Result<DeleteRepositoryPolicyResponse, RusotoError<DeleteRepositoryPolicyError>>;
async fn describe_image_scan_findings(
&self,
input: DescribeImageScanFindingsRequest,
) -> Result<DescribeImageScanFindingsResponse, RusotoError<DescribeImageScanFindingsError>>;
async fn describe_images(
&self,
input: DescribeImagesRequest,
) -> Result<DescribeImagesResponse, RusotoError<DescribeImagesError>>;
async fn describe_repositories(
&self,
input: DescribeRepositoriesRequest,
) -> Result<DescribeRepositoriesResponse, RusotoError<DescribeRepositoriesError>>;
async fn get_authorization_token(
&self,
input: GetAuthorizationTokenRequest,
) -> Result<GetAuthorizationTokenResponse, RusotoError<GetAuthorizationTokenError>>;
async fn get_download_url_for_layer(
&self,
input: GetDownloadUrlForLayerRequest,
) -> Result<GetDownloadUrlForLayerResponse, RusotoError<GetDownloadUrlForLayerError>>;
async fn get_lifecycle_policy(
&self,
input: GetLifecyclePolicyRequest,
) -> Result<GetLifecyclePolicyResponse, RusotoError<GetLifecyclePolicyError>>;
async fn get_lifecycle_policy_preview(
&self,
input: GetLifecyclePolicyPreviewRequest,
) -> Result<GetLifecyclePolicyPreviewResponse, RusotoError<GetLifecyclePolicyPreviewError>>;
async fn get_repository_policy(
&self,
input: GetRepositoryPolicyRequest,
) -> Result<GetRepositoryPolicyResponse, RusotoError<GetRepositoryPolicyError>>;
async fn initiate_layer_upload(
&self,
input: InitiateLayerUploadRequest,
) -> Result<InitiateLayerUploadResponse, RusotoError<InitiateLayerUploadError>>;
async fn list_images(
&self,
input: ListImagesRequest,
) -> Result<ListImagesResponse, RusotoError<ListImagesError>>;
async fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> Result<ListTagsForResourceResponse, RusotoError<ListTagsForResourceError>>;
async fn put_image(
&self,
input: PutImageRequest,
) -> Result<PutImageResponse, RusotoError<PutImageError>>;
async fn put_image_scanning_configuration(
&self,
input: PutImageScanningConfigurationRequest,
) -> Result<
PutImageScanningConfigurationResponse,
RusotoError<PutImageScanningConfigurationError>,
>;
async fn put_image_tag_mutability(
&self,
input: PutImageTagMutabilityRequest,
) -> Result<PutImageTagMutabilityResponse, RusotoError<PutImageTagMutabilityError>>;
async fn put_lifecycle_policy(
&self,
input: PutLifecyclePolicyRequest,
) -> Result<PutLifecyclePolicyResponse, RusotoError<PutLifecyclePolicyError>>;
async fn set_repository_policy(
&self,
input: SetRepositoryPolicyRequest,
) -> Result<SetRepositoryPolicyResponse, RusotoError<SetRepositoryPolicyError>>;
async fn start_image_scan(
&self,
input: StartImageScanRequest,
) -> Result<StartImageScanResponse, RusotoError<StartImageScanError>>;
async fn start_lifecycle_policy_preview(
&self,
input: StartLifecyclePolicyPreviewRequest,
) -> Result<StartLifecyclePolicyPreviewResponse, RusotoError<StartLifecyclePolicyPreviewError>>;
async fn tag_resource(
&self,
input: TagResourceRequest,
) -> Result<TagResourceResponse, RusotoError<TagResourceError>>;
async fn untag_resource(
&self,
input: UntagResourceRequest,
) -> Result<UntagResourceResponse, RusotoError<UntagResourceError>>;
async fn upload_layer_part(
&self,
input: UploadLayerPartRequest,
) -> Result<UploadLayerPartResponse, RusotoError<UploadLayerPartError>>;
}
#[derive(Clone)]
pub struct EcrClient {
client: Client,
region: region::Region,
}
impl EcrClient {
pub fn new(region: region::Region) -> EcrClient {
EcrClient {
client: Client::shared(),
region,
}
}
pub fn new_with<P, D>(
request_dispatcher: D,
credentials_provider: P,
region: region::Region,
) -> EcrClient
where
P: ProvideAwsCredentials + Send + Sync + 'static,
D: DispatchSignedRequest + Send + Sync + 'static,
{
EcrClient {
client: Client::new_with(credentials_provider, request_dispatcher),
region,
}
}
pub fn new_with_client(client: Client, region: region::Region) -> EcrClient {
EcrClient { client, region }
}
}
#[async_trait]
impl Ecr for EcrClient {
async fn batch_check_layer_availability(
&self,
input: BatchCheckLayerAvailabilityRequest,
) -> Result<BatchCheckLayerAvailabilityResponse, RusotoError<BatchCheckLayerAvailabilityError>>
{
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.BatchCheckLayerAvailability",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<BatchCheckLayerAvailabilityResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(BatchCheckLayerAvailabilityError::from_response(response))
}
}
async fn batch_delete_image(
&self,
input: BatchDeleteImageRequest,
) -> Result<BatchDeleteImageResponse, RusotoError<BatchDeleteImageError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.BatchDeleteImage",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<BatchDeleteImageResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(BatchDeleteImageError::from_response(response))
}
}
async fn batch_get_image(
&self,
input: BatchGetImageRequest,
) -> Result<BatchGetImageResponse, RusotoError<BatchGetImageError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.BatchGetImage",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<BatchGetImageResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(BatchGetImageError::from_response(response))
}
}
async fn complete_layer_upload(
&self,
input: CompleteLayerUploadRequest,
) -> Result<CompleteLayerUploadResponse, RusotoError<CompleteLayerUploadError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.CompleteLayerUpload",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<CompleteLayerUploadResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(CompleteLayerUploadError::from_response(response))
}
}
async fn create_repository(
&self,
input: CreateRepositoryRequest,
) -> Result<CreateRepositoryResponse, RusotoError<CreateRepositoryError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.CreateRepository",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<CreateRepositoryResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(CreateRepositoryError::from_response(response))
}
}
async fn delete_lifecycle_policy(
&self,
input: DeleteLifecyclePolicyRequest,
) -> Result<DeleteLifecyclePolicyResponse, RusotoError<DeleteLifecyclePolicyError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.DeleteLifecyclePolicy",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteLifecyclePolicyResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(DeleteLifecyclePolicyError::from_response(response))
}
}
async fn delete_repository(
&self,
input: DeleteRepositoryRequest,
) -> Result<DeleteRepositoryResponse, RusotoError<DeleteRepositoryError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.DeleteRepository",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteRepositoryResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(DeleteRepositoryError::from_response(response))
}
}
async fn delete_repository_policy(
&self,
input: DeleteRepositoryPolicyRequest,
) -> Result<DeleteRepositoryPolicyResponse, RusotoError<DeleteRepositoryPolicyError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.DeleteRepositoryPolicy",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteRepositoryPolicyResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(DeleteRepositoryPolicyError::from_response(response))
}
}
async fn describe_image_scan_findings(
&self,
input: DescribeImageScanFindingsRequest,
) -> Result<DescribeImageScanFindingsResponse, RusotoError<DescribeImageScanFindingsError>>
{
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.DescribeImageScanFindings",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeImageScanFindingsResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(DescribeImageScanFindingsError::from_response(response))
}
}
async fn describe_images(
&self,
input: DescribeImagesRequest,
) -> Result<DescribeImagesResponse, RusotoError<DescribeImagesError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.DescribeImages",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<DescribeImagesResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(DescribeImagesError::from_response(response))
}
}
async fn describe_repositories(
&self,
input: DescribeRepositoriesRequest,
) -> Result<DescribeRepositoriesResponse, RusotoError<DescribeRepositoriesError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.DescribeRepositories",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeRepositoriesResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(DescribeRepositoriesError::from_response(response))
}
}
async fn get_authorization_token(
&self,
input: GetAuthorizationTokenRequest,
) -> Result<GetAuthorizationTokenResponse, RusotoError<GetAuthorizationTokenError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.GetAuthorizationToken",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetAuthorizationTokenResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(GetAuthorizationTokenError::from_response(response))
}
}
async fn get_download_url_for_layer(
&self,
input: GetDownloadUrlForLayerRequest,
) -> Result<GetDownloadUrlForLayerResponse, RusotoError<GetDownloadUrlForLayerError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.GetDownloadUrlForLayer",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetDownloadUrlForLayerResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(GetDownloadUrlForLayerError::from_response(response))
}
}
async fn get_lifecycle_policy(
&self,
input: GetLifecyclePolicyRequest,
) -> Result<GetLifecyclePolicyResponse, RusotoError<GetLifecyclePolicyError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.GetLifecyclePolicy",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetLifecyclePolicyResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(GetLifecyclePolicyError::from_response(response))
}
}
async fn get_lifecycle_policy_preview(
&self,
input: GetLifecyclePolicyPreviewRequest,
) -> Result<GetLifecyclePolicyPreviewResponse, RusotoError<GetLifecyclePolicyPreviewError>>
{
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.GetLifecyclePolicyPreview",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetLifecyclePolicyPreviewResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(GetLifecyclePolicyPreviewError::from_response(response))
}
}
async fn get_repository_policy(
&self,
input: GetRepositoryPolicyRequest,
) -> Result<GetRepositoryPolicyResponse, RusotoError<GetRepositoryPolicyError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.GetRepositoryPolicy",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<GetRepositoryPolicyResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(GetRepositoryPolicyError::from_response(response))
}
}
async fn initiate_layer_upload(
&self,
input: InitiateLayerUploadRequest,
) -> Result<InitiateLayerUploadResponse, RusotoError<InitiateLayerUploadError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.InitiateLayerUpload",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<InitiateLayerUploadResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(InitiateLayerUploadError::from_response(response))
}
}
async fn list_images(
&self,
input: ListImagesRequest,
) -> Result<ListImagesResponse, RusotoError<ListImagesError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.ListImages",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<ListImagesResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(ListImagesError::from_response(response))
}
}
async fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> Result<ListTagsForResourceResponse, RusotoError<ListTagsForResourceError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.ListTagsForResource",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<ListTagsForResourceResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(ListTagsForResourceError::from_response(response))
}
}
async fn put_image(
&self,
input: PutImageRequest,
) -> Result<PutImageResponse, RusotoError<PutImageError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.PutImage",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<PutImageResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(PutImageError::from_response(response))
}
}
async fn put_image_scanning_configuration(
&self,
input: PutImageScanningConfigurationRequest,
) -> Result<
PutImageScanningConfigurationResponse,
RusotoError<PutImageScanningConfigurationError>,
> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.PutImageScanningConfiguration",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<PutImageScanningConfigurationResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(PutImageScanningConfigurationError::from_response(response))
}
}
async fn put_image_tag_mutability(
&self,
input: PutImageTagMutabilityRequest,
) -> Result<PutImageTagMutabilityResponse, RusotoError<PutImageTagMutabilityError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.PutImageTagMutability",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<PutImageTagMutabilityResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(PutImageTagMutabilityError::from_response(response))
}
}
async fn put_lifecycle_policy(
&self,
input: PutLifecyclePolicyRequest,
) -> Result<PutLifecyclePolicyResponse, RusotoError<PutLifecyclePolicyError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.PutLifecyclePolicy",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<PutLifecyclePolicyResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(PutLifecyclePolicyError::from_response(response))
}
}
async fn set_repository_policy(
&self,
input: SetRepositoryPolicyRequest,
) -> Result<SetRepositoryPolicyResponse, RusotoError<SetRepositoryPolicyError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.SetRepositoryPolicy",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<SetRepositoryPolicyResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(SetRepositoryPolicyError::from_response(response))
}
}
async fn start_image_scan(
&self,
input: StartImageScanRequest,
) -> Result<StartImageScanResponse, RusotoError<StartImageScanError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.StartImageScan",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<StartImageScanResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(StartImageScanError::from_response(response))
}
}
async fn start_lifecycle_policy_preview(
&self,
input: StartLifecyclePolicyPreviewRequest,
) -> Result<StartLifecyclePolicyPreviewResponse, RusotoError<StartLifecyclePolicyPreviewError>>
{
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.StartLifecyclePolicyPreview",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response)
.deserialize::<StartLifecyclePolicyPreviewResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(StartLifecyclePolicyPreviewError::from_response(response))
}
}
async fn tag_resource(
&self,
input: TagResourceRequest,
) -> Result<TagResourceResponse, RusotoError<TagResourceError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.TagResource",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<TagResourceResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(TagResourceError::from_response(response))
}
}
async fn untag_resource(
&self,
input: UntagResourceRequest,
) -> Result<UntagResourceResponse, RusotoError<UntagResourceError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.UntagResource",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UntagResourceResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(UntagResourceError::from_response(response))
}
}
async fn upload_layer_part(
&self,
input: UploadLayerPartRequest,
) -> Result<UploadLayerPartResponse, RusotoError<UploadLayerPartError>> {
let mut request = SignedRequest::new("POST", "ecr", &self.region, "/");
request.set_endpoint_prefix("api.ecr".to_string());
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"AmazonEC2ContainerRegistry_V20150921.UploadLayerPart",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
let mut response = self
.client
.sign_and_dispatch(request)
.await
.map_err(RusotoError::from)?;
if response.status.is_success() {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
proto::json::ResponsePayload::new(&response).deserialize::<UploadLayerPartResponse, _>()
} else {
let try_response = response.buffer().await;
let response = try_response.map_err(RusotoError::HttpDispatch)?;
Err(UploadLayerPartError::from_response(response))
}
}
}