/// <summary> /// Sets (or removes) the <c>marker</c> query parameter for a <see cref="ListTenantsApiCall"/> HTTP API call. /// </summary> /// <param name="apiCall">The prepared HTTP API call.</param> /// <param name="marker"> /// <para>The unique ID of the last <see cref="Tenant"/> in the previous page of results.</para> /// <para>-or-</para> /// <para><see langword="null"/> to remove the <c>marker</c> query parameter and have the resulting page start /// with the first item in the list.</para> /// </param> /// <returns>Returns the input argument <paramref name="apiCall"/>, which was modified according to the /// specified <paramref name="marker"/>.</returns> /// <exception cref="ArgumentNullException"> /// If <paramref name="apiCall"/> is <see langword="null"/>. /// </exception> /// <exception cref="ObjectDisposedException">If the HTTP API call has been disposed.</exception> /// <exception cref="InvalidOperationException">If the HTTP API call has already been sent.</exception> /// <seealso href="http://docs.openstack.org/api/openstack-identity-service/2.0/content/Paginated_Collections-d1e325.html">Paginated collections (OpenStack Identity API v2.0 Reference)</seealso> public static ListTenantsApiCall WithMarker(this ListTenantsApiCall apiCall, ProjectId marker) { if (apiCall == null) { throw new ArgumentNullException("apiCall"); } if (marker == null) { throw new ArgumentNullException("marker"); } Uri uri = apiCall.RequestMessage.RequestUri; if (marker == null) { apiCall.RequestMessage.RequestUri = UriUtility.RemoveQueryParameter(uri, "marker"); } else { apiCall.RequestMessage.RequestUri = UriUtility.SetQueryParameter(uri, "marker", marker.Value); } return(apiCall); }
/// <summary> /// Sets (or removes) the <c>limit</c> query parameter for a <see cref="ListTenantsApiCall"/> HTTP API call. /// </summary> /// <param name="apiCall">The prepared HTTP API call.</param> /// <param name="pageSize"> /// <para>The maximum number of items to return in a single page of results.</para> /// <para>-or-</para> /// <para><see langword="null"/> to remove the <c>limit</c> query parameter and use the default page size /// configured by the vendor for the service.</para> /// </param> /// <returns>Returns the input argument <paramref name="apiCall"/>, which was modified according to the /// specified <paramref name="pageSize"/>.</returns> /// <exception cref="ArgumentNullException"> /// If <paramref name="apiCall"/> is <see langword="null"/>. /// </exception> /// <exception cref="ArgumentOutOfRangeException">If <paramref name="pageSize"/> is less than 0.</exception> /// <exception cref="ObjectDisposedException">If the HTTP API call has been disposed.</exception> /// <exception cref="InvalidOperationException">If the HTTP API call has already been sent.</exception> /// <seealso href="http://docs.openstack.org/api/openstack-identity-service/2.0/content/Paginated_Collections-d1e325.html">Paginated collections (OpenStack Identity API v2.0 Reference)</seealso> public static ListTenantsApiCall WithPageSize(this ListTenantsApiCall apiCall, int?pageSize) { if (apiCall == null) { throw new ArgumentNullException("apiCall"); } if (pageSize <= 0) { throw new ArgumentOutOfRangeException("pageSize"); } Uri uri = apiCall.RequestMessage.RequestUri; if (!pageSize.HasValue) { apiCall.RequestMessage.RequestUri = UriUtility.RemoveQueryParameter(uri, "limit"); } else { apiCall.RequestMessage.RequestUri = UriUtility.SetQueryParameter(uri, "limit", pageSize.ToString()); } return(apiCall); }