You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by oc...@apache.org on 2023/01/25 15:32:13 UTC
[trafficcontrol-trafficops-types] 08/10: Update User structures for v4
This is an automated email from the ASF dual-hosted git repository.
ocket8888 pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/trafficcontrol-trafficops-types.git
commit 58e1ee406d687f1211f84744948920bfd9a7ebc1
Author: ocket8888 <oc...@apache.org>
AuthorDate: Tue Jan 24 14:08:12 2023 -0700
Update User structures for v4
---
src/user.ts | 117 +++++++++++++-----------------------------------------------
1 file changed, 25 insertions(+), 92 deletions(-)
diff --git a/src/user.ts b/src/user.ts
index 50e1e49..43fa2e4 100644
--- a/src/user.ts
+++ b/src/user.ts
@@ -33,14 +33,15 @@ export interface PostRequestUser {
/** @deprecated This has no purpose and should never be used. */
gid?: number | null;
localPasswd: string;
+ /** @deprecated This has no purpose and should never be used. */
newUser?: boolean | null;
phoneNumber?: string | null;
postalCode?: string | null;
publicSshKey?: string | null;
- role: number;
+ role: string;
stateOrProvince?: string | null;
- tenantId?: never;
- tenantID: number;
+ tenantId: number;
+ ucdn?: string | null;
/** @deprecated This has no purpose and should never be used. */
uid?: number | null;
username: string;
@@ -64,10 +65,11 @@ interface PutRequestNotChangingPasswordUser {
phoneNumber?: string | null;
postalCode?: string | null;
publicSshKey?: string | null;
- role: number;
+ role: string;
stateOrProvince?: string | null;
tenantId?: never;
tenantID: number;
+ ucdn?: string | null;
/** @deprecated This has no purpose and should never be used. */
uid?: number | null;
username: string;
@@ -83,10 +85,11 @@ export type PutRequestUser = PostRequestUser | PutRequestNotChangingPasswordUser
/** Generically represents a user in the context of a request. */
export type RequestUser = PutRequestUser | PostRequestUser;
-/** Groups the fields common to responses from /users in all contexts. */
-interface ResponseUserBase {
+/** Generically represents a user in the context of a response. */
+export interface ResponseUser {
addressLine1: string | null;
addressLine2: string | null;
+ readonly changeLogCount: number;
city: string | null;
company: string | null;
country: string | null;
@@ -94,61 +97,30 @@ interface ResponseUserBase {
fullName: string;
/** @deprecated This has no purpose and should never be used. */
gid: number | null;
- id: number;
- /**
- * This is actually a string that represents a date/time, in a custom
- * format. Refer to
- * [the Traffic Ops API documentation](https://traffic-control-cdn.readthedocs.io/en/latest/api/index.html#traffic-ops-s-custom-date-time-format)
- * for details.
- */
+ readonly id: number;
+ readonly lastAuthenticated: Date | null;
readonly lastUpdated: Date;
+ /** @deprecated This has no known purpose and shouldn't be used. */
newUser: boolean | null;
phoneNumber: string | null;
postalCode: string | null;
publicSshKey: string | null;
- /**
- * This is actually a string that represents a date/time, in a custom
- * format. Refer to
- * [the Traffic Ops API documentation](https://traffic-control-cdn.readthedocs.io/en/latest/api/index.html#traffic-ops-s-custom-date-time-format)
- * for details.
- */
registrationSent?: null | Date;
- role: number;
+ role: string;
stateOrProvince: string | null;
tenant: string;
- tenantID?: never;
tenantId: number;
+ ucdn: string;
/** @deprecated This has no purpose and should never be used. */
uid: number | null;
username: string;
}
-/** Represents a response from /users to a PUT or POST request. */
-export interface PutOrPostResponseUser extends ResponseUserBase {
- /**
- * This appears only in response to POST requests, or to PUT requests where
- * the user's password was changed.
- */
- confirmLocalPasswd?: string;
- rolename?: never;
- roleName: string;
-}
-
-/** Represents a response from /users to a GET request. */
-export interface GetResponseUser extends ResponseUserBase {
- confirmLocalPasswd?: never;
- rolename: string;
- roleName?: never;
-}
-
-/** Generically represents a user in the context of a response. */
-export type ResponseUser = GetResponseUser | PutOrPostResponseUser;
-
/**
* User generically represents a user in the context of a PUT, POST, or GET
* request or response to/from /users.
*/
-export type User = PutRequestUser | PostRequestUser | PutOrPostResponseUser | GetResponseUser;
+export type User = RequestUser | ResponseUser;
/**
* ResponseCurrentUser represents a response from /user/current.
@@ -162,22 +134,16 @@ export interface ResponseCurrentUser {
email: `${string}@${string}.${string}`;
fullName: string;
gid: number | null;
- id: number;
- /**
- * This is actually a string that represents a date/time, in a custom
- * format. Refer to
- * [the Traffic Ops API documentation](https://traffic-control-cdn.readthedocs.io/en/latest/api/index.html#traffic-ops-s-custom-date-time-format)
- * for details.
- */
+ readonly id: number;
+ readonly lastAuthenticated: null | Date;
readonly lastUpdated: Date;
localUser: boolean;
newUser: boolean;
phoneNumber: string | null;
postalCode: string | null;
publicSshKey: string | null;
- role: number;
- rolename?: never;
- roleName: string;
+ readonly registrationSent: null | Date;
+ role: string;
stateOrProvince: string | null;
tenant: string;
tenantId: number;
@@ -196,8 +162,7 @@ export function userEmailIsValid(email: string): email is `${string}@${string}.$
}
/**
- * Currently, a request to /user/current has no properties. This bug is tracked
- * by apache/trafficcontrol#6367.
+ * Represents a request to modify the current user.
*/
export interface RequestCurrentUser {
addressLine1?: string | null;
@@ -205,57 +170,25 @@ export interface RequestCurrentUser {
city?: string | null;
company?: string | null;
country?: string | null;
- /**
- * Note that while this is allowed to be null or undefined, it will **not**
- * be allowed to be either of those things as a property of a
- * {@link PostRequestUser} nor as a property of a {@link PutRequestUser}.
- * This means that setting it as such can cause problems for future requests
- * and should be avoided whenever possible.
- */
- email?: string | null;
- /**
- * Note that while this is allowed to be null or undefined, it will **not**
- * be allowed to be either of those things as a property of a
- * {@link PostRequestUser} nor as a property of a {@link PutRequestUser}.
- * This means that setting it as such can cause problems for future requests
- * and should be avoided whenever possible.
- */
- fullName?: string | null;
+ email: string;
+ fullName: string;
/**
* @deprecated This serves no purpose and is subject to removal in the
* future.
*/
gid?: number | null;
- localUser?: boolean | null;
- newUser?: boolean | null;
phoneNumber?: string | null;
postalCode?: string | null;
publicSshKey?: string | null;
- /**
- * Unlike in virtually every other context, this is allowed to be `null` or
- * undefined. In that case, it has the meaning "leave this unchanged" rather
- * than setting it to `null` as with most other properties.
- */
- role?: number | null;
+ role: string;
stateOrProvince?: string | null;
- /**
- * Unlike in virtually every other context, this is allowed to be `null` or
- * undefined. In that case, it has the meaning "leave this unchanged" rather
- * than setting it to `null` as with most other properties.
- */
- tenantId?: number | null;
- tenantID?: never;
+ tenantId: number;
/**
* @deprecated This serves no purpose and is subject to removal in the
* future.
*/
uid?: number | null;
- /**
- * Unlike in virtually every other context, this is allowed to be `null` or
- * undefined. In that case, it has the meaning "leave this unchanged" rather
- * than setting it to `null` as with most other properties.
- */
- username?: never;
+ username: string;
}
/**