#![allow(clippy::all)]
#![allow(missing_docs)]
#![allow(unused_imports)]
#![allow(unused_mut)]
use reqwest::Method;
use serde::Serialize;
use crate::error::{ApiError, Result};
use crate::http::HttpInner;
use crate::models;
#[derive(Debug, Clone)]
pub struct MembersClient {
inner: HttpInner,
}
impl MembersClient {
pub fn new(inner: HttpInner) -> Self {
Self { inner }
}
pub async fn add_members_of_group(
&self,
group: String,
username: String,
body: &crate::models::UpdateMembersRequest,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", group, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute_with_body::<serde_json::Value, _>(Method::POST, url, body)
.await
}
pub async fn add_members_of_mission(
&self,
mission: String,
username: String,
body: &crate::models::UpdateMembersRequest,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", mission, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute_with_body::<serde_json::Value, _>(Method::POST, url, body)
.await
}
pub async fn add_members_of_registry(
&self,
registry: String,
username: String,
body: &crate::models::UpdateMembersRequest,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", registry, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute_with_body::<serde_json::Value, _>(Method::POST, url, body)
.await
}
pub async fn add_members_of_repo(
&self,
repo: String,
username: String,
body: &crate::models::UpdateMembersRequest,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", repo, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute_with_body::<serde_json::Value, _>(Method::POST, url, body)
.await
}
pub async fn delete_members_of_group(
&self,
group: String,
username: String,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", group, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute::<serde_json::Value>(Method::DELETE, url)
.await
}
pub async fn delete_members_of_repo(
&self,
repo: String,
username: String,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", repo, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute::<serde_json::Value>(Method::DELETE, url)
.await
}
pub async fn delete_outside_collaborators(
&self,
slug: String,
username: String,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/outside-collaborators/{}", slug, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute::<serde_json::Value>(Method::DELETE, url)
.await
}
pub async fn get_member_access_level_of_group(
&self,
group: String,
query: &GetMemberAccessLevelOfGroupQuery,
) -> Result<crate::models::MemberAccessLevelInSlugUnion> {
let path = format!("/{}/-/members/access-level", group);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.include_inherit {
pairs.append_pair("include_inherit", &v.to_string());
}
drop(pairs);
}
self.inner
.execute::<crate::models::MemberAccessLevelInSlugUnion>(Method::GET, url)
.await
}
pub async fn get_member_access_level_of_repo(
&self,
repo: String,
query: &GetMemberAccessLevelOfRepoQuery,
) -> Result<crate::models::MemberAccessLevelInSlugUnion> {
let path = format!("/{}/-/members/access-level", repo);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.include_inherit {
pairs.append_pair("include_inherit", &v.to_string());
}
drop(pairs);
}
self.inner
.execute::<crate::models::MemberAccessLevelInSlugUnion>(Method::GET, url)
.await
}
pub async fn list_all_members(
&self,
slug: String,
query: &ListAllMembersQuery,
) -> Result<Vec<crate::models::UsersWithAccessLevelInSlug>> {
let path = format!("/{}/-/list-members", slug);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.page {
pairs.append_pair("page", &v.to_string());
}
if let Some(v) = query.page_size {
pairs.append_pair("page_size", &v.to_string());
}
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
if let Some(ref v) = query.search {
pairs.append_pair("search", v);
}
if let Some(ref v) = query.names {
pairs.append_pair("names", v);
}
if let Some(ref v) = query.order_by {
pairs.append_pair("order_by", v);
}
if let Some(v) = query.desc {
pairs.append_pair("desc", &v.to_string());
}
drop(pairs);
}
self.inner
.execute::<Vec<crate::models::UsersWithAccessLevelInSlug>>(Method::GET, url)
.await
}
pub async fn list_inherit_members_of_group(
&self,
group: String,
query: &ListInheritMembersOfGroupQuery,
) -> Result<Vec<crate::models::ListInheritMembers>> {
let path = format!("/{}/-/inherit-members", group);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(ref v) = query.search {
pairs.append_pair("search", v);
}
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
if let Some(v) = query.page {
pairs.append_pair("page", &v.to_string());
}
if let Some(v) = query.page_size {
pairs.append_pair("page_size", &v.to_string());
}
drop(pairs);
}
self.inner
.execute::<Vec<crate::models::ListInheritMembers>>(Method::GET, url)
.await
}
pub async fn list_inherit_members_of_repo(
&self,
repo: String,
query: &ListInheritMembersOfRepoQuery,
) -> Result<Vec<crate::models::ListInheritMembers>> {
let path = format!("/{}/-/inherit-members", repo);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(ref v) = query.search {
pairs.append_pair("search", v);
}
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
if let Some(v) = query.page {
pairs.append_pair("page", &v.to_string());
}
if let Some(v) = query.page_size {
pairs.append_pair("page_size", &v.to_string());
}
drop(pairs);
}
self.inner
.execute::<Vec<crate::models::ListInheritMembers>>(Method::GET, url)
.await
}
pub async fn list_member_access_level_of_group(
&self,
group: String,
username: String,
) -> Result<Vec<crate::models::MemberAccessLevel>> {
let path = format!("/{}/-/members/{}/access-level", group, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute::<Vec<crate::models::MemberAccessLevel>>(Method::GET, url)
.await
}
pub async fn list_member_access_level_of_repo(
&self,
repo: String,
username: String,
) -> Result<Vec<crate::models::MemberAccessLevel>> {
let path = format!("/{}/-/members/{}/access-level", repo, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute::<Vec<crate::models::MemberAccessLevel>>(Method::GET, url)
.await
}
pub async fn list_members_of_group(
&self,
group: String,
query: &ListMembersOfGroupQuery,
) -> Result<Vec<crate::models::UsersWithAccessLevelInSlug>> {
let path = format!("/{}/-/members", group);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.page {
pairs.append_pair("page", &v.to_string());
}
if let Some(v) = query.page_size {
pairs.append_pair("page_size", &v.to_string());
}
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
if let Some(ref v) = query.search {
pairs.append_pair("search", v);
}
drop(pairs);
}
self.inner
.execute::<Vec<crate::models::UsersWithAccessLevelInSlug>>(Method::GET, url)
.await
}
pub async fn list_members_of_repo(
&self,
repo: String,
query: &ListMembersOfRepoQuery,
) -> Result<Vec<crate::models::UsersWithAccessLevelInSlug>> {
let path = format!("/{}/-/members", repo);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.page {
pairs.append_pair("page", &v.to_string());
}
if let Some(v) = query.page_size {
pairs.append_pair("page_size", &v.to_string());
}
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
if let Some(ref v) = query.search {
pairs.append_pair("search", v);
}
drop(pairs);
}
self.inner
.execute::<Vec<crate::models::UsersWithAccessLevelInSlug>>(Method::GET, url)
.await
}
pub async fn list_outside_collaborators(
&self,
slug: String,
query: &ListOutsideCollaboratorsQuery,
) -> Result<Vec<crate::models::OutsideCollaboratorInRepo>> {
let path = format!("/{}/-/outside-collaborators", slug);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.page {
pairs.append_pair("page", &v.to_string());
}
if let Some(v) = query.page_size {
pairs.append_pair("page_size", &v.to_string());
}
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
if let Some(ref v) = query.search {
pairs.append_pair("search", v);
}
drop(pairs);
}
self.inner
.execute::<Vec<crate::models::OutsideCollaboratorInRepo>>(Method::GET, url)
.await
}
pub async fn update_members_of_group(
&self,
group: String,
username: String,
body: &crate::models::UpdateMembersRequest,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", group, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute_with_body::<serde_json::Value, _>(Method::PUT, url, body)
.await
}
pub async fn update_members_of_repo(
&self,
repo: String,
username: String,
body: &crate::models::UpdateMembersRequest,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/members/{}", repo, username);
let mut url = self.inner.url(&path)?;
self.inner
.execute_with_body::<serde_json::Value, _>(Method::PUT, url, body)
.await
}
pub async fn update_outside_collaborators(
&self,
slug: String,
username: String,
query: &UpdateOutsideCollaboratorsQuery,
) -> Result<serde_json::Value> {
let path = format!("/{}/-/outside-collaborators/{}", slug, username);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(ref v) = query.role {
pairs.append_pair("role", v);
}
drop(pairs);
}
self.inner
.execute::<serde_json::Value>(Method::PUT, url)
.await
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct GetMemberAccessLevelOfGroupQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_inherit: Option<bool>,
}
impl GetMemberAccessLevelOfGroupQuery {
pub fn new() -> Self {
Self::default()
}
pub fn include_inherit(mut self, v: impl Into<bool>) -> Self {
self.include_inherit = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct GetMemberAccessLevelOfRepoQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub include_inherit: Option<bool>,
}
impl GetMemberAccessLevelOfRepoQuery {
pub fn new() -> Self {
Self::default()
}
pub fn include_inherit(mut self, v: impl Into<bool>) -> Self {
self.include_inherit = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct ListAllMembersQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub names: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order_by: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub desc: Option<bool>,
}
impl ListAllMembersQuery {
pub fn new() -> Self {
Self::default()
}
pub fn page(mut self, v: impl Into<i64>) -> Self {
self.page = Some(v.into());
self
}
pub fn page_size(mut self, v: impl Into<i64>) -> Self {
self.page_size = Some(v.into());
self
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
pub fn search(mut self, v: impl Into<String>) -> Self {
self.search = Some(v.into());
self
}
pub fn names(mut self, v: impl Into<String>) -> Self {
self.names = Some(v.into());
self
}
pub fn order_by(mut self, v: impl Into<String>) -> Self {
self.order_by = Some(v.into());
self
}
pub fn desc(mut self, v: impl Into<bool>) -> Self {
self.desc = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct ListInheritMembersOfGroupQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
}
impl ListInheritMembersOfGroupQuery {
pub fn new() -> Self {
Self::default()
}
pub fn search(mut self, v: impl Into<String>) -> Self {
self.search = Some(v.into());
self
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
pub fn page(mut self, v: impl Into<i64>) -> Self {
self.page = Some(v.into());
self
}
pub fn page_size(mut self, v: impl Into<i64>) -> Self {
self.page_size = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct ListInheritMembersOfRepoQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
}
impl ListInheritMembersOfRepoQuery {
pub fn new() -> Self {
Self::default()
}
pub fn search(mut self, v: impl Into<String>) -> Self {
self.search = Some(v.into());
self
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
pub fn page(mut self, v: impl Into<i64>) -> Self {
self.page = Some(v.into());
self
}
pub fn page_size(mut self, v: impl Into<i64>) -> Self {
self.page_size = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct ListMembersOfGroupQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search: Option<String>,
}
impl ListMembersOfGroupQuery {
pub fn new() -> Self {
Self::default()
}
pub fn page(mut self, v: impl Into<i64>) -> Self {
self.page = Some(v.into());
self
}
pub fn page_size(mut self, v: impl Into<i64>) -> Self {
self.page_size = Some(v.into());
self
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
pub fn search(mut self, v: impl Into<String>) -> Self {
self.search = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct ListMembersOfRepoQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search: Option<String>,
}
impl ListMembersOfRepoQuery {
pub fn new() -> Self {
Self::default()
}
pub fn page(mut self, v: impl Into<i64>) -> Self {
self.page = Some(v.into());
self
}
pub fn page_size(mut self, v: impl Into<i64>) -> Self {
self.page_size = Some(v.into());
self
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
pub fn search(mut self, v: impl Into<String>) -> Self {
self.search = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct ListOutsideCollaboratorsQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search: Option<String>,
}
impl ListOutsideCollaboratorsQuery {
pub fn new() -> Self {
Self::default()
}
pub fn page(mut self, v: impl Into<i64>) -> Self {
self.page = Some(v.into());
self
}
pub fn page_size(mut self, v: impl Into<i64>) -> Self {
self.page_size = Some(v.into());
self
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
pub fn search(mut self, v: impl Into<String>) -> Self {
self.search = Some(v.into());
self
}
}
#[derive(Debug, Clone, Default, Serialize)]
#[non_exhaustive]
pub struct UpdateOutsideCollaboratorsQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
}
impl UpdateOutsideCollaboratorsQuery {
pub fn new() -> Self {
Self::default()
}
pub fn role(mut self, v: impl Into<String>) -> Self {
self.role = Some(v.into());
self
}
}