update nexus openapi (#126)

This commit is contained in:
Adam Leventhal 2022-07-14 20:59:36 -07:00 committed by GitHub
parent 897279e650
commit 9f6f940705
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 2530 additions and 181 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -930,10 +930,7 @@ pub mod types {
impl std::convert::TryFrom<&str> for Ipv4Net { impl std::convert::TryFrom<&str> for Ipv4Net {
type Error = &'static str; type Error = &'static str;
fn try_from(value: &str) -> Result<Self, Self::Error> { fn try_from(value: &str) -> Result<Self, Self::Error> {
if value.len() > 18usize { if regress :: Regex :: new ("^(10\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/([8-9]|1[0-9]|2[0-9]|3[0-2])|172\\.(1[6-9]|2[0-9]|3[0-1])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/(1[2-9]|2[0-9]|3[0-2])|192\\.168\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/(1[6-9]|2[0-9]|3[0-2]))$") . unwrap () . find (value) . is_none () { return Err ("doesn't match pattern \"^(10\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/([8-9]|1[0-9]|2[0-9]|3[0-2])|172\\.(1[6-9]|2[0-9]|3[0-1])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/(1[2-9]|2[0-9]|3[0-2])|192\\.168\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/(1[6-9]|2[0-9]|3[0-2]))$\"") ; }
return Err("longer than 18 characters");
}
if regress :: Regex :: new ("(^(10\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9]\\.){2}(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[0-9]|2[0-8]|[8-9]))$)|(^(172\\.16\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[2-9]|2[0-8]))$)|(^(192\\.168\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[6-9]|2[0-8]))$)") . unwrap () . find (value) . is_none () { return Err ("doesn't match pattern \"(^(10\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9]\\.){2}(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[0-9]|2[0-8]|[8-9]))$)|(^(172\\.16\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[2-9]|2[0-8]))$)|(^(192\\.168\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[6-9]|2[0-8]))$)\"") ; }
Ok(Self(value.to_string())) Ok(Self(value.to_string()))
} }
} }
@ -977,10 +974,7 @@ pub mod types {
impl std::convert::TryFrom<&str> for Ipv6Net { impl std::convert::TryFrom<&str> for Ipv6Net {
type Error = &'static str; type Error = &'static str;
fn try_from(value: &str) -> Result<Self, Self::Error> { fn try_from(value: &str) -> Result<Self, Self::Error> {
if value.len() > 43usize { if regress :: Regex :: new ("^([fF][dD])[0-9a-fA-F]{2}:(([0-9a-fA-F]{1,4}:){6}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,6}:)\\/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$") . unwrap () . find (value) . is_none () { return Err ("doesn't match pattern \"^([fF][dD])[0-9a-fA-F]{2}:(([0-9a-fA-F]{1,4}:){6}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,6}:)\\/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$\"") ; }
return Err("longer than 43 characters");
}
if regress :: Regex :: new ("^(fd|FD)[0-9a-fA-F]{2}:((([0-9a-fA-F]{1,4}:){6}[0-9a-fA-F]{1,4})|(([0-9a-fA-F]{1,4}:){1,6}:))/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$") . unwrap () . find (value) . is_none () { return Err ("doesn't match pattern \"^(fd|FD)[0-9a-fA-F]{2}:((([0-9a-fA-F]{1,4}:){6}[0-9a-fA-F]{1,4})|(([0-9a-fA-F]{1,4}:){1,6}:))/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$\"") ; }
Ok(Self(value.to_string())) Ok(Self(value.to_string()))
} }
} }
@ -1124,12 +1118,12 @@ pub mod types {
if value.len() > 63usize { if value.len() > 63usize {
return Err("longer than 63 characters"); return Err("longer than 63 characters");
} }
if regress::Regex::new("[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])") if regress::Regex::new("^[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])$")
.unwrap() .unwrap()
.find(value) .find(value)
.is_none() .is_none()
{ {
return Err("doesn't match pattern \"[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])\""); return Err("doesn't match pattern \"^[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])$\"");
} }
Ok(Self(value.to_string())) Ok(Self(value.to_string()))
} }
@ -1292,24 +1286,6 @@ pub mod types {
pub name: Option<Name>, pub name: Option<Name>,
} }
#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
pub enum Null {}
impl ToString for Null {
fn to_string(&self) -> String {
match *self {}
}
}
impl std::str::FromStr for Null {
type Err = &'static str;
fn from_str(value: &str) -> Result<Self, Self::Err> {
match value {
_ => Err("invalid value"),
}
}
}
///Client view of an [`Organization`] ///Client view of an [`Organization`]
#[derive(Clone, Debug, Deserialize, Serialize)] #[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Organization { pub struct Organization {
@ -1828,12 +1804,6 @@ pub mod types {
pub technical_contact_email: String, pub technical_contact_email: String,
} }
///Client view of currently authed user.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct SessionUser {
pub id: uuid::Uuid,
}
///Client view of a ['Silo'] ///Client view of a ['Silo']
#[derive(Clone, Debug, Deserialize, Serialize)] #[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Silo { pub struct Silo {
@ -2649,6 +2619,330 @@ impl Client {
} }
impl Client { impl Client {
///Get a disk by id
///
///Sends a `GET` request to `/by-id/disks/{id}`
pub async fn disk_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Disk>, Error<types::Error>> {
let url = format!(
"{}/by-id/disks/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a global image by id
///
///Sends a `GET` request to `/by-id/global-images/{id}`
pub async fn image_global_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::GlobalImage>, Error<types::Error>> {
let url = format!(
"{}/by-id/global-images/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Fetch an image by id
///
///Sends a `GET` request to `/by-id/images/{id}`
pub async fn image_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Image>, Error<types::Error>> {
let url = format!(
"{}/by-id/images/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get an instance by id
///
///Sends a `GET` request to `/by-id/instances/{id}`
pub async fn instance_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Instance>, Error<types::Error>> {
let url = format!(
"{}/by-id/instances/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get an instance's network interface by id
///
///Sends a `GET` request to `/by-id/network-interfaces/{id}`
pub async fn instance_network_interface_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::NetworkInterface>, Error<types::Error>> {
let url = format!(
"{}/by-id/network-interfaces/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get an organization by id
///
///Sends a `GET` request to `/by-id/organizations/{id}`
pub async fn organization_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Organization>, Error<types::Error>> {
let url = format!(
"{}/by-id/organizations/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a project by id
///
///Sends a `GET` request to `/by-id/projects/{id}`
pub async fn project_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Project>, Error<types::Error>> {
let url = format!(
"{}/by-id/projects/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a snapshot by id
///
///Sends a `GET` request to `/by-id/snapshots/{id}`
pub async fn snapshot_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Snapshot>, Error<types::Error>> {
let url = format!(
"{}/by-id/snapshots/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a vpc router route by id
///
///Sends a `GET` request to `/by-id/vpc-router-routes/{id}`
pub async fn vpc_router_route_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::RouterRoute>, Error<types::Error>> {
let url = format!(
"{}/by-id/vpc-router-routes/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a VPC Router by id
///
///Sends a `GET` request to `/by-id/vpc-routers/{id}`
pub async fn vpc_router_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::VpcRouter>, Error<types::Error>> {
let url = format!(
"{}/by-id/vpc-routers/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a VPC subnet by id
///
///Sends a `GET` request to `/by-id/vpc-subnets/{id}`
pub async fn vpc_subnet_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::VpcSubnet>, Error<types::Error>> {
let url = format!(
"{}/by-id/vpc-subnets/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Get a VPC by id
///
///Sends a `GET` request to `/by-id/vpcs/{id}`
pub async fn vpc_view_by_id<'a>(
&'a self,
id: &'a uuid::Uuid,
) -> Result<ResponseValue<types::Vpc>, Error<types::Error>> {
let url = format!(
"{}/by-id/vpcs/{}",
self.baseurl,
encode_path(&id.to_string()),
);
let request = self.client.get(url).build()?;
let result = self.client.execute(request).await;
let response = result?;
match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await,
400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
500u16..=599u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?,
)),
_ => Err(Error::UnexpectedResponse(response)),
}
}
///Start an OAuth 2.0 Device Authorization Grant ///Start an OAuth 2.0 Device Authorization Grant
/// ///
///This endpoint is designed to be accessed from an *unauthenticated* API ///This endpoint is designed to be accessed from an *unauthenticated* API
@ -2681,13 +2975,13 @@ impl Client {
pub async fn device_auth_confirm<'a>( pub async fn device_auth_confirm<'a>(
&'a self, &'a self,
body: &'a types::DeviceAuthVerify, body: &'a types::DeviceAuthVerify,
) -> Result<ResponseValue<Option<types::Null>>, Error<types::Error>> { ) -> Result<ResponseValue<()>, Error<types::Error>> {
let url = format!("{}/device/confirm", self.baseurl,); let url = format!("{}/device/confirm", self.baseurl,);
let request = self.client.post(url).json(&body).build()?; let request = self.client.post(url).json(&body).build()?;
let result = self.client.execute(request).await; let result = self.client.execute(request).await;
let response = result?; let response = result?;
match response.status().as_u16() { match response.status().as_u16() {
200u16 => ResponseValue::from_response(response).await, 204u16 => Ok(ResponseValue::empty(response)),
400u16..=499u16 => Err(Error::ErrorResponse( 400u16..=499u16 => Err(Error::ErrorResponse(
ResponseValue::from_response(response).await?, ResponseValue::from_response(response).await?,
)), )),
@ -4194,7 +4488,7 @@ impl Client {
} }
} }
///Fetch a single disk in a project ///Get a single disk in a project
/// ///
///Sends a `GET` request to ///Sends a `GET` request to
/// `/organizations/{organization_name}/projects/{project_name}/disks/ /// `/organizations/{organization_name}/projects/{project_name}/disks/
@ -7137,7 +7431,7 @@ impl Client {
///Sends a `GET` request to `/session/me` ///Sends a `GET` request to `/session/me`
pub async fn session_me<'a>( pub async fn session_me<'a>(
&'a self, &'a self,
) -> Result<ResponseValue<types::SessionUser>, Error<types::Error>> { ) -> Result<ResponseValue<types::User>, Error<types::Error>> {
let url = format!("{}/session/me", self.baseurl,); let url = format!("{}/session/me", self.baseurl,);
let request = self.client.get(url).build()?; let request = self.client.get(url).build()?;
let result = self.client.execute(request).await; let result = self.client.execute(request).await;
@ -7484,7 +7778,7 @@ impl Client {
///List Silo identity providers ///List Silo identity providers
/// ///
///Sends a `GET` request to `/silos/{silo_name}/identity_providers` ///Sends a `GET` request to `/silos/{silo_name}/identity-providers`
/// ///
///Arguments: ///Arguments:
/// - `silo_name`: The silo's unique name. /// - `silo_name`: The silo's unique name.
@ -7500,7 +7794,7 @@ impl Client {
sort_by: Option<types::NameSortMode>, sort_by: Option<types::NameSortMode>,
) -> Result<ResponseValue<types::IdentityProviderResultsPage>, Error<types::Error>> { ) -> Result<ResponseValue<types::IdentityProviderResultsPage>, Error<types::Error>> {
let url = format!( let url = format!(
"{}/silos/{}/identity_providers", "{}/silos/{}/identity-providers",
self.baseurl, self.baseurl,
encode_path(&silo_name.to_string()), encode_path(&silo_name.to_string()),
); );
@ -7534,7 +7828,7 @@ impl Client {
///List Silo identity providers as a Stream ///List Silo identity providers as a Stream
/// ///
///Sends repeated `GET` requests to `/silos/{silo_name}/identity_providers` ///Sends repeated `GET` requests to `/silos/{silo_name}/identity-providers`
/// until there are no more results. /// until there are no more results.
/// ///
///Arguments: ///Arguments:
@ -7641,7 +7935,7 @@ impl Client {
///Create a new SAML identity provider for a silo ///Create a new SAML identity provider for a silo
/// ///
///Sends a `POST` request to `/silos/{silo_name}/saml_identity_providers` ///Sends a `POST` request to `/silos/{silo_name}/saml-identity-providers`
/// ///
///Arguments: ///Arguments:
/// - `silo_name`: The silo's unique name. /// - `silo_name`: The silo's unique name.
@ -7652,7 +7946,7 @@ impl Client {
body: &'a types::SamlIdentityProviderCreate, body: &'a types::SamlIdentityProviderCreate,
) -> Result<ResponseValue<types::SamlIdentityProvider>, Error<types::Error>> { ) -> Result<ResponseValue<types::SamlIdentityProvider>, Error<types::Error>> {
let url = format!( let url = format!(
"{}/silos/{}/saml_identity_providers", "{}/silos/{}/saml-identity-providers",
self.baseurl, self.baseurl,
encode_path(&silo_name.to_string()), encode_path(&silo_name.to_string()),
); );
@ -7674,7 +7968,7 @@ impl Client {
///GET a silo's SAML identity provider ///GET a silo's SAML identity provider
/// ///
///Sends a `GET` request to ///Sends a `GET` request to
/// `/silos/{silo_name}/saml_identity_providers/{provider_name}` /// `/silos/{silo_name}/saml-identity-providers/{provider_name}`
/// ///
///Arguments: ///Arguments:
/// - `silo_name`: The silo's unique name. /// - `silo_name`: The silo's unique name.
@ -7685,7 +7979,7 @@ impl Client {
provider_name: &'a types::Name, provider_name: &'a types::Name,
) -> Result<ResponseValue<types::SamlIdentityProvider>, Error<types::Error>> { ) -> Result<ResponseValue<types::SamlIdentityProvider>, Error<types::Error>> {
let url = format!( let url = format!(
"{}/silos/{}/saml_identity_providers/{}", "{}/silos/{}/saml-identity-providers/{}",
self.baseurl, self.baseurl,
encode_path(&silo_name.to_string()), encode_path(&silo_name.to_string()),
encode_path(&provider_name.to_string()), encode_path(&provider_name.to_string()),

View File

@ -10,6 +10,474 @@
"version": "0.0.1" "version": "0.0.1"
}, },
"paths": { "paths": {
"/by-id/disks/{id}": {
"get": {
"tags": [
"disks"
],
"summary": "Get a disk by id",
"operationId": "disk_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Disk"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/global-images/{id}": {
"get": {
"tags": [
"images:global"
],
"summary": "Get a global image by id.",
"operationId": "image_global_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GlobalImage"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/images/{id}": {
"get": {
"tags": [
"images"
],
"summary": "Fetch an image by id",
"operationId": "image_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Image"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/instances/{id}": {
"get": {
"tags": [
"instances"
],
"summary": "Get an instance by id.",
"operationId": "instance_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Instance"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/network-interfaces/{id}": {
"get": {
"tags": [
"instances"
],
"summary": "Get an instance's network interface by id.",
"operationId": "instance_network_interface_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NetworkInterface"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/organizations/{id}": {
"get": {
"tags": [
"organizations"
],
"summary": "Get an organization by id",
"operationId": "organization_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Organization"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/projects/{id}": {
"get": {
"tags": [
"projects"
],
"summary": "Get a project by id",
"operationId": "project_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/snapshots/{id}": {
"get": {
"tags": [
"snapshots"
],
"summary": "Get a snapshot by id.",
"operationId": "snapshot_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Snapshot"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/vpc-router-routes/{id}": {
"get": {
"tags": [
"vpcs"
],
"summary": "Get a vpc router route by id",
"operationId": "vpc_router_route_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RouterRoute"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/vpc-routers/{id}": {
"get": {
"tags": [
"vpcs"
],
"summary": "Get a VPC Router by id",
"operationId": "vpc_router_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VpcRouter"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/vpc-subnets/{id}": {
"get": {
"tags": [
"vpcs"
],
"summary": "Get a VPC subnet by id.",
"operationId": "vpc_subnet_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VpcSubnet"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/by-id/vpcs/{id}": {
"get": {
"tags": [
"vpcs"
],
"summary": "Get a VPC by id.",
"operationId": "vpc_view_by_id",
"parameters": [
{
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
},
"style": "simple"
}
],
"responses": {
"200": {
"description": "successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Vpc"
}
}
}
},
"4XX": {
"$ref": "#/components/responses/Error"
},
"5XX": {
"$ref": "#/components/responses/Error"
}
}
}
},
"/device/auth": { "/device/auth": {
"post": { "post": {
"tags": [ "tags": [
@ -59,19 +527,8 @@
"required": true "required": true
}, },
"responses": { "responses": {
"200": { "204": {
"description": "successful operation", "description": "resource updated"
"content": {
"application/json": {
"schema": {
"title": "Null",
"type": "string",
"enum": [
null
]
}
}
}
}, },
"4XX": { "4XX": {
"$ref": "#/components/responses/Error" "$ref": "#/components/responses/Error"
@ -1674,7 +2131,7 @@
"tags": [ "tags": [
"disks" "disks"
], ],
"summary": "Fetch a single disk in a project.", "summary": "Get a single disk in a project.",
"operationId": "disk_view", "operationId": "disk_view",
"parameters": [ "parameters": [
{ {
@ -5356,7 +5813,7 @@
"content": { "content": {
"application/json": { "application/json": {
"schema": { "schema": {
"$ref": "#/components/schemas/SessionUser" "$ref": "#/components/schemas/User"
} }
} }
} }
@ -5695,7 +6152,7 @@
} }
} }
}, },
"/silos/{silo_name}/identity_providers": { "/silos/{silo_name}/identity-providers": {
"get": { "get": {
"tags": [ "tags": [
"silos" "silos"
@ -5851,7 +6308,7 @@
} }
} }
}, },
"/silos/{silo_name}/saml_identity_providers": { "/silos/{silo_name}/saml-identity-providers": {
"post": { "post": {
"tags": [ "tags": [
"silos" "silos"
@ -5900,7 +6357,7 @@
} }
} }
}, },
"/silos/{silo_name}/saml_identity_providers/{provider_name}": { "/silos/{silo_name}/saml-identity-providers/{provider_name}": {
"get": { "get": {
"tags": [ "tags": [
"silos" "silos"
@ -7768,8 +8225,7 @@
"title": "An IPv4 subnet", "title": "An IPv4 subnet",
"description": "An IPv4 subnet, including prefix and subnet mask", "description": "An IPv4 subnet, including prefix and subnet mask",
"type": "string", "type": "string",
"pattern": "(^(10\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9]\\.){2}(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[0-9]|2[0-8]|[8-9]))$)|(^(172\\.16\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[2-9]|2[0-8]))$)|(^(192\\.168\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])\\.(25[0-5]|[1-2][0-4][0-9]|[1-9][0-9]|[0-9])/(1[6-9]|2[0-8]))$)", "pattern": "^(10\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/([8-9]|1[0-9]|2[0-9]|3[0-2])|172\\.(1[6-9]|2[0-9]|3[0-1])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/(1[2-9]|2[0-9]|3[0-2])|192\\.168\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\/(1[6-9]|2[0-9]|3[0-2]))$"
"maxLength": 18
}, },
"Ipv4Range": { "Ipv4Range": {
"description": "A non-decreasing IPv4 address range, inclusive of both ends.\n\nThe first address must be less than or equal to the last address.", "description": "A non-decreasing IPv4 address range, inclusive of both ends.\n\nThe first address must be less than or equal to the last address.",
@ -7794,8 +8250,7 @@
"title": "An IPv6 subnet", "title": "An IPv6 subnet",
"description": "An IPv6 subnet, including prefix and subnet mask", "description": "An IPv6 subnet, including prefix and subnet mask",
"type": "string", "type": "string",
"pattern": "^(fd|FD)[0-9a-fA-F]{2}:((([0-9a-fA-F]{1,4}:){6}[0-9a-fA-F]{1,4})|(([0-9a-fA-F]{1,4}:){1,6}:))/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$", "pattern": "^([fF][dD])[0-9a-fA-F]{2}:(([0-9a-fA-F]{1,4}:){6}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,6}:)\\/(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-6])$"
"maxLength": 43
}, },
"Ipv6Range": { "Ipv6Range": {
"description": "A non-decreasing IPv6 address range, inclusive of both ends.\n\nThe first address must be less than or equal to the last address.", "description": "A non-decreasing IPv6 address range, inclusive of both ends.\n\nThe first address must be less than or equal to the last address.",
@ -7834,10 +8289,10 @@
"maxLength": 17 "maxLength": 17
}, },
"Name": { "Name": {
"title": "A name used in the API", "title": "A name unique within the parent collection",
"description": "Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.", "description": "Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'.",
"type": "string", "type": "string",
"pattern": "[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])", "pattern": "^[a-z](|[a-zA-Z0-9-]*[a-zA-Z0-9])$",
"maxLength": 63 "maxLength": 63
}, },
"NetworkInterface": { "NetworkInterface": {
@ -9015,19 +9470,6 @@
"technical_contact_email" "technical_contact_email"
] ]
}, },
"SessionUser": {
"description": "Client view of currently authed user.",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"id"
]
},
"Silo": { "Silo": {
"description": "Client view of a ['Silo']", "description": "Client view of a ['Silo']",
"type": "object", "type": "object",
@ -10642,4 +11084,4 @@
} }
} }
] ]
} }