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::param::{Params, ServiceParams};
use rusoto_core::proto;
use rusoto_core::signature::SignedRequest;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
use serde_json;
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct CancelSigningProfileRequest {
#[serde(rename = "profileName")]
pub profile_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct DescribeSigningJobRequest {
#[serde(rename = "jobId")]
pub job_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct DescribeSigningJobResponse {
#[serde(rename = "completedAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub completed_at: Option<f64>,
#[serde(rename = "createdAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<f64>,
#[serde(rename = "jobId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub job_id: Option<String>,
#[serde(rename = "overrides")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overrides: Option<SigningPlatformOverrides>,
#[serde(rename = "platformId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_id: Option<String>,
#[serde(rename = "profileName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub profile_name: Option<String>,
#[serde(rename = "requestedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requested_by: Option<String>,
#[serde(rename = "signedObject")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signed_object: Option<SignedObject>,
#[serde(rename = "signingMaterial")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_material: Option<SigningMaterial>,
#[serde(rename = "signingParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_parameters: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "source")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "statusReason")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status_reason: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct Destination {
#[serde(rename = "s3")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s_3: Option<S3Destination>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct EncryptionAlgorithmOptions {
#[serde(rename = "allowedValues")]
pub allowed_values: Vec<String>,
#[serde(rename = "defaultValue")]
pub default_value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetSigningPlatformRequest {
#[serde(rename = "platformId")]
pub platform_id: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetSigningPlatformResponse {
#[serde(rename = "category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(rename = "displayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "maxSizeInMB")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_size_in_mb: Option<i64>,
#[serde(rename = "partner")]
#[serde(skip_serializing_if = "Option::is_none")]
pub partner: Option<String>,
#[serde(rename = "platformId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_id: Option<String>,
#[serde(rename = "signingConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_configuration: Option<SigningConfiguration>,
#[serde(rename = "signingImageFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_image_format: Option<SigningImageFormat>,
#[serde(rename = "target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct GetSigningProfileRequest {
#[serde(rename = "profileName")]
pub profile_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct GetSigningProfileResponse {
#[serde(rename = "arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(rename = "overrides")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overrides: Option<SigningPlatformOverrides>,
#[serde(rename = "platformId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_id: Option<String>,
#[serde(rename = "profileName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub profile_name: Option<String>,
#[serde(rename = "signingMaterial")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_material: Option<SigningMaterial>,
#[serde(rename = "signingParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_parameters: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<::std::collections::HashMap<String, String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct HashAlgorithmOptions {
#[serde(rename = "allowedValues")]
pub allowed_values: Vec<String>,
#[serde(rename = "defaultValue")]
pub default_value: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListSigningJobsRequest {
#[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 = "platformId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_id: Option<String>,
#[serde(rename = "requestedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requested_by: Option<String>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListSigningJobsResponse {
#[serde(rename = "jobs")]
#[serde(skip_serializing_if = "Option::is_none")]
pub jobs: Option<Vec<SigningJob>>,
#[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 ListSigningPlatformsRequest {
#[serde(rename = "category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[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 = "partner")]
#[serde(skip_serializing_if = "Option::is_none")]
pub partner: Option<String>,
#[serde(rename = "target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListSigningPlatformsResponse {
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "platforms")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platforms: Option<Vec<SigningPlatform>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct ListSigningProfilesRequest {
#[serde(rename = "includeCanceled")]
#[serde(skip_serializing_if = "Option::is_none")]
pub include_canceled: Option<bool>,
#[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>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct ListSigningProfilesResponse {
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "profiles")]
#[serde(skip_serializing_if = "Option::is_none")]
pub profiles: Option<Vec<SigningProfile>>,
}
#[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<::std::collections::HashMap<String, String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct PutSigningProfileRequest {
#[serde(rename = "overrides")]
#[serde(skip_serializing_if = "Option::is_none")]
pub overrides: Option<SigningPlatformOverrides>,
#[serde(rename = "platformId")]
pub platform_id: String,
#[serde(rename = "profileName")]
pub profile_name: String,
#[serde(rename = "signingMaterial")]
pub signing_material: SigningMaterial,
#[serde(rename = "signingParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_parameters: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<::std::collections::HashMap<String, String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct PutSigningProfileResponse {
#[serde(rename = "arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct S3Destination {
#[serde(rename = "bucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub bucket_name: Option<String>,
#[serde(rename = "prefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct S3SignedObject {
#[serde(rename = "bucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub bucket_name: Option<String>,
#[serde(rename = "key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct S3Source {
#[serde(rename = "bucketName")]
pub bucket_name: String,
#[serde(rename = "key")]
pub key: String,
#[serde(rename = "version")]
pub version: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SignedObject {
#[serde(rename = "s3")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s_3: Option<S3SignedObject>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SigningConfiguration {
#[serde(rename = "encryptionAlgorithmOptions")]
pub encryption_algorithm_options: EncryptionAlgorithmOptions,
#[serde(rename = "hashAlgorithmOptions")]
pub hash_algorithm_options: HashAlgorithmOptions,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SigningConfigurationOverrides {
#[serde(rename = "encryptionAlgorithm")]
#[serde(skip_serializing_if = "Option::is_none")]
pub encryption_algorithm: Option<String>,
#[serde(rename = "hashAlgorithm")]
#[serde(skip_serializing_if = "Option::is_none")]
pub hash_algorithm: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SigningImageFormat {
#[serde(rename = "defaultFormat")]
pub default_format: String,
#[serde(rename = "supportedFormats")]
pub supported_formats: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SigningJob {
#[serde(rename = "createdAt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<f64>,
#[serde(rename = "jobId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub job_id: Option<String>,
#[serde(rename = "signedObject")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signed_object: Option<SignedObject>,
#[serde(rename = "signingMaterial")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_material: Option<SigningMaterial>,
#[serde(rename = "source")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<Source>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SigningMaterial {
#[serde(rename = "certificateArn")]
pub certificate_arn: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SigningPlatform {
#[serde(rename = "category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(rename = "displayName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "maxSizeInMB")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_size_in_mb: Option<i64>,
#[serde(rename = "partner")]
#[serde(skip_serializing_if = "Option::is_none")]
pub partner: Option<String>,
#[serde(rename = "platformId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_id: Option<String>,
#[serde(rename = "signingConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_configuration: Option<SigningConfiguration>,
#[serde(rename = "signingImageFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_image_format: Option<SigningImageFormat>,
#[serde(rename = "target")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SigningPlatformOverrides {
#[serde(rename = "signingConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_configuration: Option<SigningConfigurationOverrides>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct SigningProfile {
#[serde(rename = "arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(rename = "platformId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_id: Option<String>,
#[serde(rename = "profileName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub profile_name: Option<String>,
#[serde(rename = "signingMaterial")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_material: Option<SigningMaterial>,
#[serde(rename = "signingParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub signing_parameters: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "status")]
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<::std::collections::HashMap<String, String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Source {
#[serde(rename = "s3")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s_3: Option<S3Source>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
pub struct StartSigningJobRequest {
#[serde(rename = "clientRequestToken")]
pub client_request_token: String,
#[serde(rename = "destination")]
pub destination: Destination,
#[serde(rename = "profileName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub profile_name: Option<String>,
#[serde(rename = "source")]
pub source: Source,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
pub struct StartSigningJobResponse {
#[serde(rename = "jobId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub job_id: 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: ::std::collections::HashMap<String, String>,
}
#[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(Debug, PartialEq)]
pub enum CancelSigningProfileError {
AccessDenied(String),
InternalServiceError(String),
ResourceNotFound(String),
Throttling(String),
}
impl CancelSigningProfileError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CancelSigningProfileError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(CancelSigningProfileError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(CancelSigningProfileError::InternalServiceError(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(CancelSigningProfileError::ResourceNotFound(
err.msg,
))
}
"ThrottlingException" => {
return RusotoError::Service(CancelSigningProfileError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for CancelSigningProfileError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
CancelSigningProfileError::AccessDenied(ref cause) => write!(f, "{}", cause),
CancelSigningProfileError::InternalServiceError(ref cause) => write!(f, "{}", cause),
CancelSigningProfileError::ResourceNotFound(ref cause) => write!(f, "{}", cause),
CancelSigningProfileError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for CancelSigningProfileError {}
#[derive(Debug, PartialEq)]
pub enum DescribeSigningJobError {
AccessDenied(String),
InternalServiceError(String),
ResourceNotFound(String),
}
impl DescribeSigningJobError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeSigningJobError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(DescribeSigningJobError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(DescribeSigningJobError::InternalServiceError(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(DescribeSigningJobError::ResourceNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for DescribeSigningJobError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
DescribeSigningJobError::AccessDenied(ref cause) => write!(f, "{}", cause),
DescribeSigningJobError::InternalServiceError(ref cause) => write!(f, "{}", cause),
DescribeSigningJobError::ResourceNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for DescribeSigningJobError {}
#[derive(Debug, PartialEq)]
pub enum GetSigningPlatformError {
AccessDenied(String),
InternalServiceError(String),
ResourceNotFound(String),
}
impl GetSigningPlatformError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetSigningPlatformError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(GetSigningPlatformError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(GetSigningPlatformError::InternalServiceError(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(GetSigningPlatformError::ResourceNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetSigningPlatformError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetSigningPlatformError::AccessDenied(ref cause) => write!(f, "{}", cause),
GetSigningPlatformError::InternalServiceError(ref cause) => write!(f, "{}", cause),
GetSigningPlatformError::ResourceNotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetSigningPlatformError {}
#[derive(Debug, PartialEq)]
pub enum GetSigningProfileError {
AccessDenied(String),
InternalServiceError(String),
ResourceNotFound(String),
Throttling(String),
}
impl GetSigningProfileError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetSigningProfileError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(GetSigningProfileError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(GetSigningProfileError::InternalServiceError(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(GetSigningProfileError::ResourceNotFound(err.msg))
}
"ThrottlingException" => {
return RusotoError::Service(GetSigningProfileError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for GetSigningProfileError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
GetSigningProfileError::AccessDenied(ref cause) => write!(f, "{}", cause),
GetSigningProfileError::InternalServiceError(ref cause) => write!(f, "{}", cause),
GetSigningProfileError::ResourceNotFound(ref cause) => write!(f, "{}", cause),
GetSigningProfileError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for GetSigningProfileError {}
#[derive(Debug, PartialEq)]
pub enum ListSigningJobsError {
AccessDenied(String),
InternalServiceError(String),
Throttling(String),
}
impl ListSigningJobsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListSigningJobsError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(ListSigningJobsError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(ListSigningJobsError::InternalServiceError(
err.msg,
))
}
"ThrottlingException" => {
return RusotoError::Service(ListSigningJobsError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListSigningJobsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListSigningJobsError::AccessDenied(ref cause) => write!(f, "{}", cause),
ListSigningJobsError::InternalServiceError(ref cause) => write!(f, "{}", cause),
ListSigningJobsError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListSigningJobsError {}
#[derive(Debug, PartialEq)]
pub enum ListSigningPlatformsError {
AccessDenied(String),
InternalServiceError(String),
Throttling(String),
}
impl ListSigningPlatformsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListSigningPlatformsError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(ListSigningPlatformsError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(ListSigningPlatformsError::InternalServiceError(
err.msg,
))
}
"ThrottlingException" => {
return RusotoError::Service(ListSigningPlatformsError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListSigningPlatformsError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListSigningPlatformsError::AccessDenied(ref cause) => write!(f, "{}", cause),
ListSigningPlatformsError::InternalServiceError(ref cause) => write!(f, "{}", cause),
ListSigningPlatformsError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListSigningPlatformsError {}
#[derive(Debug, PartialEq)]
pub enum ListSigningProfilesError {
AccessDenied(String),
InternalServiceError(String),
Throttling(String),
}
impl ListSigningProfilesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListSigningProfilesError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(ListSigningProfilesError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(ListSigningProfilesError::InternalServiceError(
err.msg,
))
}
"ThrottlingException" => {
return RusotoError::Service(ListSigningProfilesError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for ListSigningProfilesError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
ListSigningProfilesError::AccessDenied(ref cause) => write!(f, "{}", cause),
ListSigningProfilesError::InternalServiceError(ref cause) => write!(f, "{}", cause),
ListSigningProfilesError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListSigningProfilesError {}
#[derive(Debug, PartialEq)]
pub enum ListTagsForResourceError {
BadRequest(String),
InternalServiceError(String),
NotFound(String),
}
impl ListTagsForResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListTagsForResourceError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"BadRequestException" => {
return RusotoError::Service(ListTagsForResourceError::BadRequest(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(ListTagsForResourceError::InternalServiceError(
err.msg,
))
}
"NotFoundException" => {
return RusotoError::Service(ListTagsForResourceError::NotFound(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::BadRequest(ref cause) => write!(f, "{}", cause),
ListTagsForResourceError::InternalServiceError(ref cause) => write!(f, "{}", cause),
ListTagsForResourceError::NotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for ListTagsForResourceError {}
#[derive(Debug, PartialEq)]
pub enum PutSigningProfileError {
AccessDenied(String),
InternalServiceError(String),
ResourceNotFound(String),
Throttling(String),
}
impl PutSigningProfileError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutSigningProfileError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(PutSigningProfileError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(PutSigningProfileError::InternalServiceError(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(PutSigningProfileError::ResourceNotFound(err.msg))
}
"ThrottlingException" => {
return RusotoError::Service(PutSigningProfileError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for PutSigningProfileError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
PutSigningProfileError::AccessDenied(ref cause) => write!(f, "{}", cause),
PutSigningProfileError::InternalServiceError(ref cause) => write!(f, "{}", cause),
PutSigningProfileError::ResourceNotFound(ref cause) => write!(f, "{}", cause),
PutSigningProfileError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for PutSigningProfileError {}
#[derive(Debug, PartialEq)]
pub enum StartSigningJobError {
AccessDenied(String),
InternalServiceError(String),
ResourceNotFound(String),
Throttling(String),
}
impl StartSigningJobError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StartSigningJobError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"AccessDeniedException" => {
return RusotoError::Service(StartSigningJobError::AccessDenied(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(StartSigningJobError::InternalServiceError(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(StartSigningJobError::ResourceNotFound(err.msg))
}
"ThrottlingException" => {
return RusotoError::Service(StartSigningJobError::Throttling(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
RusotoError::Unknown(res)
}
}
impl fmt::Display for StartSigningJobError {
#[allow(unused_variables)]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
StartSigningJobError::AccessDenied(ref cause) => write!(f, "{}", cause),
StartSigningJobError::InternalServiceError(ref cause) => write!(f, "{}", cause),
StartSigningJobError::ResourceNotFound(ref cause) => write!(f, "{}", cause),
StartSigningJobError::Throttling(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for StartSigningJobError {}
#[derive(Debug, PartialEq)]
pub enum TagResourceError {
BadRequest(String),
InternalServiceError(String),
NotFound(String),
}
impl TagResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TagResourceError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"BadRequestException" => {
return RusotoError::Service(TagResourceError::BadRequest(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(TagResourceError::InternalServiceError(err.msg))
}
"NotFoundException" => {
return RusotoError::Service(TagResourceError::NotFound(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::BadRequest(ref cause) => write!(f, "{}", cause),
TagResourceError::InternalServiceError(ref cause) => write!(f, "{}", cause),
TagResourceError::NotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for TagResourceError {}
#[derive(Debug, PartialEq)]
pub enum UntagResourceError {
BadRequest(String),
InternalServiceError(String),
NotFound(String),
}
impl UntagResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UntagResourceError> {
if let Some(err) = proto::json::Error::parse_rest(&res) {
match err.typ.as_str() {
"BadRequestException" => {
return RusotoError::Service(UntagResourceError::BadRequest(err.msg))
}
"InternalServiceErrorException" => {
return RusotoError::Service(UntagResourceError::InternalServiceError(err.msg))
}
"NotFoundException" => {
return RusotoError::Service(UntagResourceError::NotFound(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::BadRequest(ref cause) => write!(f, "{}", cause),
UntagResourceError::InternalServiceError(ref cause) => write!(f, "{}", cause),
UntagResourceError::NotFound(ref cause) => write!(f, "{}", cause),
}
}
}
impl Error for UntagResourceError {}
#[async_trait]
pub trait Signer {
async fn cancel_signing_profile(
&self,
input: CancelSigningProfileRequest,
) -> Result<(), RusotoError<CancelSigningProfileError>>;
async fn describe_signing_job(
&self,
input: DescribeSigningJobRequest,
) -> Result<DescribeSigningJobResponse, RusotoError<DescribeSigningJobError>>;
async fn get_signing_platform(
&self,
input: GetSigningPlatformRequest,
) -> Result<GetSigningPlatformResponse, RusotoError<GetSigningPlatformError>>;
async fn get_signing_profile(
&self,
input: GetSigningProfileRequest,
) -> Result<GetSigningProfileResponse, RusotoError<GetSigningProfileError>>;
async fn list_signing_jobs(
&self,
input: ListSigningJobsRequest,
) -> Result<ListSigningJobsResponse, RusotoError<ListSigningJobsError>>;
async fn list_signing_platforms(
&self,
input: ListSigningPlatformsRequest,
) -> Result<ListSigningPlatformsResponse, RusotoError<ListSigningPlatformsError>>;
async fn list_signing_profiles(
&self,
input: ListSigningProfilesRequest,
) -> Result<ListSigningProfilesResponse, RusotoError<ListSigningProfilesError>>;
async fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> Result<ListTagsForResourceResponse, RusotoError<ListTagsForResourceError>>;
async fn put_signing_profile(
&self,
input: PutSigningProfileRequest,
) -> Result<PutSigningProfileResponse, RusotoError<PutSigningProfileError>>;
async fn start_signing_job(
&self,
input: StartSigningJobRequest,
) -> Result<StartSigningJobResponse, RusotoError<StartSigningJobError>>;
async fn tag_resource(
&self,
input: TagResourceRequest,
) -> Result<TagResourceResponse, RusotoError<TagResourceError>>;
async fn untag_resource(
&self,
input: UntagResourceRequest,
) -> Result<UntagResourceResponse, RusotoError<UntagResourceError>>;
}
#[derive(Clone)]
pub struct SignerClient {
client: Client,
region: region::Region,
}
impl SignerClient {
pub fn new(region: region::Region) -> SignerClient {
SignerClient {
client: Client::shared(),
region,
}
}
pub fn new_with<P, D>(
request_dispatcher: D,
credentials_provider: P,
region: region::Region,
) -> SignerClient
where
P: ProvideAwsCredentials + Send + Sync + 'static,
D: DispatchSignedRequest + Send + Sync + 'static,
{
SignerClient {
client: Client::new_with(credentials_provider, request_dispatcher),
region,
}
}
pub fn new_with_client(client: Client, region: region::Region) -> SignerClient {
SignerClient { client, region }
}
}
#[async_trait]
impl Signer for SignerClient {
async fn cancel_signing_profile(
&self,
input: CancelSigningProfileRequest,
) -> Result<(), RusotoError<CancelSigningProfileError>> {
let request_uri = format!(
"/signing-profiles/{profile_name}",
profile_name = input.profile_name
);
let mut request = SignedRequest::new("DELETE", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
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)?;
let result = ::std::mem::drop(response);
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(CancelSigningProfileError::from_response(response))
}
}
async fn describe_signing_job(
&self,
input: DescribeSigningJobRequest,
) -> Result<DescribeSigningJobResponse, RusotoError<DescribeSigningJobError>> {
let request_uri = format!("/signing-jobs/{job_id}", job_id = input.job_id);
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeSigningJobResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(DescribeSigningJobError::from_response(response))
}
}
async fn get_signing_platform(
&self,
input: GetSigningPlatformRequest,
) -> Result<GetSigningPlatformResponse, RusotoError<GetSigningPlatformError>> {
let request_uri = format!(
"/signing-platforms/{platform_id}",
platform_id = input.platform_id
);
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<GetSigningPlatformResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(GetSigningPlatformError::from_response(response))
}
}
async fn get_signing_profile(
&self,
input: GetSigningProfileRequest,
) -> Result<GetSigningProfileResponse, RusotoError<GetSigningProfileError>> {
let request_uri = format!(
"/signing-profiles/{profile_name}",
profile_name = input.profile_name
);
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<GetSigningProfileResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(GetSigningProfileError::from_response(response))
}
}
async fn list_signing_jobs(
&self,
input: ListSigningJobsRequest,
) -> Result<ListSigningJobsResponse, RusotoError<ListSigningJobsError>> {
let request_uri = "/signing-jobs";
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let mut params = Params::new();
if let Some(ref x) = input.max_results {
params.put("maxResults", x);
}
if let Some(ref x) = input.next_token {
params.put("nextToken", x);
}
if let Some(ref x) = input.platform_id {
params.put("platformId", x);
}
if let Some(ref x) = input.requested_by {
params.put("requestedBy", x);
}
if let Some(ref x) = input.status {
params.put("status", x);
}
request.set_params(params);
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<ListSigningJobsResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(ListSigningJobsError::from_response(response))
}
}
async fn list_signing_platforms(
&self,
input: ListSigningPlatformsRequest,
) -> Result<ListSigningPlatformsResponse, RusotoError<ListSigningPlatformsError>> {
let request_uri = "/signing-platforms";
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let mut params = Params::new();
if let Some(ref x) = input.category {
params.put("category", x);
}
if let Some(ref x) = input.max_results {
params.put("maxResults", x);
}
if let Some(ref x) = input.next_token {
params.put("nextToken", x);
}
if let Some(ref x) = input.partner {
params.put("partner", x);
}
if let Some(ref x) = input.target {
params.put("target", x);
}
request.set_params(params);
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<ListSigningPlatformsResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(ListSigningPlatformsError::from_response(response))
}
}
async fn list_signing_profiles(
&self,
input: ListSigningProfilesRequest,
) -> Result<ListSigningProfilesResponse, RusotoError<ListSigningProfilesError>> {
let request_uri = "/signing-profiles";
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let mut params = Params::new();
if let Some(ref x) = input.include_canceled {
params.put("includeCanceled", x);
}
if let Some(ref x) = input.max_results {
params.put("maxResults", x);
}
if let Some(ref x) = input.next_token {
params.put("nextToken", x);
}
request.set_params(params);
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<ListSigningProfilesResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(ListSigningProfilesError::from_response(response))
}
}
async fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> Result<ListTagsForResourceResponse, RusotoError<ListTagsForResourceError>> {
let request_uri = format!("/tags/{resource_arn}", resource_arn = input.resource_arn);
let mut request = SignedRequest::new("GET", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<ListTagsForResourceResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(ListTagsForResourceError::from_response(response))
}
}
async fn put_signing_profile(
&self,
input: PutSigningProfileRequest,
) -> Result<PutSigningProfileResponse, RusotoError<PutSigningProfileError>> {
let request_uri = format!(
"/signing-profiles/{profile_name}",
profile_name = input.profile_name
);
let mut request = SignedRequest::new("PUT", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let encoded = Some(serde_json::to_vec(&input).unwrap());
request.set_payload(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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<PutSigningProfileResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(PutSigningProfileError::from_response(response))
}
}
async fn start_signing_job(
&self,
input: StartSigningJobRequest,
) -> Result<StartSigningJobResponse, RusotoError<StartSigningJobError>> {
let request_uri = "/signing-jobs";
let mut request = SignedRequest::new("POST", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let encoded = Some(serde_json::to_vec(&input).unwrap());
request.set_payload(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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<StartSigningJobResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(StartSigningJobError::from_response(response))
}
}
async fn tag_resource(
&self,
input: TagResourceRequest,
) -> Result<TagResourceResponse, RusotoError<TagResourceError>> {
let request_uri = format!("/tags/{resource_arn}", resource_arn = input.resource_arn);
let mut request = SignedRequest::new("POST", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let encoded = Some(serde_json::to_vec(&input).unwrap());
request.set_payload(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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<TagResourceResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(TagResourceError::from_response(response))
}
}
async fn untag_resource(
&self,
input: UntagResourceRequest,
) -> Result<UntagResourceResponse, RusotoError<UntagResourceError>> {
let request_uri = format!("/tags/{resource_arn}", resource_arn = input.resource_arn);
let mut request = SignedRequest::new("DELETE", "signer", &self.region, &request_uri);
request.set_content_type("application/x-amz-json-1.1".to_owned());
let mut params = Params::new();
for item in input.tag_keys.iter() {
params.put("tagKeys", item);
}
request.set_params(params);
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)?;
let result = proto::json::ResponsePayload::new(&response)
.deserialize::<UntagResourceResponse, _>()?;
Ok(result)
} else {
let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
Err(UntagResourceError::from_response(response))
}
}
}