Trait ClientExperimentalExt

Source
pub trait ClientExperimentalExt {
Show 33 methods // Required methods fn probe_list(&self) -> ProbeList<'_>; fn probe_create(&self) -> ProbeCreate<'_>; fn probe_view(&self) -> ProbeView<'_>; fn probe_delete(&self) -> ProbeDelete<'_>; fn support_bundle_list(&self) -> SupportBundleList<'_>; fn support_bundle_create(&self) -> SupportBundleCreate<'_>; fn support_bundle_view(&self) -> SupportBundleView<'_>; fn support_bundle_update(&self) -> SupportBundleUpdate<'_>; fn support_bundle_delete(&self) -> SupportBundleDelete<'_>; fn support_bundle_download(&self) -> SupportBundleDownload<'_>; fn support_bundle_head(&self) -> SupportBundleHead<'_>; fn support_bundle_download_file(&self) -> SupportBundleDownloadFile<'_>; fn support_bundle_head_file(&self) -> SupportBundleHeadFile<'_>; fn support_bundle_index(&self) -> SupportBundleIndex<'_>; fn affinity_group_list(&self) -> AffinityGroupList<'_>; fn affinity_group_create(&self) -> AffinityGroupCreate<'_>; fn affinity_group_view(&self) -> AffinityGroupView<'_>; fn affinity_group_update(&self) -> AffinityGroupUpdate<'_>; fn affinity_group_delete(&self) -> AffinityGroupDelete<'_>; fn affinity_group_member_list(&self) -> AffinityGroupMemberList<'_>; fn affinity_group_member_instance_view( &self, ) -> AffinityGroupMemberInstanceView<'_>; fn affinity_group_member_instance_add( &self, ) -> AffinityGroupMemberInstanceAdd<'_>; fn affinity_group_member_instance_delete( &self, ) -> AffinityGroupMemberInstanceDelete<'_>; fn instance_affinity_group_list(&self) -> InstanceAffinityGroupList<'_>; fn system_update_put_repository(&self) -> SystemUpdatePutRepository<'_>; fn system_update_get_repository(&self) -> SystemUpdateGetRepository<'_>; fn target_release_view(&self) -> TargetReleaseView<'_>; fn target_release_update(&self) -> TargetReleaseUpdate<'_>; fn system_update_trust_root_list(&self) -> SystemUpdateTrustRootList<'_>; fn system_update_trust_root_create(&self) -> SystemUpdateTrustRootCreate<'_>; fn system_update_trust_root_view(&self) -> SystemUpdateTrustRootView<'_>; fn system_update_trust_root_delete(&self) -> SystemUpdateTrustRootDelete<'_>; fn timeseries_query(&self) -> TimeseriesQuery<'_>;
}
Expand description

Experimental, unstable interfaces, primarily for use by Oxide personnel

Required Methods§

Source

fn probe_list(&self) -> ProbeList<'_>

List instrumentation probes

Sends a GET request to /experimental/v1/probes

Arguments:

  • limit: Maximum number of items returned by a single call
  • page_token: Token returned by previous call to retrieve the subsequent page
  • project: Name or ID of the project
  • sort_by
let response = client.probe_list()
   .limit(limit)
   .page_token(page_token)
   .project(project)
   .sort_by(sort_by)
   .send()
   .await;
Source

fn probe_create(&self) -> ProbeCreate<'_>

Create instrumentation probe

Sends a POST request to /experimental/v1/probes

Arguments:

  • project: Name or ID of the project
  • body
let response = client.probe_create()
   .project(project)
   .body(body)
   .send()
   .await;
Source

fn probe_view(&self) -> ProbeView<'_>

View instrumentation probe

Sends a GET request to /experimental/v1/probes/{probe}

Arguments:

  • probe: Name or ID of the probe
  • project: Name or ID of the project
let response = client.probe_view()
   .probe(probe)
   .project(project)
   .send()
   .await;
Source

fn probe_delete(&self) -> ProbeDelete<'_>

Delete instrumentation probe

Sends a DELETE request to /experimental/v1/probes/{probe}

Arguments:

  • probe: Name or ID of the probe
  • project: Name or ID of the project
let response = client.probe_delete()
   .probe(probe)
   .project(project)
   .send()
   .await;
Source

fn support_bundle_list(&self) -> SupportBundleList<'_>

List all support bundles

Sends a GET request to /experimental/v1/system/support-bundles

Arguments:

  • limit: Maximum number of items returned by a single call
  • page_token: Token returned by previous call to retrieve the subsequent page
  • sort_by
let response = client.support_bundle_list()
   .limit(limit)
   .page_token(page_token)
   .sort_by(sort_by)
   .send()
   .await;
Source

fn support_bundle_create(&self) -> SupportBundleCreate<'_>

Create a new support bundle

Sends a POST request to /experimental/v1/system/support-bundles

let response = client.support_bundle_create()
   .body(body)
   .send()
   .await;
Source

fn support_bundle_view(&self) -> SupportBundleView<'_>

View a support bundle

Sends a GET request to /experimental/v1/system/support-bundles/{bundle_id}

Arguments:

  • bundle_id: ID of the support bundle
let response = client.support_bundle_view()
   .bundle_id(bundle_id)
   .send()
   .await;
Source

fn support_bundle_update(&self) -> SupportBundleUpdate<'_>

Update a support bundle

Sends a PUT request to /experimental/v1/system/support-bundles/{bundle_id}

Arguments:

  • bundle_id: ID of the support bundle
  • body
let response = client.support_bundle_update()
   .bundle_id(bundle_id)
   .body(body)
   .send()
   .await;
Source

fn support_bundle_delete(&self) -> SupportBundleDelete<'_>

Delete an existing support bundle

May also be used to cancel a support bundle which is currently being collected, or to remove metadata for a support bundle that has failed.

Sends a DELETE request to /experimental/v1/system/support-bundles/{bundle_id}

Arguments:

  • bundle_id: ID of the support bundle
let response = client.support_bundle_delete()
   .bundle_id(bundle_id)
   .send()
   .await;
Source

fn support_bundle_download(&self) -> SupportBundleDownload<'_>

Download the contents of a support bundle

Sends a GET request to /experimental/v1/system/support-bundles/{bundle_id}/download

Arguments:

  • bundle_id: ID of the support bundle
  • range: A request to access a portion of the resource, such as bytes=0-499

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Range

let response = client.support_bundle_download()
   .bundle_id(bundle_id)
   .range(range)
   .send()
   .await;
Source

fn support_bundle_head(&self) -> SupportBundleHead<'_>

Download the metadata of a support bundle

Sends a HEAD request to /experimental/v1/system/support-bundles/{bundle_id}/download

Arguments:

  • bundle_id: ID of the support bundle
  • range: A request to access a portion of the resource, such as bytes=0-499

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Range

let response = client.support_bundle_head()
   .bundle_id(bundle_id)
   .range(range)
   .send()
   .await;
Source

fn support_bundle_download_file(&self) -> SupportBundleDownloadFile<'_>

Download a file within a support bundle

Sends a GET request to /experimental/v1/system/support-bundles/{bundle_id}/download/{file}

Arguments:

  • bundle_id: ID of the support bundle
  • file: The file within the bundle to download
  • range: A request to access a portion of the resource, such as bytes=0-499

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Range

let response = client.support_bundle_download_file()
   .bundle_id(bundle_id)
   .file(file)
   .range(range)
   .send()
   .await;
Source

fn support_bundle_head_file(&self) -> SupportBundleHeadFile<'_>

Download the metadata of a file within the support bundle

Sends a HEAD request to /experimental/v1/system/support-bundles/{bundle_id}/download/{file}

Arguments:

  • bundle_id: ID of the support bundle
  • file: The file within the bundle to download
  • range: A request to access a portion of the resource, such as bytes=0-499

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Range

let response = client.support_bundle_head_file()
   .bundle_id(bundle_id)
   .file(file)
   .range(range)
   .send()
   .await;
Source

fn support_bundle_index(&self) -> SupportBundleIndex<'_>

Download the index of a support bundle

Sends a GET request to /experimental/v1/system/support-bundles/{bundle_id}/index

Arguments:

  • bundle_id: ID of the support bundle
  • range: A request to access a portion of the resource, such as bytes=0-499

See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Range

let response = client.support_bundle_index()
   .bundle_id(bundle_id)
   .range(range)
   .send()
   .await;
Source

fn affinity_group_list(&self) -> AffinityGroupList<'_>

List affinity groups

Sends a GET request to /v1/affinity-groups

Arguments:

  • limit: Maximum number of items returned by a single call
  • page_token: Token returned by previous call to retrieve the subsequent page
  • project: Name or ID of the project
  • sort_by
let response = client.affinity_group_list()
   .limit(limit)
   .page_token(page_token)
   .project(project)
   .sort_by(sort_by)
   .send()
   .await;
Source

fn affinity_group_create(&self) -> AffinityGroupCreate<'_>

Create affinity group

Sends a POST request to /v1/affinity-groups

Arguments:

  • project: Name or ID of the project
  • body
let response = client.affinity_group_create()
   .project(project)
   .body(body)
   .send()
   .await;
Source

fn affinity_group_view(&self) -> AffinityGroupView<'_>

Fetch affinity group

Sends a GET request to /v1/affinity-groups/{affinity_group}

Arguments:

  • affinity_group: Name or ID of the affinity group
  • project: Name or ID of the project
let response = client.affinity_group_view()
   .affinity_group(affinity_group)
   .project(project)
   .send()
   .await;
Source

fn affinity_group_update(&self) -> AffinityGroupUpdate<'_>

Update affinity group

Sends a PUT request to /v1/affinity-groups/{affinity_group}

Arguments:

  • affinity_group: Name or ID of the affinity group
  • project: Name or ID of the project
  • body
let response = client.affinity_group_update()
   .affinity_group(affinity_group)
   .project(project)
   .body(body)
   .send()
   .await;
Source

fn affinity_group_delete(&self) -> AffinityGroupDelete<'_>

Delete affinity group

Sends a DELETE request to /v1/affinity-groups/{affinity_group}

Arguments:

  • affinity_group: Name or ID of the affinity group
  • project: Name or ID of the project
let response = client.affinity_group_delete()
   .affinity_group(affinity_group)
   .project(project)
   .send()
   .await;
Source

fn affinity_group_member_list(&self) -> AffinityGroupMemberList<'_>

List affinity group members

Sends a GET request to /v1/affinity-groups/{affinity_group}/members

Arguments:

  • affinity_group: Name or ID of the affinity group
  • limit: Maximum number of items returned by a single call
  • page_token: Token returned by previous call to retrieve the subsequent page
  • project: Name or ID of the project
  • sort_by
let response = client.affinity_group_member_list()
   .affinity_group(affinity_group)
   .limit(limit)
   .page_token(page_token)
   .project(project)
   .sort_by(sort_by)
   .send()
   .await;
Source

fn affinity_group_member_instance_view( &self, ) -> AffinityGroupMemberInstanceView<'_>

Fetch affinity group member

Sends a GET request to /v1/affinity-groups/{affinity_group}/members/instance/{instance}

Arguments:

  • affinity_group
  • instance
  • project: Name or ID of the project
let response = client.affinity_group_member_instance_view()
   .affinity_group(affinity_group)
   .instance(instance)
   .project(project)
   .send()
   .await;
Source

fn affinity_group_member_instance_add( &self, ) -> AffinityGroupMemberInstanceAdd<'_>

Add member to affinity group

Sends a POST request to /v1/affinity-groups/{affinity_group}/members/instance/{instance}

Arguments:

  • affinity_group
  • instance
  • project: Name or ID of the project
let response = client.affinity_group_member_instance_add()
   .affinity_group(affinity_group)
   .instance(instance)
   .project(project)
   .send()
   .await;
Source

fn affinity_group_member_instance_delete( &self, ) -> AffinityGroupMemberInstanceDelete<'_>

Remove member from affinity group

Sends a DELETE request to /v1/affinity-groups/{affinity_group}/members/instance/{instance}

Arguments:

  • affinity_group
  • instance
  • project: Name or ID of the project
let response = client.affinity_group_member_instance_delete()
   .affinity_group(affinity_group)
   .instance(instance)
   .project(project)
   .send()
   .await;
Source

fn instance_affinity_group_list(&self) -> InstanceAffinityGroupList<'_>

List affinity groups containing instance

Sends a GET request to /v1/instances/{instance}/affinity-groups

Arguments:

  • instance: Name or ID of the instance
  • limit: Maximum number of items returned by a single call
  • page_token: Token returned by previous call to retrieve the subsequent page
  • project: Name or ID of the project
  • sort_by
let response = client.instance_affinity_group_list()
   .instance(instance)
   .limit(limit)
   .page_token(page_token)
   .project(project)
   .sort_by(sort_by)
   .send()
   .await;
Source

fn system_update_put_repository(&self) -> SystemUpdatePutRepository<'_>

Upload system release repository

System release repositories are verified by the updates trust store.

Sends a PUT request to /v1/system/update/repository

Arguments:

  • file_name: The name of the uploaded file.
  • body
let response = client.system_update_put_repository()
   .file_name(file_name)
   .body(body)
   .send()
   .await;
Source

fn system_update_get_repository(&self) -> SystemUpdateGetRepository<'_>

Fetch system release repository description by version

Sends a GET request to /v1/system/update/repository/{system_version}

Arguments:

  • system_version: The version to get.
let response = client.system_update_get_repository()
   .system_version(system_version)
   .send()
   .await;
Source

fn target_release_view(&self) -> TargetReleaseView<'_>

Get the current target release of the rack’s system software

This may not correspond to the actual software running on the rack at the time of request; it is instead the release that the rack reconfigurator should be moving towards as a goal state. After some number of planning and execution phases, the software running on the rack should eventually correspond to the release described here.

Sends a GET request to /v1/system/update/target-release

let response = client.target_release_view()
   .send()
   .await;
Source

fn target_release_update(&self) -> TargetReleaseUpdate<'_>

Set the current target release of the rack’s system software

The rack reconfigurator will treat the software specified here as a goal state for the rack’s software, and attempt to asynchronously update to that release.

Sends a PUT request to /v1/system/update/target-release

let response = client.target_release_update()
   .body(body)
   .send()
   .await;
Source

fn system_update_trust_root_list(&self) -> SystemUpdateTrustRootList<'_>

List root roles in the updates trust store

A root role is a JSON document describing the cryptographic keys that are trusted to sign system release repositories, as described by The Update Framework. Uploading a repository requires its metadata to be signed by keys trusted by the trust store.

Sends a GET request to /v1/system/update/trust-roots

Arguments:

  • limit: Maximum number of items returned by a single call
  • page_token: Token returned by previous call to retrieve the subsequent page
  • sort_by
let response = client.system_update_trust_root_list()
   .limit(limit)
   .page_token(page_token)
   .sort_by(sort_by)
   .send()
   .await;
Source

fn system_update_trust_root_create(&self) -> SystemUpdateTrustRootCreate<'_>

Add trusted root role to updates trust store

Sends a POST request to /v1/system/update/trust-roots

let response = client.system_update_trust_root_create()
   .body(body)
   .send()
   .await;
Source

fn system_update_trust_root_view(&self) -> SystemUpdateTrustRootView<'_>

Fetch trusted root role

Sends a GET request to /v1/system/update/trust-roots/{trust_root_id}

Arguments:

  • trust_root_id: ID of the trust root
let response = client.system_update_trust_root_view()
   .trust_root_id(trust_root_id)
   .send()
   .await;
Source

fn system_update_trust_root_delete(&self) -> SystemUpdateTrustRootDelete<'_>

Delete trusted root role

Note that this method does not currently check for any uploaded system release repositories that would become untrusted after deleting the root role.

Sends a DELETE request to /v1/system/update/trust-roots/{trust_root_id}

Arguments:

  • trust_root_id: ID of the trust root
let response = client.system_update_trust_root_delete()
   .trust_root_id(trust_root_id)
   .send()
   .await;
Source

fn timeseries_query(&self) -> TimeseriesQuery<'_>

Run project-scoped timeseries query

Queries are written in OxQL. Project must be specified by name or ID in URL query parameter. The OxQL query will only return timeseries data from the specified project.

Sends a POST request to /v1/timeseries/query

Arguments:

  • project: Name or ID of the project
  • body
let response = client.timeseries_query()
   .project(project)
   .body(body)
   .send()
   .await;

Implementors§