|
| 1 | +import { google } from '@google-cloud/access-approval/build/protos/protos' |
| 2 | +import { GcpAccessApproval } from '../../types/generated' |
| 3 | +import { RawGcpAccessApproval } from './data' |
| 4 | +import { toISOString } from '../../utils/dateutils' |
| 5 | +import { enumKeyToString } from '../../utils/format' |
| 6 | + |
| 7 | +export default ({ |
| 8 | + service, |
| 9 | +}: { |
| 10 | + service: RawGcpAccessApproval |
| 11 | + region: string |
| 12 | +}): GcpAccessApproval => { |
| 13 | + const { |
| 14 | + id, |
| 15 | + projectId, |
| 16 | + region, |
| 17 | + name, |
| 18 | + requestedResourceName, |
| 19 | + requestedResourceProperties, |
| 20 | + requestedReason, |
| 21 | + requestedLocations, |
| 22 | + requestTime, |
| 23 | + requestedExpiration, |
| 24 | + approve, |
| 25 | + dismiss, |
| 26 | + } = service |
| 27 | + |
| 28 | + return { |
| 29 | + id, |
| 30 | + projectId, |
| 31 | + region, |
| 32 | + name, |
| 33 | + requestedResourceName, |
| 34 | + requestedResourceProperties: { |
| 35 | + excludesDescendants: requestedResourceProperties?.excludesDescendants, |
| 36 | + }, |
| 37 | + requestedReason: { |
| 38 | + type: enumKeyToString(google.cloud.accessapproval.v1.AccessReason.Type, requestedReason?.type), |
| 39 | + detail: requestedReason?.detail, |
| 40 | + }, |
| 41 | + requestedLocations: { |
| 42 | + principalOfficeCountry: requestedLocations?.principalOfficeCountry, |
| 43 | + principalPhysicalLocationCountry: requestedLocations?.principalPhysicalLocationCountry, |
| 44 | + }, |
| 45 | + requestTime: toISOString(requestTime?.seconds?.toString()), |
| 46 | + requestedExpiration: toISOString(requestedExpiration?.seconds?.toString()), |
| 47 | + approve: { |
| 48 | + approveTime: toISOString(approve.approveTime?.seconds?.toString()), |
| 49 | + expireTime: toISOString(approve.expireTime?.seconds?.toString()), |
| 50 | + invalidateTime: toISOString(approve.invalidateTime?.seconds?.toString()), |
| 51 | + signatureInfo: { |
| 52 | + signature: approve?.signatureInfo?.signature ? String.fromCharCode.apply(approve?.signatureInfo?.signature) : '', |
| 53 | + googlePublicKeyPem: approve?.signatureInfo?.googlePublicKeyPem, |
| 54 | + customerKmsKeyVersion: approve?.signatureInfo?.customerKmsKeyVersion, |
| 55 | + }, |
| 56 | + autoApproved: approve?.autoApproved, |
| 57 | + }, |
| 58 | + dismiss: { |
| 59 | + dismissTime: toISOString(dismiss.dismissTime?.seconds?.toString()), |
| 60 | + implicit: dismiss.implicit, |
| 61 | + }, |
| 62 | + } |
| 63 | +} |
0 commit comments