$(function () {
  var url = window.location.search.match(/url=([^&]+)/);
  if (url && url.length > 1) {
    url = decodeURIComponent(url[1]);
  } else {
    url = "../docs.json";
  }

  // Pre load translate...
  if(window.SwaggerTranslator) {
    window.SwaggerTranslator.translate();
  }
  window.swaggerUi = new SwaggerUi({
    spec:
{"swagger":"2.0","info":{"title":"DTR 2.2.0 API Documentation","version":"1.0.0"},"tags":[{"name":"accounts","description":"Accounts"},{"name":"admin","description":"Admin"},{"name":"config","description":"Config"},{"name":"jobs","description":"Jobs"},{"name":"workers","description":"Workers"},{"name":"accounts","description":"Accounts"},{"name":"action_configs","description":"ActionConfigs"},{"name":"crons","description":"Crons"},{"name":"events","description":"Events"},{"name":"index","description":"Index"},{"name":"jobs","description":"Jobs"},{"name":"meta","description":"Admin"},{"name":"nautilus","description":"Docker Security Scanner"},{"name":"repositories","description":"Repositories"},{"name":"repositoryNamespaces","description":"Repository Namespaces"}],"paths":{"/enzi/v0/accounts":{"post":{"tags":["accounts"],"operationId":"CreateAccount","summary":"Create a user or organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccount"}}],"responses":{"201":{"description":"Success, account created.","schema":{"$ref":"#/definitions/responses.Account"}}}},"get":{"tags":["accounts"],"operationId":"ListAccounts","summary":"List users and organizations","description":"Lists accounts in ascending order by name.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Filter accounts by type or attribute - either 'users', 'orgs', 'admins', 'non-admins', or 'all' (default).","name":"filter","required":false,"type":"string","default":"all"},{"in":"query","description":"Only return accounts with a name greater than or equal to this name.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of accounts per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}}}}},"/enzi/v0/accounts/{accountNameOrID}":{"get":{"tags":["accounts"],"operationId":"GetAccount","summary":"Details for a user or organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account to fetch","name":"accountNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}}}},"patch":{"tags":["accounts"],"operationId":"UpdateAccount","summary":"Update details for a user or organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account to update","name":"accountNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccount"}}],"responses":{"200":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}}}},"delete":{"tags":["accounts"],"operationId":"DeleteAccount","summary":"Delete a user or organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account to delete","name":"accountNameOrID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, account deleted."}}}},"/enzi/v0/accounts/{userNameOrID}/changePassword":{"post":{"tags":["accounts"],"operationId":"ChangePassword","summary":"Change a user's password","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of username whose password is to be changed","name":"userNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.ChangePassword"}}],"responses":{"200":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/enzi/v0/accounts/{userNameOrID}/organizations":{"get":{"tags":["accounts"],"operationId":"ListUserOrganizations","summary":"List a user's organization memberships","description":"Lists organization memberships in ascending order by organization ID.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of user to whose organizations will be listed","name":"userNameOrID","required":true,"type":"string"},{"in":"query","description":"Only return memberships with an org ID greater than or equal to this ID.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of organizations per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}}}}},"/enzi/v0/accounts/{orgNameOrID}/members":{"get":{"tags":["accounts"],"operationId":"ListOrganizationMembers","summary":"List members of an organization","description":"Lists memberships in ascending order by user ID.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization whose members will be listed","name":"orgNameOrID","required":true,"type":"string"},{"in":"query","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","required":false,"type":"string","default":"all"},{"in":"query","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of members per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/enzi/v0/accounts/{orgNameOrID}/adminMemberSyncConfig":{"get":{"tags":["accounts"],"operationId":"GetOrganizationAdminSyncConfig","summary":"Get options for syncing admin members of an organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization whose LDAP sync options to be retrieved","name":"orgNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"tags":["accounts"],"operationId":"SetOrganizationAdminSyncConfig","summary":"Set options for syncing admin members of an organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization whose LDAP sync options to set","name":"orgNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/enzi/v0/accounts/{orgNameOrID}/members/{memberNameOrID}":{"put":{"tags":["accounts"],"operationId":"AddOrganizationMember","summary":"Add a member to an organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the membership will be added","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user which will be added as a member","name":"memberNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"patch":{"tags":["accounts"],"operationId":"UpdateOrganizationMembership","summary":"Update details of a user's membership in an organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the membership will be updated","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user whose membership will be updated","name":"memberNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, membership updated.","schema":{"$ref":"#/definitions/responses.Member"}}}},"get":{"tags":["accounts"],"operationId":"GetOrganizationMembership","summary":"Details of a user's membership in an organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the membership will be retrieved","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user whose membership will be retrieved","name":"memberNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"tags":["accounts"],"operationId":"DeleteOrganizationMember","summary":"Remove a member from an organization","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the membership will be deleted","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user whose membership will be deleted","name":"memberNameOrID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, membership removed."}}}},"/enzi/v0/accounts/{orgNameOrID}/teams":{"post":{"tags":["accounts"],"operationId":"CreateTeam","summary":"Create a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team will be created","name":"orgNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateTeam"}}],"responses":{"201":{"description":"Success, team created.","schema":{"$ref":"#/definitions/responses.Team"}}}},"get":{"tags":["accounts"],"operationId":"ListTeams","summary":"List teams in an organization","description":"Lists teams in ascending order by name.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization whose teams will be listed","name":"orgNameOrID","required":true,"type":"string"},{"in":"query","description":"Only return teams with a name greater than or equal to this name.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of teams per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}}}}},"/enzi/v0/accounts/{orgNameOrID}/teams/{teamNameOrID}":{"get":{"tags":["accounts"],"operationId":"GetTeam","summary":"Details for a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team will be retrieved","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of team which will be retrieved","name":"teamNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}}}},"patch":{"tags":["accounts"],"operationId":"UpdateTeam","summary":"Update details for a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team will be updated","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of team which will be updated","name":"teamNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateTeam"}}],"responses":{"200":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}}}},"delete":{"tags":["accounts"],"operationId":"DeleteTeam","summary":"Delete a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of team which will be deleted","name":"teamNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of organization in which the team will be deleted","name":"orgNameOrID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, team deleted."}}}},"/enzi/v0/accounts/{orgNameOrID}/members/{memberNameOrID}/teams":{"get":{"tags":["accounts"],"operationId":"ListOrganizationMemberTeams","summary":"List a user's team membership in an organization","description":"Lists team memberships in ascending order by team ID.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the member's team memberships will be listed","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user whose memberships will be listed","name":"memberNameOrID","required":true,"type":"string"},{"in":"query","description":"Only return team memberships with a team ID greater than or equal to this ID.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of team memberships per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}}}}},"/enzi/v0/accounts/{orgNameOrID}/teams/{teamNameOrID}/members":{"get":{"tags":["accounts"],"operationId":"ListTeamMembers","summary":"List members of a team","description":"Lists memberships in ascending order by user ID.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team's members will be listed'","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of team whose members will be listed","name":"teamNameOrID","required":true,"type":"string"},{"in":"query","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","required":false,"type":"string","default":"all"},{"in":"query","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of members per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/enzi/v0/accounts/{orgNameOrID}/teams/{teamNameOrID}/memberSyncConfig":{"get":{"tags":["accounts"],"operationId":"GetTeamMemberSyncConfig","summary":"Get options for syncing members of a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of team whose LDAP sync config will be retrieved","name":"teamNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"tags":["accounts"],"operationId":"SetTeamMemberSyncConfig","summary":"Set options for syncing members of a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of team whose LDAP sync config will be set","name":"teamNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/enzi/v0/accounts/{orgNameOrID}/teams/{teamNameOrID}/members/{memberNameOrID}":{"put":{"tags":["accounts"],"operationId":"AddTeamMember","summary":"Add a member to a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team membership will be added","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of the team in which the membership will be added","name":"teamNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user which will be added as a member","name":"memberNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"patch":{"tags":["accounts"],"operationId":"UpdateTeamMembership","summary":"Update details of a user's membership in a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team membership will be updated","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of the team in which the membership will be updated","name":"teamNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user whose team membership will be updated","name":"memberNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, team membership updated.","schema":{"$ref":"#/definitions/responses.Member"}}}},"get":{"tags":["accounts"],"operationId":"GetTeamMembership","summary":"Details of a user's membership in a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of organization in which the team membership will be retrieved","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of the team in which the membership will be retrieved","name":"teamNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of user whose team membership will be retrieved","name":"memberNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, team membership retuned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"tags":["accounts"],"operationId":"DeleteTeamMember","summary":"Remove a member from a team","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of user whose team membership will be deleted","name":"memberNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of organization in which the team membership will be deleted","name":"orgNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of the team in which the membership will be deleted","name":"teamNameOrID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, team membership deleted."}}}},"/enzi/v0/accounts/{accountNameOrID}/services":{"post":{"tags":["accounts"],"operationId":"CreateService","summary":"Create a Service","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or ID of account which will own the service","name":"accountNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateService"}}],"responses":{"201":{"description":"Success, service created.","schema":{"$ref":"#/definitions/responses.Service"}}}},"get":{"tags":["accounts"],"operationId":"ListServices","summary":"List services owned by an account","description":"Lists services in ascending order by name.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account whose owned services will be listed","name":"accountNameOrID","required":true,"type":"string"},{"in":"query","description":"Only return services with a name greater than or equal to this name.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of services per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of services listed.","schema":{"$ref":"#/definitions/responses.Services"}}}}},"/enzi/v0/accounts/{accountNameOrID}/services/{serviceNameOrID}":{"get":{"tags":["accounts"],"operationId":"GetService","summary":"Details for a service","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account which owns the service","name":"accountNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of service which will be retrieved","name":"serviceNameOrID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, service returned.","schema":{"$ref":"#/definitions/responses.Service"}}}},"patch":{"tags":["accounts"],"operationId":"UpdateService","summary":"Update details for a service","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account which owns the service","name":"accountNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of service which will be updated","name":"serviceNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateService"}}],"responses":{"200":{"description":"Success, service updated.","schema":{"$ref":"#/definitions/responses.Service"}}}},"delete":{"tags":["accounts"],"operationId":"DeleteService","summary":"Delete a service","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of which owns the service","name":"accountNameOrID","required":true,"type":"string"},{"in":"path","description":"Name or id of service which will be deleted","name":"serviceNameOrID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, service deleted."}}}},"/enzi/v0/accounts/{accountNameOrID}/publicKeys":{"post":{"tags":["accounts"],"operationId":"CreateAccountPublicKey","summary":"Create a public key for an account","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of account to fetch","name":"accountNameOrID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccountPublicKey"}}],"responses":{"201":{"description":"Success, account public key created.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}},"get":{"tags":["accounts"],"operationId":"ListAccountPublicKeys","summary":"List accountPublicKeys in an account","description":"Lists accountPublicKeys in ascending order by key ID.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of the account whose accountPublicKeys will be listed","name":"accountNameOrID","required":true,"type":"string"},{"in":"query","description":"Only return accountPublicKeys with a key ID greater than or equal to this name.","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of accountPublicKeys per page of results.","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}}}}},"/enzi/v0/accounts/{accountNameOrID}/publicKeys/{keyID}":{"patch":{"tags":["accounts"],"operationId":"UpdateAccountPublicKey","summary":"Update details for an account public key","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of the account","name":"accountNameOrID","required":true,"type":"string"},{"in":"path","description":"Public key id of the account","name":"keyID","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccountPublicKey"}}],"responses":{"200":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}},"delete":{"tags":["accounts"],"operationId":"DeleteAccountPublicKey","summary":"Remove an account public key","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"Name or id of the account","name":"accountNameOrID","required":true,"type":"string"},{"in":"path","description":"Public key id of the account","name":"keyID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, acount public key removed."}}}},"/enzi/v0/admin/importAccounts":{"post":{"tags":["admin"],"operationId":"ImportAccounts","summary":"Admin-only endpoint to import many users and organizations. This endpoint allows adding managed users with password hashes and is used for our migrations processes.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.ImportAccounts"}}],"responses":{"201":{"description":"Success, accounts created."}}}},"/enzi/v0/config/auth":{"get":{"tags":["config"],"operationId":"GetAuthConfig","summary":"Retrieve current system auth configuration","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, current auth config returned.","schema":{"$ref":"#/definitions/responses.AuthConfig"}}}},"put":{"tags":["config"],"operationId":"SetAuthConfig","summary":"Set system auth configuration","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.AuthConfig"}}],"responses":{"200":{"description":"Success, current auth config set.","schema":{"$ref":"#/definitions/responses.AuthConfig"}}}}},"/enzi/v0/config/auth/ldap":{"get":{"tags":["config"],"operationId":"GetLDAPSettings","summary":"Retrieve current system LDAP configuration","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, current LDAP config returned.","schema":{"$ref":"#/definitions/responses.LDAPSettings"}}}},"put":{"tags":["config"],"operationId":"SetLDAPSettings","summary":"Set system LDAP configuration","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.LDAPSettings"}}],"responses":{"200":{"description":"Success, current LDAP config set.","schema":{"$ref":"#/definitions/responses.LDAPSettings"}}}}},"/enzi/v0/config/auth/ldap/tryLogin":{"post":{"tags":["config"],"operationId":"LDAPTryLogin","summary":"Attempt to login with the given LDAP settings","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.TryLdapLogin"}}],"responses":{"200":{"description":"Success, authenticated user returned.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/enzi/v0/config/openid":{"get":{"tags":["config"],"operationId":"GetOpenIDConfig","summary":"Retrieve current system OpenID configuration","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, current OpenID config returned.","schema":{"$ref":"#/definitions/responses.OpenIDConfig"}}}},"put":{"tags":["config"],"operationId":"SetOpenIDConfig","summary":"Set system OpenID configuration","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.OpenIDConfig"}}],"responses":{"200":{"description":"Success, current OpenID config set.","schema":{"$ref":"#/definitions/responses.OpenIDConfig"}}}}},"/enzi/v0/config/accounts":{"get":{"tags":["config"],"operationId":"GetAccountsConfig","summary":"Retrieve current system accounts configuration","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, current accounts config returned.","schema":{"$ref":"#/definitions/responses.AccountsConfig"}}}},"put":{"tags":["config"],"operationId":"SetAccountsConfig","summary":"Set system accounts configuration","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.AccountsConfig"}}],"responses":{"200":{"description":"Success, current accounts config set.","schema":{"$ref":"#/definitions/responses.AccountsConfig"}}}}},"/enzi/v0/jobs":{"post":{"tags":["jobs"],"operationId":"CreateJob","summary":"Schedule a job to be run immediately","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/responses.Job"}}}},"get":{"tags":["jobs"],"operationId":"ListJobs","summary":"List all jobs ordered by most recently scheduled","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Filter jobs by action.","name":"action","required":false,"type":"string","default":"any"},{"in":"query","description":"Filter jobs by worker ID.","name":"worker","required":false,"type":"string","default":"any"},{"in":"query","description":"Return most recently scheduled jobs starting from this offset index.","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of jobs per page of results.","name":"limit","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/responses.Jobs"}}}}},"/enzi/v0/jobs/{jobID}":{"get":{"tags":["jobs"],"operationId":"GetJob","summary":"Get info about the job with the given ID","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job to fetch","name":"jobID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/responses.Job"}}}},"delete":{"tags":["jobs"],"operationId":"DeleteJob","summary":"Signal this job's worker to cancel and delete the job","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job to delete","name":"jobID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/enzi/v0/jobs/{jobID}/cancel":{"post":{"tags":["jobs"],"operationId":"CancelJob","summary":"Signal this job's worker to cancel the job","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job to cancel","name":"jobID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/enzi/v0/jobs/{jobID}/logs":{"get":{"tags":["jobs"],"operationId":"GetJobLogs","summary":"Retrieve logs for this job from its worker","produces":["text/plain","application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job whose logs to retrieve","name":"jobID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, job's logs returned."}}}},"/enzi/v0/workers":{"get":{"tags":["workers"],"operationId":"ListWorkers","summary":"List all workers ordered by ID","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/responses.Workers"}}}}},"/enzi/v0/workers/{workerID}/ping":{"get":{"tags":["workers"],"operationId":"PingWorker","summary":"Check to make sure that a job's worker is responsive","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of worker to ping","name":"workerID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, job's worker is responsive."}}}},"/enzi/v0/workers/{workerID}":{"delete":{"tags":["workers"],"operationId":"DeleteWorker","summary":"Delete a worker","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of worker to delete","name":"workerID","required":true,"type":"string"},{"in":"query","description":"Force removal of the worker record. For use when the worker has been manually shutdown.","name":"force","required":false,"type":"boolean","default":false}],"responses":{"204":{"description":"Success, worker has been deleted."}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"tags":["accounts"],"operationId":"ListTeamRepoAccess","summary":"List repository access grants for a team","description":"\n*Authorization:* Client must be authenticated as a user who owns the organization the team is in or be a member of that team.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"query","description":"The ID of the first record on the page","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"tags":["accounts"],"operationId":"GetUserRepoAccess","summary":"Check a user's access to a repository","description":"\n\t*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"},{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/action_configs":{"post":{"tags":["action_configs"],"operationId":"func1","summary":"Configure actions","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"get":{"tags":["action_configs"],"operationId":"func1","summary":"List all action configs","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}}},"/api/v0/action_configs/{action}":{"get":{"tags":["action_configs"],"operationId":"func1","summary":"Get info about the actionConfig with the given action","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"name of action to fetch the config for","name":"action","required":true,"type":"string"}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"tags":["action_configs"],"operationId":"func1","summary":"Delete the action config. The defaults will be used.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"the name of the action to delete the config for","name":"action","required":true,"type":"string"}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/crons":{"post":{"tags":["crons"],"operationId":"func1","summary":"Create / update a periodic task","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"get":{"tags":["crons"],"operationId":"func1","summary":"List all crons","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}}},"/api/v0/crons/{action}":{"get":{"tags":["crons"],"operationId":"func1","summary":"Get info about the cron with the given action","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"action of the cron to fetch","name":"action","required":true,"type":"string"}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"tags":["crons"],"operationId":"func1","summary":"Delete the cron. Jobs created from it will not be canceled.","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"action of cron to delete","name":"action","required":true,"type":"string"}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events":{"get":{"tags":["events"],"operationId":"GetEvents","summary":"Get Events","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"The ID of the first record on the page","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10},{"in":"query","name":"publishedBefore","required":false,"type":"string","format":"date-time"},{"in":"query","name":"publishedAfter","required":false,"type":"time"},{"in":"query","description":"UUID of the user or organization that performed the event","name":"actorId","required":false,"type":"string"},{"in":"query","description":"Type of events to filter by","name":"eventType","required":false,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/index/dockersearch":{"get":{"tags":["index"],"operationId":"Docker Search","summary":"Search Docker repositories","description":"\nThis is used for the Docker CLI's docker search command. Repository results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Search query","name":"query","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/index/autocomplete":{"get":{"tags":["index"],"operationId":"Autocomplete","summary":"Autocompletion for repositories and/or accounts","description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Autocomplete query","name":"query","required":true,"type":"string"},{"in":"query","description":"Whether to include repositories in the response","name":"includeRepositories","required":false,"type":"boolean","default":true},{"in":"query","description":"Whether to include accounts in the response","name":"includeAccounts","required":false,"type":"boolean","default":true},{"in":"query","description":"Exact repository namespace to limit results to.","name":"namespace","required":false,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/jobs":{"post":{"tags":["jobs"],"operationId":"func1","summary":"Schedule a job to be run immediately","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/responses.Job"}}}},"get":{"tags":["jobs"],"operationId":"func1","summary":"List all jobs ordered by most recently scheduled","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Filter jobs by action.","name":"action","required":false,"type":"string","default":"any"},{"in":"query","description":"Filter jobs by worker ID.","name":"worker","required":false,"type":"string","default":"any"},{"in":"query","description":"Show only jobs that are running.","name":"running","required":false,"type":"string","default":"any"},{"in":"query","description":"Return most recently scheduled jobs starting from this offset index.","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of jobs per page of results.","name":"limit","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/responses.Jobs"}}}}},"/api/v0/jobs/{jobID}":{"get":{"tags":["jobs"],"operationId":"func1","summary":"Get info about the job with the given ID","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job to fetch","name":"jobID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/responses.Job"}}}},"delete":{"tags":["jobs"],"operationId":"func1","summary":"Signal this job's worker to cancel and delete the job","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job to delete","name":"jobID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"tags":["jobs"],"operationId":"func1","summary":"Signal this job's worker to cancel the job","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job to cancel","name":"jobID","required":true,"type":"string"}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"tags":["jobs"],"operationId":"func1","summary":"Retrieve logs for this job from its worker","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"ID of job whose logs to retrieve","name":"jobID","required":true,"type":"string"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"$ref":"#/definitions/tmpresponses.JobLogs"}}}}},"/api/v0/meta/settings":{"post":{"tags":["meta"],"operationId":"UpdateSettings","summary":"Update settings","description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"get":{"tags":["meta"],"operationId":"GetSettings","summary":"Get settings","description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/meta/cluster_status":{"get":{"tags":["meta"],"operationId":"GetClusterStatus","summary":"Get cluster status","description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/repositories/{namespace}/{reponame}/{tag}":{"get":{"tags":["nautilus"],"operationId":"GetSummaryFromImage","summary":"Get the summary info on a namespace/repo:tag","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"tag name","name":"tag","required":true,"type":"string"},{"in":"query","description":"Whether to include detailed summary results","name":"detailed","required":false,"type":"boolean","default":true}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"$ref":"#/definitions/schema.TagScanSummary"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/scan":{"post":{"tags":["nautilus"],"operationId":"ScanAllLayers","summary":"Do a scan or a scan/check of all layers","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Whether to do a hard scan or to recheck the boms only.","name":"hard","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/layer/{layerid}":{"get":{"tags":["nautilus"],"operationId":"GetLayerFromSha","summary":"Get the layer info from the given sha","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"layer id","name":"layerid","required":true,"type":"string"}],"responses":{"200":{"description":"Successfully retrieved layer info.","schema":{"$ref":"#/definitions/schema.Layer"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/scan/{namespace}/{reponame}/{tag}":{"post":{"tags":["nautilus"],"operationId":"ScanImage","summary":"Do a scan or a scan/check of given image","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"tag name","name":"tag","required":true,"type":"string"},{"in":"query","description":"Whether to do a hard scan or to recheck the boms only.","name":"hard","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"get":{"tags":["nautilus"],"operationId":"GetScanStatus","summary":"Get the status of a scan or a scan/check of given image","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"tag name","name":"tag","required":true,"type":"string"}],"responses":{"200":{"description":"Successfully retrieved scan status for image.","schema":{"$ref":"#/definitions/schema.ScanStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/scan/init":{"put":{"tags":["nautilus"],"operationId":"InitDatabase","summary":"Initialize the vulnerability Database","produces":["application/json"],"consumes":["application/x-www-form-urlencoded","multipart/form-data","application/json"],"parameters":[{"in":"formData","description":"Upload file to init database","name":"file","required":false,"type":"file"},{"in":"query","description":"Init or update vuln db in online mode.","name":"online","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Successfully started to initialize database"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/scan/update":{"patch":{"tags":["nautilus"],"operationId":"UpdateVulnDB","summary":"Update the vulnerability database for security scanning","produces":["application/json"],"consumes":["application/x-www-form-urlencoded","multipart/form-data","application/json"],"parameters":[{"in":"formData","description":"Upload file to init database","name":"file","required":false,"type":"file"},{"in":"query","description":"Init or update vuln db in online mode.","name":"online","required":false,"type":"boolean","default":false}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/nautilus/db":{"get":{"tags":["nautilus"],"operationId":"GetNautilusDBStatus","summary":"Get the status and version of the nautilus DB","produces":["application/json"],"consumes":["application/json"],"responses":{"200":{"description":"Successfully retrieved DB status","schema":{"type":"array","items":{"$ref":"#/definitions/schema.NautilusDBStatus"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories":{"get":{"tags":["repositories"],"operationId":"ListRepositories","summary":"List all repositories","description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"The ID of the first record on the page","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}":{"get":{"tags":["repositories"],"operationId":"ListNamespaceRepositories","summary":"List repositories in a namespace","description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"query","description":"The ID of the first record on the page","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"post":{"tags":["repositories"],"operationId":"CreateRepository","summary":"Create repository","description":"\n*Authorization:* Client must be authenticated as a user who has admin access to the\nrepository namespace (i.e., user owns the repo or is a member of a team with\n\"admin\" level access to the organization's namespace of repositories).\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRepo"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"REPOSITORY_EXISTS: A repository with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"tags":["repositories"],"operationId":"GetRepository","summary":"View details of a repository","description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repository"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"tags":["repositories"],"operationId":"PatchRepository","summary":"Update details of a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\nNote that a repository cannot be renamed this way.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"INVALID_REPOSITORY_VISIBILITY: The visibility value of the repository is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"delete":{"tags":["repositories"],"operationId":"DeleteRepository","summary":"Remove a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"204":{"description":"success or repository does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/scan/toggle":{"post":{"tags":["repositories"],"operationId":"ToggleAllRepositoriesScanOnPush","summary":"Toggles scan on push for all repositories","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"tags":["repositories"],"operationId":"ListRepoTeamAccess","summary":"List teams granted access to an organization-owned repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"query","description":"The ID of the first record on the page","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"tags":["repositories"],"operationId":"GrantRepoTeamAccess","summary":"Set a team's access to an orgnization-owned repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.RepoTeamAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"delete":{"tags":["repositories"],"operationId":"RevokeRepoTeamAccess","summary":"Revoke a team's acccess to an organization-owned repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"204":{"description":"success or the team is not in the access list or there is no such team in the organization"},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"tags":["repositories"],"operationId":"ListRepoTags","summary":"List the available tags for a repository","description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/trust":{"get":{"tags":["repositories"],"operationId":"GetTrustForTag","summary":"Get Notary trust info about a specific tag","description":"\nRepository results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"tag name","name":"tag","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Tag"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"delete":{"tags":["repositories"],"operationId":"DeleteRepoTag","summary":"Delete a tag for a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"tag name","name":"tag","required":true,"type":"string"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"tags":["repositories"],"operationId":"ListRepoManifests","summary":"List the available manifests for a repository","description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"tags":["repositories"],"operationId":"DeleteRepoManifest","summary":"Delete a manifest for a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"digest or tag for an image manifest","name":"reference","required":true,"type":"string"}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_MANIFEST: A manifest with the given reference does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"tags":["repositoryNamespaces"],"operationId":"ListRepoNamespaceTeamAccess","summary":"List teams granted access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has ‘admin’ level access to the namespace.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"query","description":"The ID of the first record on the page","name":"start","required":false,"type":"string"},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"tags":["repositoryNamespaces"],"operationId":"GetRepoNamespaceTeamAccess","summary":"Get a team's granted access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to\nthe namespace, is a system admin, member of the organization's \"owners\" team, or is a\nmember of the team in question.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"put":{"tags":["repositoryNamespaces"],"operationId":"GrantRepoNamespaceTeamAccess","summary":"Set a team's access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has ‘admin’ level access to the namespace.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the team does not belong to the owning organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"delete":{"tags":["repositoryNamespaces"],"operationId":"RevokeRepoNamespaceTeamAccess","summary":"Revoke a team's access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has ‘admin’ level access to the namespace.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace/owner of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"204":{"description":"success or the team does not exist in the access list or there is no such team in the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}}},"definitions":{"responses.Account":{"required":["name","id","fullName","isOrg"],"properties":{"name":{"type":"string","description":"Name of the account"},"id":{"type":"string","description":"ID of the account"},"fullName":{"type":"string","description":"Full Name of the account"},"isOrg":{"type":"boolean","description":"Whether the account is an organization (or user)"},"isAdmin":{"type":"boolean","description":"Whether the user is a system admin (users only)"},"isActive":{"type":"boolean","description":"Whether the user is active and can login (users only)"}}},"forms.CreateAccount":{"required":["name","fullName"],"properties":{"name":{"type":"string","description":"Name of account"},"fullName":{"type":"string","description":"Full name of account"},"isOrg":{"type":"boolean","description":"Whether the account is an organization"},"isAdmin":{"type":"boolean","description":"Whether the user is an admin (users only)"},"isActive":{"type":"boolean","description":"Whether the user is active and can login (users only)"},"password":{"type":"string","description":"Password for the user (users only)"}}},"responses.Accounts":{"required":["accounts"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}}}},"forms.UpdateAccount":{"properties":{"fullName":{"type":"string","description":"Full name of account, unchanged if null or omitted"},"isAdmin":{"type":"boolean","description":"Whether the user is an admin (users only), unchanged if null or omitted"},"isActive":{"type":"boolean","description":"Whether the user is active and can login (users only), unchanged if null or omitted"}}},"forms.ChangePassword":{"required":["oldPassword","newPassword"],"properties":{"oldPassword":{"type":"string","description":"User's current password. Required if the client is changing their own password. May be omitted if an admin is changing another user's password"},"newPassword":{"type":"string","description":"User's new password"}}},"responses.MemberOrgs":{"required":["memberOrgs"],"properties":{"memberOrgs":{"type":"array","items":{"$ref":"#/definitions/responses.MemberOrg"}}}},"responses.MemberOrg":{"required":["org","isAdmin"],"properties":{"org":{"$ref":"#/definitions/responses.Account","description":"The organization which the user is a member of"},"isAdmin":{"type":"boolean","description":"Whether the user is an admin of the organization"}}},"responses.Members":{"required":["members"],"properties":{"members":{"type":"array","items":{"$ref":"#/definitions/responses.Member"}}}},"responses.Member":{"required":["member","isAdmin"],"properties":{"member":{"$ref":"#/definitions/responses.Account","description":"The user which is a member of the organization or team"},"isAdmin":{"type":"boolean","description":"Whether the member is an admin of the organization or team"}}},"responses.MemberSyncOpts":{"required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"type":"boolean","description":"Whether to enable LDAP syncing. If false, all other fields are ignored"},"selectGroupMembers":{"type":"boolean","description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)"},"groupDN":{"type":"string","description":"The distinguished name of the LDAP group. Applicable only if selectGroupMembers is true, ignored otherwise"},"groupMemberAttr":{"type":"string","description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Applicable only if selectGroupMembers is true, ignored otherwise"},"searchBaseDN":{"type":"string","description":"The distinguished name of the element from which the LDAP server will search for users. Applicable only if selectGroupMembers is false, ignored otherwise"},"searchScopeSubtree":{"type":"boolean","description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Applicable only if selectGroupMembers is false, ignored otherwise"},"searchFilter":{"type":"string","description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank"}}},"forms.MemberSyncOpts":{"required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"type":"boolean","description":"Whether to enable LDAP syncing. If false, all other fields are ignored"},"selectGroupMembers":{"type":"boolean","description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)"},"groupDN":{"type":"string","description":"The distinguished name of the LDAP group. Required if selectGroupMembers is true, ignored otherwise"},"groupMemberAttr":{"type":"string","description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Required if selectGroupMembers is true, ignored otherwise"},"searchBaseDN":{"type":"string","description":"The distinguished name of the element from which the LDAP server will search for users. Required if selectGroupMembers is false, ignored otherwise"},"searchScopeSubtree":{"type":"boolean","description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Required if selectGroupMembers is false, ignored otherwise"},"searchFilter":{"type":"string","description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank"}}},"forms.SetMembership":{"properties":{"isAdmin":{"type":"boolean","description":"Whether the member should be an admin of the organization or team (default false), unchanged if nil or omitted"}}},"responses.Team":{"required":["id","clientUserIsMember"],"properties":{"id":{"type":"string"},"clientUserIsMember":{"type":"boolean"}}},"forms.CreateTeam":{"required":["name"],"properties":{"name":{"type":"string","description":"Name of the team"},"description":{"type":"string","description":"Description of the team"}}},"responses.Teams":{"required":["teams"],"properties":{"teams":{"type":"array","items":{"$ref":"#/definitions/responses.Team"}}}},"forms.UpdateTeam":{"properties":{"name":{"type":"string","description":"Name of the team, unchanged if nil or omitted"},"description":{"type":"string","description":"Description of the team, unchanged if nil or omitted"}}},"responses.MemberTeams":{"required":["memberTeams"],"properties":{"memberTeams":{"type":"array","items":{"$ref":"#/definitions/responses.MemberTeam"}}}},"responses.MemberTeam":{"required":["team","isAdmin"],"properties":{"team":{"$ref":"#/definitions/responses.Team","description":"The team which the user is a member of"},"isAdmin":{"type":"boolean","description":"Whether the user is an admin of the team"}}},"responses.Service":{"required":["id","ownerID","name","description","url","privileged","redirectURIs","jwksURIs","providerIdentities","caBundle"],"properties":{"id":{"type":"string","description":"uniqely identifies a service"},"ownerID":{"type":"string","description":"ID of the account which owns and manages this service"},"name":{"type":"string","description":"simple name of this service; unique to the owning account"},"description":{"type":"string","description":"short description of the service"},"url":{"type":"string","description":"web address for the service"},"privileged":{"type":"boolean","description":"whether this service has implicit authorization to all accounts"},"redirectURIs":{"type":"array","items":{"type":"string"},"description":"a list of URLs which serve as callbacks from Oauth authorization requests"},"jwksURIs":{"type":"array","items":{"type":"string"},"description":"a list of URLs for the service's JSON Web Key set, the set of public keys it used to sign authentication tokens"},"providerIdentities":{"type":"array","items":{"type":"string"},"description":"A list of identifiers that this service will use as the 'aud' (Audience) for its authentication tokens (the tokens must have at least one 'aud' value that matches). Identity tokens issued by the provider will also use the first matching 'aud' (Audience) value in the 'iss' (Issuer) field"},"caBundle":{"type":"string","description":"PEM certificate bundle used to authenticate the JWKs URL endpoint"}}},"forms.CreateService":{"required":["name","description","url","privileged","redirectURIs","jwksURIs","providerIdentities","caBundle"],"properties":{"name":{"type":"string","description":"simple name of this service; unique to the owning account"},"description":{"type":"string","description":"short description of the service"},"url":{"type":"string","description":"web address for the service; must use 'https'"},"privileged":{"type":"boolean","description":"whether this service has implicit authorization to all accounts; can only be set by a system admin"},"redirectURIs":{"type":"array","items":{"type":"string"},"description":"a list of URLs which serve as callbacks from Oauth authorization requests; all URLs must use 'https'"},"jwksURIs":{"type":"array","items":{"type":"string"},"description":"a list of URLs for the service's JSON Web Key set, the set of public keys it used to sign authentication tokens. At least 1 and no more than 7 must be specified. URLs must use 'https'. Provide a caBundle value if they cannot be verified by a public certificate authority"},"providerIdentities":{"type":"array","items":{"type":"string"},"description":"A list of identifiers that this service will use as the 'aud' (Audience) for its authentication tokens (the tokens must have at least one 'aud' value that matches). Identity tokens issued by the provider will also use the first matching 'aud' (Audience) value in the 'iss' (Issuer) field. A single address (hostname[:port]) for the auth provider is recommended, but up to 7 values may be specified to allow services which use multiple addresses (IPs or DNS names). Each may be no longer than 128 characters. At least one must be specified"},"caBundle":{"type":"string","description":"PEM certificate bundle used to verify the JWKs URL endpoints"}}},"responses.Services":{"required":["services"],"properties":{"services":{"type":"array","items":{"$ref":"#/definitions/responses.Service"}}}},"forms.UpdateService":{"properties":{"description":{"type":"string","description":"short description of the service"},"url":{"type":"string","description":"web address for the service; must use 'https'"},"privileged":{"type":"boolean","description":"whether this service has implicit authorization to all accounts; can only be set by a system admin"},"redirectURIs":{"type":"array","items":{"type":"string"},"description":"a list of URLs which serve as callbacks from Oauth authorization requests; all URLs must use 'https'"},"jwksURIs":{"type":"array","items":{"type":"string"},"description":"a list of URLs for the service's JSON Web Key set, the set of public keys it used to sign authentication tokens; must use 'https'"},"providerIdentities":{"type":"array","items":{"type":"string"},"description":"A list of identifiers that this service will use as the 'aud' (Audience) for its authentication tokens (the tokens must have at least one 'aud' value that matches). Identity tokens issued by the provider will also use the first matching 'aud' (Audience) value in the 'iss' (Issuer) field. A single address (hostname[:port]) for the auth provider is recommended, but up to 7 values may be specified to allow services which use multiple addresses (IPs or DNS names). Each may be no longer than 128 characters. At least one must be specified"},"caBundle":{"type":"string","description":"PEM certificate bundle used to authenticate the JWKs URL endpoint"}}},"responses.AccountPublicKey":{"required":["id","accountID","publicKey","label"],"properties":{"id":{"type":"string","description":"the hash of the public key's DER bytes"},"accountID":{"type":"string","description":"the ID of the account"},"publicKey":{"type":"string","description":"the encoded PEM of the public key"},"label":{"type":"string","description":"the label or description for the key"}}},"forms.CreateAccountPublicKey":{"required":["publicKey"],"properties":{"publicKey":{"type":"string","description":"Encoded PEM for the public key"},"label":{"type":"string","description":"Label or description for the key"}}},"responses.AccountPublicKeys":{"required":["accountPublicKeys"],"properties":{"accountPublicKeys":{"type":"array","items":{"$ref":"#/definitions/responses.AccountPublicKey"}}}},"forms.UpdateAccountPublicKey":{"properties":{"label":{"type":"string","description":"Label or description for the key"}}},"forms.ImportAccounts":{"required":["accounts"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/definitions/forms.ImportAccount"}}}},"forms.ImportAccount":{"required":["name","fullName"],"properties":{"name":{"type":"string","description":"Name of account"},"fullName":{"type":"string","description":"Full name of account"},"isOrg":{"type":"boolean","description":"Whether the account is an organization"},"isAdmin":{"type":"boolean","description":"Whether the user is an admin (users only)"},"isActive":{"type":"boolean","description":"Whether the user is active and can login (users only)"},"passwordHash":{"type":"string","description":"The password hash for the user (users only) - either using PBKDF2 SHA256 or bcrypt"}}},"responses.AuthConfig":{"required":["backend"],"properties":{"backend":{"type":"string","enum":["managed","ldap"],"description":"The name of the auth backend to use"}}},"forms.AuthConfig":{"required":["backend"],"properties":{"backend":{"type":"string","enum":["managed","ldap"],"description":"The name of the auth backend to use"}}},"responses.LDAPSettings":{"required":["recoveryAdminUsername","serverURL","noSimplePagination","startTLS","rootCerts","tlsSkipVerify","readerDN","readerPassword","userSearchConfigs","adminSyncOpts","syncSchedule"],"properties":{"recoveryAdminUsername":{"type":"string","description":"The user with this name will be able to authenticate to the system even when the LDAP server is unavailable or if auth is misconfigured"},"serverURL":{"type":"string","description":"The URL of the LDAP server"},"noSimplePagination":{"type":"boolean","description":"The server does not support the Simple Paged Results control extension (RFC 2696)"},"startTLS":{"type":"boolean","description":"Whether to use StartTLS to secure the connection to the server, ignored if server URL scheme is 'ldaps://'"},"rootCerts":{"type":"string","description":"A root certificate bundle to use when establishing a TLS connection to the server"},"tlsSkipVerify":{"type":"boolean","description":"Whether to skip verifying of the server's certificate when establishing a TLS connection, not recommended unless testing on a secure network"},"readerDN":{"type":"string","description":"The distinguished name the system will use to bind to the LDAP server when performing searches"},"readerPassword":{"type":"string","description":"The password that the system will use to bind to the LDAP server when performing searches"},"userSearchConfigs":{"type":"array","items":{"$ref":"#/definitions/responses.UserSearchOpts"},"description":"One or more settings for syncing users"},"adminSyncOpts":{"$ref":"#/definitions/responses.MemberSyncOpts","description":"Settings for syncing system admin users"},"syncSchedule":{"type":"string","description":"The sync job schedule in CRON format"}}},"responses.UserSearchOpts":{"required":["baseDN","scopeSubtree","usernameAttr","fullNameAttr","filter"],"properties":{"baseDN":{"type":"string","description":"The distinguished name of the element from which the LDAP server will search for users"},"scopeSubtree":{"type":"boolean","description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false)"},"usernameAttr":{"type":"string","description":"The name of the attribute of the LDAP user element which should be selected as the username"},"fullNameAttr":{"type":"string","description":"The name of the attribute of the LDAP user element which should be selected as the full name of the user"},"filter":{"type":"string","description":"The LDAP search filter used to select user elements, may be left blank"}}},"forms.LDAPSettings":{"required":["recoveryAdminUsername","serverURL","noSimplePagination","startTLS","rootCerts","tlsSkipVerify","readerDN","readerPassword","userSearchConfigs","adminSyncOpts","syncSchedule"],"properties":{"recoveryAdminUsername":{"type":"string","description":"The user with this name will be able to authenticate to the system even when the LDAP server is unavailable or if auth is misconfigured"},"recoveryAdminPassword":{"type":"string","description":"A secure hash of this password is stored locally so that you can still login with the recovery admin username if the LDAP server is unavailable or if auth is misconfigured. May be nil or omitted to leave the current password unchanged"},"serverURL":{"type":"string","description":"The URL of the LDAP server"},"noSimplePagination":{"type":"boolean","description":"The server does not support the Simple Paged Results control extension (RFC 2696)"},"startTLS":{"type":"boolean","description":"Whether to use StartTLS to secure the connection to the server, ignored if server URL scheme is 'ldaps://'"},"rootCerts":{"type":"string","description":"A root certificate PEM bundle to use when establishing a TLS connection to the server"},"tlsSkipVerify":{"type":"boolean","description":"Whether to skip verifying of the server's certificate when establishing a TLS connection, not recommended unless testing on a secure network"},"readerDN":{"type":"string","description":"The distinguished name the system will use to bind to the LDAP server when performing searches"},"readerPassword":{"type":"string","description":"The password that the system will use to bind to the LDAP server when performing searches"},"userSearchConfigs":{"type":"array","items":{"$ref":"#/definitions/forms.UserSearchOpts"},"description":"One or more settings for syncing users"},"adminSyncOpts":{"$ref":"#/definitions/forms.MemberSyncOpts","description":"Settings for syncing system admin users"},"syncSchedule":{"type":"string","description":"The scheduled time for automatic LDAP sync jobs, in CRON format with seconds omitted, default is @hourly if empty or omitted"}}},"forms.UserSearchOpts":{"required":["baseDN","scopeSubtree","usernameAttr","fullNameAttr","filter"],"properties":{"baseDN":{"type":"string","description":"The distinguished name of the element from which the LDAP server will search for users"},"scopeSubtree":{"type":"boolean","description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false)"},"usernameAttr":{"type":"string","description":"The name of the attribute of the LDAP user element which should be selected as the username"},"fullNameAttr":{"type":"string","description":"The name of the attribute of the LDAP user element which should be selected as the full name of the user"},"filter":{"type":"string","description":"The LDAP search filter used to select user elements, may be left blank"}}},"forms.TryLdapLogin":{"required":["username","password","ldapSettings"],"properties":{"username":{"type":"string","description":"Value of the specified username attribute for the user entry in the LDAP directory"},"password":{"type":"string","description":"The password that the system will use to bind to the LDAP server when authenticating the user"},"ldapSettings":{"$ref":"#/definitions/forms.LDAPSettings","description":"Various options for LDAP syncing"}}},"responses.OpenIDConfig":{"required":["issuerIdentifier"],"properties":{"issuerIdentifier":{"type":"string","description":"The Issuer Identifier for the system's OpenID Connect provider"}}},"forms.OpenIDConfig":{"required":["issuerIdentifier"],"properties":{"issuerIdentifier":{"type":"string","description":"The Issuer Identifier for the system's OpenID Connect provider"}}},"responses.AccountsConfig":{"required":["systemAccounts","usersCount","orgsCount"],"properties":{"systemAccounts":{"type":"array","items":{"type":"string"},"description":"Names of critical system accounts which cannot be deleted via the API"},"usersCount":{"$ref":"#/definitions/integer","format":"int32","description":"The count of the users in the system"},"orgsCount":{"$ref":"#/definitions/integer","format":"int32","description":"The count of the orgs in the system"}}},"forms.AccountsConfig":{"required":["systemAccounts"],"properties":{"systemAccounts":{"type":"array","items":{"type":"string"},"description":"Names of critical system accounts which cannot be deleted via the API"}}},"responses.Job":{"required":["id","workerID","status","scheduledAt","lastUpdated","action"],"properties":{"id":{"type":"string","description":"The ID of the job"},"workerID":{"type":"string","description":"The ID of the worker which performed the job, unclaimed by a worker if empty"},"status":{"type":"string","enum":["waiting","running","done","canceled","errored"],"description":"The current status of the job"},"scheduledAt":{"type":"string","format":"date-time","description":"The time at which this job was scheduled"},"lastUpdated":{"type":"string","format":"date-time","description":"The last time at which the status of this job was updated"},"action":{"type":"string","description":"The action this job performs"}}},"forms.JobSubmission":{"required":["action"],"properties":{"action":{"type":"string","description":"The action which the job will perform"}}},"responses.Jobs":{"required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/responses.Job"}}}},"responses.Workers":{"required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/responses.Worker"}}}},"responses.Worker":{"required":["id","address"],"properties":{"id":{"type":"string","description":"The ID of this worker"},"address":{"type":"string","description":"Address at which an API server can contact the worker"}}},"responses.ListTeamRepoAccess":{"required":["team","repositoryAccessList"],"properties":{"team":{"$ref":"#/definitions/responses.Team"},"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}}}},"responses.RepoAccess":{"required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush"],"properties":{"id":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"name":{"type":"string"},"shortDescription":{"type":"string"},"longDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]},"scanOnPush":{"type":"boolean"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"user":{"$ref":"#/definitions/responses.Account"},"repository":{"$ref":"#/definitions/responses.Repository"}}},"tmpresponses.ActionConfig":{"required":["id","action","maxJobsPerWorker","heartbeatTimeout","parameters"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"maxJobsPerWorker":{"$ref":"#/definitions/integer","format":"int32"},"heartbeatTimeout":{"type":"string"},"parameters":{}}},"tmpforms.ActionConfigCreate":{"required":["action","parameters","maxJobsPerWorker","heartbeatTimeout","ActionInfo"],"properties":{"action":{"type":"string","description":"The action to modify the config for"},"parameters":{},"maxJobsPerWorker":{"$ref":"#/definitions/integer","format":"int32","description":"The maximum number of jobs to run on the same worker at the same time"},"heartbeatTimeout":{"type":"string","description":"The amount of time to wait before declaring a job with this action to be abandoned by its worker"},"ActionInfo":{}}},"tmpresponses.ActionConfigs":{"required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"required":["id","action","schedule","retries","parameters","deadline","stopTimeout","nextRun"],"properties":{"id":{"type":"string"},"action":{"type":"string"},"schedule":{"type":"string"},"retries":{"$ref":"#/definitions/integer","format":"int32"},"parameters":{},"deadline":{"type":"string"},"stopTimeout":{"type":"string"},"nextRun":{"type":"string","format":"date-time"}}},"tmpforms.CronCreate":{"required":["action","schedule","parameters","deadline","stopTimeout","ActionInfo"],"properties":{"action":{"type":"string","description":"The action which the cron will perform"},"schedule":{"type":"string","description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc."},"parameters":{},"deadline":{"type":"string"},"stopTimeout":{"type":"string"},"ActionInfo":{}}},"tmpresponses.Crons":{"required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"responses.Events":{"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"schema.Event":{"required":["id","publishedAt","actor","type","object"],"properties":{"id":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"actor":{"type":"string"},"type":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"}}},"schema.Object":{"required":["id","type"],"properties":{"id":{"type":"string"},"type":{"type":"string"}}},"responses.DockerSearch":{"required":["num_results","query","results"],"properties":{"num_results":{"$ref":"#/definitions/integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerRepository":{"required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"$ref":"#/definitions/integer","format":"int32"}}},"responses.Autocomplete":{"properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"tmpforms.JobSubmission":{"required":["action","parameters","deadline","stopTimeout","ActionInfo"],"properties":{"action":{"type":"string","description":"The action which the job will perform"},"parameters":{"description":"Parameters to start the job with"},"deadline":{"type":"string"},"stopTimeout":{"type":"string"},"ActionInfo":{}}},"tmpresponses.JobLogs":{"required":["jobLogs"],"properties":{"jobLogs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}},"tmpresponses.JobLog":{"required":["data"],"properties":{"data":{"type":"string"}}},"forms.Settings":{"properties":{"dtrHost":{"type":"string"},"authBypassCA":{"type":"string"},"authBypassOU":{"type":"string"},"disableUpgrades":{"type":"boolean"},"reportAnalytics":{"type":"boolean"},"anonymizeAnalytics":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"webTLSCert":{"type":"string"},"webTLSKey":{"type":"string"},"webTLSCA":{"type":"string"},"gcMode":{"type":"string"}}},"responses.Settings":{"required":["dtrHost","replicaSettings","authBypassCA","authBypassOU","httpProxy","httpsProxy","noProxy","disableUpgrades","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","replicaID","gcMode"],"properties":{"dtrHost":{"type":"string"},"replicaSettings":{},"authBypassCA":{"type":"string"},"authBypassOU":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"noProxy":{"type":"string"},"disableUpgrades":{"type":"boolean"},"reportAnalytics":{"type":"boolean"},"anonymizeAnalytics":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"logProtocol":{"type":"string"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSCA":{"type":"string"},"replicaID":{"type":"string"},"gcMode":{"type":"string"}}},"responses.ClusterStatus":{"required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"rethink_system_tables":{},"replica_health":{},"replica_timestamp":{},"replica_readonly":{},"gc_lock_holder":{"type":"string"}}},"schema.TagScanSummary":{"required":["namespace","reponame","tag","critical","major","minor","healthy","last_scan_status","check_completed_at"],"properties":{"namespace":{"type":"string"},"reponame":{"type":"string"},"tag":{"type":"string"},"critical":{"$ref":"#/definitions/integer","format":"int32"},"major":{"$ref":"#/definitions/integer","format":"int32"},"minor":{"$ref":"#/definitions/integer","format":"int32"},"healthy":{"$ref":"#/definitions/integer","format":"int32"},"last_scan_status":{"$ref":"#/definitions/integer","format":"int32"},"check_completed_at":{"type":"string","format":"date-time"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/schema.DetailedSummary"}}}},"schema.DetailedSummary":{"required":["sha256sum","size","docker_command_line"],"properties":{"sha256sum":{"type":"string"},"size":{"$ref":"#/definitions/integer","format":"int64"},"docker_command_line":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.Component"}}}},"schema.Component":{"required":["component","version","license","vulns","fullpath"],"properties":{"component":{"type":"string"},"version":{"type":"string"},"license":{"type":"array","items":{"$ref":"#/definitions/integer"}},"vulns":{"type":"array","items":{"$ref":"#/definitions/schema.VulnerabilityDetails"}},"fullpath":{"type":"array","items":{"type":"string"}}}},"integer":{},"schema.VulnerabilityDetails":{"required":["vuln","exact"],"properties":{"vuln":{"$ref":"#/definitions/schema.Vulnerability"},"exact":{"type":"boolean"}}},"schema.Vulnerability":{"required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"schema.Layer":{"required":["Sha256sum","Sha1Sum","Size","BillOfMaterials","VulnerabilityData","Author","status","LastCheckStartedAt","LastCheckFinishedAt","LastScanStartedAt","LastScanFinishedAt"],"properties":{"Sha256sum":{"type":"string"},"Sha1Sum":{"type":"string"},"Size":{"$ref":"#/definitions/integer","format":"int64"},"BillOfMaterials":{"type":"string"},"VulnerabilityData":{"type":"string"},"Author":{"type":"string"},"status":{"$ref":"#/definitions/integer","format":"int32"},"LastCheckStartedAt":{"type":"string","format":"date-time"},"LastCheckFinishedAt":{"type":"string","format":"date-time"},"LastScanStartedAt":{"type":"string","format":"date-time"},"LastScanFinishedAt":{"type":"string","format":"date-time"}}},"schema.ScanStatus":{"required":["namespace","reponame","tag","status"],"properties":{"namespace":{"type":"string"},"reponame":{"type":"string"},"tag":{"type":"string"},"status":{"$ref":"#/definitions/integer","format":"int32"}}},"||schema.NautilusDBStatus":{},"schema.NautilusDBStatus":{"required":["db_updated_to","replica_id"],"properties":{"db_updated_to":{"type":"string","format":"date-time"},"replica_id":{"type":"string"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription","scanOnPush"],"properties":{"name":{"type":"string"},"shortDescription":{"type":"string"},"longDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]},"scanOnPush":{"type":"boolean"}}},"forms.UpdateRepo":{"properties":{"shortDescription":{"type":"string"},"longDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]},"scanOnPush":{"type":"boolean"}}},"forms.ToggleScanOnPush":{"required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"responses.RepoTeamAccess":{"required":["accessLevel","team","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"},"repository":{"$ref":"#/definitions/responses.Repository"}}},"||responses.Tag":{},"responses.Tag":{"required":["name","digest","author","updatedAt","hashMismatch","inNotary","manifest"],"properties":{"name":{"type":"string"},"digest":{"type":"string"},"author":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"hashMismatch":{"type":"boolean","description":"true if the hashes from notary and registry don't match"},"inNotary":{"type":"boolean","description":"true if the tax exists in Notary"},"manifest":{"$ref":"#/definitions/responses.Manifest"}}},"responses.Manifest":{"required":["digest","os","architecture","mediaType","layers","size","createdAt","author","dockerfile"],"properties":{"digest":{"type":"string"},"os":{"type":"string"},"architecture":{"type":"string"},"mediaType":{"type":"string"},"layers":{"type":"array","items":{"$ref":"#/definitions/responses.Layer"}},"size":{"$ref":"#/definitions/integer","format":"int64"},"createdAt":{"type":"string","format":"date-time"},"author":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}}}},"responses.Layer":{"required":["size","dockerfileLine"],"properties":{"digest":{"type":"string"},"size":{"$ref":"#/definitions/integer","format":"int64"},"mediaType":{"type":"string"},"dockerfileLine":{"type":"string"}}},"responses.DockerfileLine":{"required":["line","layerDigest","size","isEmpty"],"properties":{"line":{"type":"string"},"layerDigest":{"type":"string"},"size":{"$ref":"#/definitions/integer","format":"int64"},"isEmpty":{"type":"boolean"}}},"||responses.Manifest":{},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"},"namespace":{"type":"string"}}}}}
,
    dom_id: "swagger-ui-container",
    supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
    validatorUrl: null,
    docExpansion: 'list',
    supportedSubmitMethods: [],
    onComplete: function(swaggerApi, swaggerUi){
      if(typeof initOAuth == "function") {
        initOAuth({
          clientId: "your-client-id",
          clientSecret: "your-client-secret",
          realm: "your-realms",
          appName: "your-app-name",
          scopeSeparator: ","
        });
      }

      if(window.SwaggerTranslator) {
        window.SwaggerTranslator.translate();
      }

      $('pre code').each(function(i, e) {
        hljs.highlightBlock(e)
      });
    },
    onFailure: function(data) {
      log("Unable to Load SwaggerUI");
    },
    apisSorter: "alpha",
    showRequestHeaders: false
  });

  // if you have an apiKey you would like to pre-populate on the page for demonstration purposes...
  /*
    var apiKey = "myApiKeyXXXX123456789";
    $('#input_apiKey').val(apiKey);
  */

  window.swaggerUi.load();

  function log() {
    if ('console' in window) {
      console.log.apply(console, arguments);
    }
  }
});
