use crate::service::vpc;
use crate::volcengine::error::error;
use crate::volcengine::request::operation;
use crate::volcengine::request::operation_config;
use crate::volcengine::request::request;
use crate::volcengine::request::request::RequestVolcengine;
use crate::volcengine::request::response::ApiResponse;
use volcengine_sdk_protobuf::protobuf::vpc_vpc;
pub struct ApiDescribeVpcsVpc;
impl ApiDescribeVpcsVpc {
pub async fn new_describe_vpcs(
&self,
vpc: &vpc::Vpc,
request: vpc_vpc::DescribeVpcsReq,
) -> Result<vpc_vpc::DescribeVpcsResp, error::Error> {
self.new_describe_vpcs_request(vpc, request).await
}
async fn new_describe_vpcs_request(
&self,
vpc: &vpc::Vpc,
request: vpc_vpc::DescribeVpcsReq,
) -> Result<vpc_vpc::DescribeVpcsResp, error::Error> {
let request_operation = operation::Operation::builder()
.with_operation_name(
operation_config::operation_name::OperationName::VpcOperation(
operation_config::operation_name_vpc::OperationNameVpc::DescribeVpcs,
),
)
.with_operation_http_method(
operation_config::operation_http_method::OperationHttpMethod::GET,
)
.with_operation_http_path(
operation_config::operation_http_path::OperationHttpPath::Default,
)
.build()?;
let response = request::Request::builder()
.with_client_info(&vpc.client.client_info)
.with_config(&vpc.client.config)
.with_handles(&vpc.client.handles)
.with_operation(&request_operation)
.build()?
.send(request)
.await?;
let mut resp = volcengine_sdk_protobuf::protobuf::vpc_vpc::DescribeVpcsResp::default();
resp.to_struct(response).await?;
return Ok(resp);
}
}