@@ -369,8 +369,8 @@ data Project = Project'
369369 , _pName :: !(Maybe Text)
370370 , _pLabels :: !(Maybe ProjectLabels)
371371 , _pProjectId :: !(Maybe Text)
372− , _pLifecycleState :: !(Maybe Text)
373− , _pCreateTime :: !(Maybe Text)
372+ , _pLifecycleState :: !(Maybe ProjectLifecycleState)
373+ , _pCreateTime :: !(Maybe DateTime')
374374 } deriving (Eq,Show,Data,Typeable,Generic)
375375
376376-- | Creates a value of 'Project' with the minimum fields required to make a request.
@@ -404,12 +404,14 @@ project =
404404 }
405405
406406-- | An optional reference to a parent Resource. The only supported parent
407−-- type is \"organization\". Once set, the parent cannot be modified.
408−-- Read-write.
407+-- type is \"organization\". Once set, the parent cannot be modified. The
408+-- \`parent\` can be set on creation or using the \`UpdateProject\` method;
409+-- the end user must have the \`resourcemanager.projects.create\`
410+-- permission on the parent. Read-write.
409411pParent :: Lens' Project (Maybe ResourceId)
410412pParent = lens _pParent (\ s a -> s{_pParent = a})
411413
412−-- | The number uniquely identifying the project. Example: 415104041262
414+-- | The number uniquely identifying the project. Example: '415104041262'
413415-- Read-only.
414416pProjectNumber :: Lens' Project (Maybe Int64)
415417pProjectNumber
@@ -420,7 +422,7 @@ pProjectNumber
420422-- | The user-assigned display name of the Project. It must be 4 to 30
421423-- characters. Allowed characters are: lowercase and uppercase letters,
422424-- numbers, hyphen, single-quote, double-quote, space, and exclamation
423−-- point. Example: My Project Read-write.
425+-- point. Example: 'My Project' Read-write.
424426pName :: Lens' Project (Maybe Text)
425427pName = lens _pName (\ s a -> s{_pName = a})
426428
@@ -431,29 +433,30 @@ pName = lens _pName (\ s a -> s{_pName = a})
431433-- expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?. No more than 256
432434-- labels can be associated with a given resource. Clients should store
433435-- labels in a representation such as JSON that does not depend on specific
434−-- characters being disallowed. Example: \"environment\" : \"dev\"
436+-- characters being disallowed. Example: '\"environment\" : \"dev\"'
435437-- Read-write.
436438pLabels :: Lens' Project (Maybe ProjectLabels)
437439pLabels = lens _pLabels (\ s a -> s{_pLabels = a})
438440
439441-- | The unique, user-assigned ID of the Project. It must be 6 to 30
440442-- lowercase letters, digits, or hyphens. It must start with a letter.
441−-- Trailing hyphens are prohibited. Example: tokyo-rain-123 Read-only after
442−-- creation.
443+-- Trailing hyphens are prohibited. Example: 'tokyo-rain-123' Read-only
444+-- after creation.
443445pProjectId :: Lens' Project (Maybe Text)
444446pProjectId
445447 = lens _pProjectId (\ s a -> s{_pProjectId = a})
446448
447449-- | The Project lifecycle state. Read-only.
448−pLifecycleState :: Lens' Project (Maybe Text)
450+pLifecycleState :: Lens' Project (Maybe ProjectLifecycleState)
449451pLifecycleState
450452 = lens _pLifecycleState
451453 (\ s a -> s{_pLifecycleState = a})
452454
453455-- | Creation time. Read-only.
454−pCreateTime :: Lens' Project (Maybe Text)
456+pCreateTime :: Lens' Project (Maybe UTCTime)
455457pCreateTime
456− = lens _pCreateTime (\ s a -> s{_pCreateTime = a})
458+ = lens _pCreateTime (\ s a -> s{_pCreateTime = a}) .
459+ mapping _DateTime
457460
458461instance FromJSON Project where
459462 parseJSON
@@ -520,7 +523,7 @@ operation =
520523oDone :: Lens' Operation (Maybe Bool)
521524oDone = lens _oDone (\ s a -> s{_oDone = a})
522525
523−-- | The error result of the operation in case of failure.
526+-- | The error result of the operation in case of failure or cancellation.
524527oError :: Lens' Operation (Maybe Status)
525528oError = lens _oError (\ s a -> s{_oError = a})
526529
@@ -600,7 +603,7 @@ instance ToJSON Empty where
600603data ProjectCreationStatus = ProjectCreationStatus'
601604 { _pcsGettable :: !(Maybe Bool)
602605 , _pcsReady :: !(Maybe Bool)
603− , _pcsCreateTime :: !(Maybe Text)
606+ , _pcsCreateTime :: !(Maybe DateTime')
604607 } deriving (Eq,Show,Data,Typeable,Generic)
605608
606609-- | Creates a value of 'ProjectCreationStatus' with the minimum fields required to make a request.
@@ -633,10 +636,11 @@ pcsReady :: Lens' ProjectCreationStatus (Maybe Bool)
633636pcsReady = lens _pcsReady (\ s a -> s{_pcsReady = a})
634637
635638-- | Creation time of the project creation workflow.
636−pcsCreateTime :: Lens' ProjectCreationStatus (Maybe Text)
639+pcsCreateTime :: Lens' ProjectCreationStatus (Maybe UTCTime)
637640pcsCreateTime
638641 = lens _pcsCreateTime
639642 (\ s a -> s{_pcsCreateTime = a})
643+ . mapping _DateTime
640644
641645instance FromJSON ProjectCreationStatus where
642646 parseJSON
@@ -691,7 +695,7 @@ instance ToJSON StatusDetailsItem where
691695--
692696-- /See:/ 'folderOperationError' smart constructor.
693697newtype FolderOperationError = FolderOperationError'
694− { _foeErrorMessageId :: Maybe Text
698+ { _foeErrorMessageId :: Maybe FolderOperationErrorErrorMessageId
695699 } deriving (Eq,Show,Data,Typeable,Generic)
696700
697701-- | Creates a value of 'FolderOperationError' with the minimum fields required to make a request.
@@ -707,7 +711,7 @@ folderOperationError =
707711 }
708712
709713-- | The type of operation error experienced.
710−foeErrorMessageId :: Lens' FolderOperationError (Maybe Text)
714+foeErrorMessageId :: Lens' FolderOperationError (Maybe FolderOperationErrorErrorMessageId)
711715foeErrorMessageId
712716 = lens _foeErrorMessageId
713717 (\ s a -> s{_foeErrorMessageId = a})
@@ -802,6 +806,27 @@ instance ToJSON TestIAMPermissionsRequest where
802806 = object
803807 (catMaybes [("permissions" .=) <$> _tiprPermissions])
804808
809+-- | The request sent to the GetAncestry method.
810+--
811+-- /See:/ 'getAncestryRequest' smart constructor.
812+data GetAncestryRequest =
813+ GetAncestryRequest'
814+ deriving (Eq,Show,Data,Typeable,Generic)
815+
816+-- | Creates a value of 'GetAncestryRequest' with the minimum fields required to make a request.
817+--
818+getAncestryRequest
819+ :: GetAncestryRequest
820+getAncestryRequest = GetAncestryRequest'
821+
822+instance FromJSON GetAncestryRequest where
823+ parseJSON
824+ = withObject "GetAncestryRequest"
825+ (\ o -> pure GetAncestryRequest')
826+
827+instance ToJSON GetAncestryRequest where
828+ toJSON = const emptyObject
829+
805830-- | The response returned from the \`SearchOrganizations\` method.
806831--
807832-- /See:/ 'searchOrganizationsResponse' smart constructor.
@@ -859,6 +884,46 @@ instance ToJSON SearchOrganizationsResponse where
859884 [("nextPageToken" .=) <$> _sorNextPageToken,
860885 ("organizations" .=) <$> _sorOrganizations])
861886
887+-- | Response from the GetAncestry method.
888+--
889+-- /See:/ 'getAncestryResponse' smart constructor.
890+newtype GetAncestryResponse = GetAncestryResponse'
891+ { _garAncestor :: Maybe [Ancestor]
892+ } deriving (Eq,Show,Data,Typeable,Generic)
893+
894+-- | Creates a value of 'GetAncestryResponse' with the minimum fields required to make a request.
895+--
896+-- Use one of the following lenses to modify other fields as desired:
897+--
898+-- * 'garAncestor'
899+getAncestryResponse
900+ :: GetAncestryResponse
901+getAncestryResponse =
902+ GetAncestryResponse'
903+ { _garAncestor = Nothing
904+ }
905+
906+-- | Ancestors are ordered from bottom to top of the resource hierarchy. The
907+-- first ancestor is the project itself, followed by the project\'s parent,
908+-- etc.
909+garAncestor :: Lens' GetAncestryResponse [Ancestor]
910+garAncestor
911+ = lens _garAncestor (\ s a -> s{_garAncestor = a}) .
912+ _Default
913+ . _Coerce
914+
915+instance FromJSON GetAncestryResponse where
916+ parseJSON
917+ = withObject "GetAncestryResponse"
918+ (\ o ->
919+ GetAncestryResponse' <$>
920+ (o .:? "ancestor" .!= mempty))
921+
922+instance ToJSON GetAncestryResponse where
923+ toJSON GetAncestryResponse'{..}
924+ = object
925+ (catMaybes [("ancestor" .=) <$> _garAncestor])
926+
862927-- | Response message for \`TestIamPermissions\` method.
863928--
864929-- /See:/ 'testIAMPermissionsResponse' smart constructor.
@@ -916,7 +981,7 @@ instance ToJSON TestIAMPermissionsResponse where
916981--
917982-- /See:/ 'policy' smart constructor.
918983data Policy = Policy'
919− { _pEtag :: !(Maybe Base64)
984+ { _pEtag :: !(Maybe Bytes)
920985 , _pVersion :: !(Maybe (Textual Int32))
921986 , _pBindings :: !(Maybe [Binding])
922987 } deriving (Eq,Show,Data,Typeable,Generic)
@@ -951,7 +1016,7 @@ policy =
9511016pEtag :: Lens' Policy (Maybe ByteString)
9521017pEtag
9531018 = lens _pEtag (\ s a -> s{_pEtag = a}) .
954− mapping _Base64
1019+ mapping _Bytes
9551020
9561021-- | Version of the \`Policy\`. The default version is 0.
9571022pVersion :: Lens' Policy (Maybe Int32)
@@ -991,7 +1056,7 @@ instance ToJSON Policy where
9911056-- expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?. No more than 256
9921057-- labels can be associated with a given resource. Clients should store
9931058-- labels in a representation such as JSON that does not depend on specific
994−-- characters being disallowed. Example: \"environment\" : \"dev\"
1059+-- characters being disallowed. Example: '\"environment\" : \"dev\"'
9951060-- Read-write.
9961061--
9971062-- /See:/ 'projectLabels' smart constructor.
@@ -1068,7 +1133,7 @@ instance ToJSON OperationMetadata where
10681133data FolderOperation = FolderOperation'
10691134 { _foDestinationParent :: !(Maybe Text)
10701135 , _foDisplayName :: !(Maybe Text)
1071− , _foOperationType :: !(Maybe Text)
1136+ , _foOperationType :: !(Maybe FolderOperationOperationType)
10721137 , _foSourceParent :: !(Maybe Text)
10731138 } deriving (Eq,Show,Data,Typeable,Generic)
10741139
@@ -1107,7 +1172,7 @@ foDisplayName
11071172 (\ s a -> s{_foDisplayName = a})
11081173
11091174-- | The type of this operation.
1110−foOperationType :: Lens' FolderOperation (Maybe Text)
1175+foOperationType :: Lens' FolderOperation (Maybe FolderOperationOperationType)
11111176foOperationType
11121177 = lens _foOperationType
11131178 (\ s a -> s{_foOperationType = a})
@@ -1142,11 +1207,11 @@ instance ToJSON FolderOperation where
11421207--
11431208-- /See:/ 'organization' smart constructor.
11441209data Organization = Organization'
1145− { _orgCreationTime :: !(Maybe Text)
1210+ { _orgCreationTime :: !(Maybe DateTime')
11461211 , _orgOwner :: !(Maybe OrganizationOwner)
11471212 , _orgName :: !(Maybe Text)
11481213 , _orgDisplayName :: !(Maybe Text)
1149− , _orgLifecycleState :: !(Maybe Text)
1214+ , _orgLifecycleState :: !(Maybe OrganizationLifecycleState)
11501215 } deriving (Eq,Show,Data,Typeable,Generic)
11511216
11521217-- | Creates a value of 'Organization' with the minimum fields required to make a request.
@@ -1175,10 +1240,11 @@ organization =
11751240
11761241-- | Timestamp when the Organization was created. Assigned by the server.
11771242-- \'OutputOnly
1178−orgCreationTime :: Lens' Organization (Maybe Text)
1243+orgCreationTime :: Lens' Organization (Maybe UTCTime)
11791244orgCreationTime
11801245 = lens _orgCreationTime
11811246 (\ s a -> s{_orgCreationTime = a})
1247+ . mapping _DateTime
11821248
11831249-- | The owner of this Organization. The owner should be specified on
11841250-- creation. Once set, it cannot be changed. This field is required.
@@ -1202,7 +1268,7 @@ orgDisplayName
12021268
12031269-- | The organization\'s current lifecycle state. Assigned by the server.
12041270-- \'OutputOnly
1205−orgLifecycleState :: Lens' Organization (Maybe Text)
1271+orgLifecycleState :: Lens' Organization (Maybe OrganizationLifecycleState)
12061272orgLifecycleState
12071273 = lens _orgLifecycleState
12081274 (\ s a -> s{_orgLifecycleState = a})
@@ -1226,6 +1292,40 @@ instance ToJSON Organization where
12261292 ("displayName" .=) <$> _orgDisplayName,
12271293 ("lifecycleState" .=) <$> _orgLifecycleState])
12281294
1295+-- | Identifying information for a single ancestor of a project.
1296+--
1297+-- /See:/ 'ancestor' smart constructor.
1298+newtype Ancestor = Ancestor'
1299+ { _aResourceId :: Maybe ResourceId
1300+ } deriving (Eq,Show,Data,Typeable,Generic)
1301+
1302+-- | Creates a value of 'Ancestor' with the minimum fields required to make a request.
1303+--
1304+-- Use one of the following lenses to modify other fields as desired:
1305+--
1306+-- * 'aResourceId'
1307+ancestor
1308+ :: Ancestor
1309+ancestor =
1310+ Ancestor'
1311+ { _aResourceId = Nothing
1312+ }
1313+
1314+-- | Resource id of the ancestor.
1315+aResourceId :: Lens' Ancestor (Maybe ResourceId)
1316+aResourceId
1317+ = lens _aResourceId (\ s a -> s{_aResourceId = a})
1318+
1319+instance FromJSON Ancestor where
1320+ parseJSON
1321+ = withObject "Ancestor"
1322+ (\ o -> Ancestor' <$> (o .:? "resourceId"))
1323+
1324+instance ToJSON Ancestor where
1325+ toJSON Ancestor'{..}
1326+ = object
1327+ (catMaybes [("resourceId" .=) <$> _aResourceId])
1328+
12291329-- | The normal response of the operation in case of success. If the original
12301330-- method returns no data on success, such as \`Delete\`, the response is
12311331-- \`google.protobuf.Empty\`. If the original method is standard