def SecurityMarksHook(parsed_dict): """Hook to capture "key1=val1,key2=val2" as SecurityMarks object.""" messages = sc_client.GetMessages() security_marks = messages.SecurityMarks() security_marks.marks = encoding.DictToMessage( parsed_dict, messages.SecurityMarks.MarksValue) return security_marks
def GroupAssetsReqHook(ref, args, req): """Hook up filter such that the CSCC filter is used rather than gcloud.""" del ref req.parent = GetParent(args) if not req.groupAssetsRequest: messages = sc_client.GetMessages() req.groupAssetsRequest = messages.GroupAssetsRequest() req.groupAssetsRequest.filter = args.filter args.filter = "" return req
def CreateFindingsReqHook(ref, args, req): """Generate a finding's name and parent using org, source and finding.""" del ref _ValidateMutexOnFindingAndSourceAndOrganization(args) finding_name = _GetFindingName(args) req.parent = GetSourceFromResourceName(finding_name) req.findingId = _GetFindingIdFromName(finding_name) messages = sc_client.GetMessages() if not req.finding: req.finding = messages.Finding() req.finding.name = finding_name return req
def CreateNotificationReqHook(ref, args, req): """Generate a notification config using organization and config id.""" del ref _ValidateMutexOnConfigIdAndOrganization(args) config = _GetNotificationConfigName(args) req.parent = GetOrganizationFromResourceName(config) req.configId = _GetNotificationConfigId(config) messages = sc_client.GetMessages("v1p1beta1") if (args.filter is None): streamingConfig = messages.StreamingConfig() streamingConfig.filter = ""; req.notificationConfig.streamingConfig = streamingConfig; return req
def GroupFindingsReqHook(ref, args, req): """Generate a finding's name and parent using org, source and finding id.""" del ref _ValidateMutexOnSourceAndOrganization(args) if not req.groupFindingsRequest: messages = sc_client.GetMessages() req.groupFindingsRequest = messages.GroupFindingsRequest() req.groupFindingsRequest.filter = args.filter args.filter = "" resource_pattern = re.compile("organizations/[0-9]+/sources/[0-9-]+") if resource_pattern.match(args.organization): args.source = args.organization req.parent = _GetSourceName(args) return req
def UpdateFindingsReqHook(ref, args, req): """Generate a finding's name using org, source and finding id.""" del ref _ValidateMutexOnFindingAndSourceAndOrganization(args) req.name = _GetFindingName(args) req.updateMask = CleanUpUserInput(req.updateMask) # All requests require an event time if args.event_time is None: # Formatting: 2019-03-22 21:24:36.208463 -> 2019-03-22T21:33:15.830Z" event_time = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ") if req.finding is None: req.finding = sc_client.GetMessages().Finding() req.finding.eventTime = event_time req.updateMask = req.updateMask + ",event_time" return req
def GroupFindingsReqHook(ref, args, req): """Generate a finding's name and parent using org, source and finding id.""" del ref # Unused. _ValidateMutexOnSourceAndParent(args) if not req.groupFindingsRequest: messages = sc_client.GetMessages() req.groupFindingsRequest = messages.GroupFindingsRequest() req.groupFindingsRequest.filter = args.filter args.filter = "" resource_pattern = re.compile( "(organizations|projects|folders)/[a-z0-9]+/sources/[0-9]+") parent = GetParent(args) if resource_pattern.match(parent): args.source = parent req.parent = _GetSourceNameForParent(args) return req
def SourcePropertiesHook(source_properties_dict): """Hook to capture "key1=val1,key2=val2" as SourceProperties object.""" messages = sc_client.GetMessages() return encoding.DictToMessage(source_properties_dict, messages.Finding.SourcePropertiesValue)