2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Collections.Generic;
20 namespace Tizen.Account.OAuth2
23 /// Abstract wrapper class containing OAuth 2.0 request parameters for requesting an access token.
25 /// <since_tizen> 3 </since_tizen>
26 public abstract class TokenRequest
31 /// <since_tizen> 3 </since_tizen>
32 public abstract string GrantType { get; }
35 /// The client credentials
37 /// <since_tizen> 3 </since_tizen>
38 public ClientCredentials ClientSecrets { get; set; }
41 /// The access token end point URL.
43 /// <since_tizen> 3 </since_tizen>
44 public Uri TokenEndpoint { get; set; }
47 /// The redirection endpoint of the auhorization flow.
49 /// <since_tizen> 3 </since_tizen>
50 public Uri RedirectionEndPoint { get; set; }
53 /// The scope of the access request as described by https://tools.ietf.org/html/rfc6749#section-3.3
55 /// <since_tizen> 3 </since_tizen>
56 public IEnumerable<string> Scopes { get; set; }
59 /// Custom key-value parameters to be sent to the server
61 /// <since_tizen> 3 </since_tizen>
62 public IEnumerable<KeyValuePair<string, string>> CustomData { get; set; }
65 /// Client authentication scheme. Default is Basic
67 /// <since_tizen> 3 </since_tizen>
68 public AuthenticationScheme AuthenticationScheme { get; set; } = AuthenticationScheme.Basic;
71 /// The client's state which is maintained between request and response.
73 /// <since_tizen> 3 </since_tizen>
74 public string State { get; set; }