AWS SDK for C++

AWS SDK for C++ Version 1.11.786

Loading...
Searching...
No Matches
AwsSecurityFinding.h
1
6#pragma once
7#include <aws/core/utils/memory/stl/AWSMap.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/securityhub/SecurityHub_EXPORTS.h>
11#include <aws/securityhub/model/Action.h>
12#include <aws/securityhub/model/Compliance.h>
13#include <aws/securityhub/model/Detection.h>
14#include <aws/securityhub/model/FindingProviderFields.h>
15#include <aws/securityhub/model/GeneratorDetails.h>
16#include <aws/securityhub/model/Malware.h>
17#include <aws/securityhub/model/Network.h>
18#include <aws/securityhub/model/NetworkPathComponent.h>
19#include <aws/securityhub/model/Note.h>
20#include <aws/securityhub/model/PatchSummary.h>
21#include <aws/securityhub/model/ProcessDetails.h>
22#include <aws/securityhub/model/RecordState.h>
23#include <aws/securityhub/model/RelatedFinding.h>
24#include <aws/securityhub/model/Remediation.h>
25#include <aws/securityhub/model/Resource.h>
26#include <aws/securityhub/model/Severity.h>
27#include <aws/securityhub/model/Threat.h>
28#include <aws/securityhub/model/ThreatIntelIndicator.h>
29#include <aws/securityhub/model/VerificationState.h>
30#include <aws/securityhub/model/Vulnerability.h>
31#include <aws/securityhub/model/Workflow.h>
32#include <aws/securityhub/model/WorkflowState.h>
33
34#include <utility>
35
36namespace Aws {
37namespace Utils {
38namespace Json {
39class JsonValue;
40class JsonView;
41} // namespace Json
42} // namespace Utils
43namespace SecurityHub {
44namespace Model {
45
57 public:
58 AWS_SECURITYHUB_API AwsSecurityFinding() = default;
59 AWS_SECURITYHUB_API AwsSecurityFinding(Aws::Utils::Json::JsonView jsonValue);
61 AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const;
62
64
68 inline const Aws::String& GetSchemaVersion() const { return m_schemaVersion; }
69 inline bool SchemaVersionHasBeenSet() const { return m_schemaVersionHasBeenSet; }
70 template <typename SchemaVersionT = Aws::String>
71 void SetSchemaVersion(SchemaVersionT&& value) {
72 m_schemaVersionHasBeenSet = true;
73 m_schemaVersion = std::forward<SchemaVersionT>(value);
74 }
75 template <typename SchemaVersionT = Aws::String>
76 AwsSecurityFinding& WithSchemaVersion(SchemaVersionT&& value) {
77 SetSchemaVersion(std::forward<SchemaVersionT>(value));
78 return *this;
79 }
81
83
87 inline const Aws::String& GetId() const { return m_id; }
88 inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
89 template <typename IdT = Aws::String>
90 void SetId(IdT&& value) {
91 m_idHasBeenSet = true;
92 m_id = std::forward<IdT>(value);
93 }
94 template <typename IdT = Aws::String>
95 AwsSecurityFinding& WithId(IdT&& value) {
96 SetId(std::forward<IdT>(value));
97 return *this;
98 }
100
102
108 inline const Aws::String& GetProductArn() const { return m_productArn; }
109 inline bool ProductArnHasBeenSet() const { return m_productArnHasBeenSet; }
110 template <typename ProductArnT = Aws::String>
111 void SetProductArn(ProductArnT&& value) {
112 m_productArnHasBeenSet = true;
113 m_productArn = std::forward<ProductArnT>(value);
114 }
115 template <typename ProductArnT = Aws::String>
116 AwsSecurityFinding& WithProductArn(ProductArnT&& value) {
117 SetProductArn(std::forward<ProductArnT>(value));
118 return *this;
119 }
121
123
132 inline const Aws::String& GetProductName() const { return m_productName; }
133 inline bool ProductNameHasBeenSet() const { return m_productNameHasBeenSet; }
134 template <typename ProductNameT = Aws::String>
135 void SetProductName(ProductNameT&& value) {
136 m_productNameHasBeenSet = true;
137 m_productName = std::forward<ProductNameT>(value);
138 }
139 template <typename ProductNameT = Aws::String>
140 AwsSecurityFinding& WithProductName(ProductNameT&& value) {
141 SetProductName(std::forward<ProductNameT>(value));
142 return *this;
143 }
145
147
156 inline const Aws::String& GetCompanyName() const { return m_companyName; }
157 inline bool CompanyNameHasBeenSet() const { return m_companyNameHasBeenSet; }
158 template <typename CompanyNameT = Aws::String>
159 void SetCompanyName(CompanyNameT&& value) {
160 m_companyNameHasBeenSet = true;
161 m_companyName = std::forward<CompanyNameT>(value);
162 }
163 template <typename CompanyNameT = Aws::String>
164 AwsSecurityFinding& WithCompanyName(CompanyNameT&& value) {
165 SetCompanyName(std::forward<CompanyNameT>(value));
166 return *this;
167 }
169
171
177 inline const Aws::String& GetRegion() const { return m_region; }
178 inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; }
179 template <typename RegionT = Aws::String>
180 void SetRegion(RegionT&& value) {
181 m_regionHasBeenSet = true;
182 m_region = std::forward<RegionT>(value);
183 }
184 template <typename RegionT = Aws::String>
185 AwsSecurityFinding& WithRegion(RegionT&& value) {
186 SetRegion(std::forward<RegionT>(value));
187 return *this;
188 }
190
192
198 inline const Aws::String& GetGeneratorId() const { return m_generatorId; }
199 inline bool GeneratorIdHasBeenSet() const { return m_generatorIdHasBeenSet; }
200 template <typename GeneratorIdT = Aws::String>
201 void SetGeneratorId(GeneratorIdT&& value) {
202 m_generatorIdHasBeenSet = true;
203 m_generatorId = std::forward<GeneratorIdT>(value);
204 }
205 template <typename GeneratorIdT = Aws::String>
206 AwsSecurityFinding& WithGeneratorId(GeneratorIdT&& value) {
207 SetGeneratorId(std::forward<GeneratorIdT>(value));
208 return *this;
209 }
211
213
217 inline const Aws::String& GetAwsAccountId() const { return m_awsAccountId; }
218 inline bool AwsAccountIdHasBeenSet() const { return m_awsAccountIdHasBeenSet; }
219 template <typename AwsAccountIdT = Aws::String>
220 void SetAwsAccountId(AwsAccountIdT&& value) {
221 m_awsAccountIdHasBeenSet = true;
222 m_awsAccountId = std::forward<AwsAccountIdT>(value);
223 }
224 template <typename AwsAccountIdT = Aws::String>
225 AwsSecurityFinding& WithAwsAccountId(AwsAccountIdT&& value) {
226 SetAwsAccountId(std::forward<AwsAccountIdT>(value));
227 return *this;
228 }
230
232
239 inline const Aws::Vector<Aws::String>& GetTypes() const { return m_types; }
240 inline bool TypesHasBeenSet() const { return m_typesHasBeenSet; }
241 template <typename TypesT = Aws::Vector<Aws::String>>
242 void SetTypes(TypesT&& value) {
243 m_typesHasBeenSet = true;
244 m_types = std::forward<TypesT>(value);
245 }
246 template <typename TypesT = Aws::Vector<Aws::String>>
247 AwsSecurityFinding& WithTypes(TypesT&& value) {
248 SetTypes(std::forward<TypesT>(value));
249 return *this;
250 }
251 template <typename TypesT = Aws::String>
252 AwsSecurityFinding& AddTypes(TypesT&& value) {
253 m_typesHasBeenSet = true;
254 m_types.emplace_back(std::forward<TypesT>(value));
255 return *this;
256 }
258
260
266 inline const Aws::String& GetFirstObservedAt() const { return m_firstObservedAt; }
267 inline bool FirstObservedAtHasBeenSet() const { return m_firstObservedAtHasBeenSet; }
268 template <typename FirstObservedAtT = Aws::String>
269 void SetFirstObservedAt(FirstObservedAtT&& value) {
270 m_firstObservedAtHasBeenSet = true;
271 m_firstObservedAt = std::forward<FirstObservedAtT>(value);
272 }
273 template <typename FirstObservedAtT = Aws::String>
274 AwsSecurityFinding& WithFirstObservedAt(FirstObservedAtT&& value) {
275 SetFirstObservedAt(std::forward<FirstObservedAtT>(value));
276 return *this;
277 }
279
281
288 inline const Aws::String& GetLastObservedAt() const { return m_lastObservedAt; }
289 inline bool LastObservedAtHasBeenSet() const { return m_lastObservedAtHasBeenSet; }
290 template <typename LastObservedAtT = Aws::String>
291 void SetLastObservedAt(LastObservedAtT&& value) {
292 m_lastObservedAtHasBeenSet = true;
293 m_lastObservedAt = std::forward<LastObservedAtT>(value);
294 }
295 template <typename LastObservedAtT = Aws::String>
296 AwsSecurityFinding& WithLastObservedAt(LastObservedAtT&& value) {
297 SetLastObservedAt(std::forward<LastObservedAtT>(value));
298 return *this;
299 }
301
303
309 inline const Aws::String& GetCreatedAt() const { return m_createdAt; }
310 inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
311 template <typename CreatedAtT = Aws::String>
312 void SetCreatedAt(CreatedAtT&& value) {
313 m_createdAtHasBeenSet = true;
314 m_createdAt = std::forward<CreatedAtT>(value);
315 }
316 template <typename CreatedAtT = Aws::String>
317 AwsSecurityFinding& WithCreatedAt(CreatedAtT&& value) {
318 SetCreatedAt(std::forward<CreatedAtT>(value));
319 return *this;
320 }
322
324
330 inline const Aws::String& GetUpdatedAt() const { return m_updatedAt; }
331 inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; }
332 template <typename UpdatedAtT = Aws::String>
333 void SetUpdatedAt(UpdatedAtT&& value) {
334 m_updatedAtHasBeenSet = true;
335 m_updatedAt = std::forward<UpdatedAtT>(value);
336 }
337 template <typename UpdatedAtT = Aws::String>
338 AwsSecurityFinding& WithUpdatedAt(UpdatedAtT&& value) {
339 SetUpdatedAt(std::forward<UpdatedAtT>(value));
340 return *this;
341 }
343
345
348 inline const Severity& GetSeverity() const { return m_severity; }
349 inline bool SeverityHasBeenSet() const { return m_severityHasBeenSet; }
350 template <typename SeverityT = Severity>
351 void SetSeverity(SeverityT&& value) {
352 m_severityHasBeenSet = true;
353 m_severity = std::forward<SeverityT>(value);
354 }
355 template <typename SeverityT = Severity>
356 AwsSecurityFinding& WithSeverity(SeverityT&& value) {
357 SetSeverity(std::forward<SeverityT>(value));
358 return *this;
359 }
361
363
369 inline int GetConfidence() const { return m_confidence; }
370 inline bool ConfidenceHasBeenSet() const { return m_confidenceHasBeenSet; }
371 inline void SetConfidence(int value) {
372 m_confidenceHasBeenSet = true;
373 m_confidence = value;
374 }
376 SetConfidence(value);
377 return *this;
378 }
380
382
387 inline int GetCriticality() const { return m_criticality; }
388 inline bool CriticalityHasBeenSet() const { return m_criticalityHasBeenSet; }
389 inline void SetCriticality(int value) {
390 m_criticalityHasBeenSet = true;
391 m_criticality = value;
392 }
394 SetCriticality(value);
395 return *this;
396 }
398
400
404 inline const Aws::String& GetTitle() const { return m_title; }
405 inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; }
406 template <typename TitleT = Aws::String>
407 void SetTitle(TitleT&& value) {
408 m_titleHasBeenSet = true;
409 m_title = std::forward<TitleT>(value);
410 }
411 template <typename TitleT = Aws::String>
412 AwsSecurityFinding& WithTitle(TitleT&& value) {
413 SetTitle(std::forward<TitleT>(value));
414 return *this;
415 }
417
419
423 inline const Aws::String& GetDescription() const { return m_description; }
424 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
425 template <typename DescriptionT = Aws::String>
426 void SetDescription(DescriptionT&& value) {
427 m_descriptionHasBeenSet = true;
428 m_description = std::forward<DescriptionT>(value);
429 }
430 template <typename DescriptionT = Aws::String>
431 AwsSecurityFinding& WithDescription(DescriptionT&& value) {
432 SetDescription(std::forward<DescriptionT>(value));
433 return *this;
434 }
436
438
441 inline const Remediation& GetRemediation() const { return m_remediation; }
442 inline bool RemediationHasBeenSet() const { return m_remediationHasBeenSet; }
443 template <typename RemediationT = Remediation>
444 void SetRemediation(RemediationT&& value) {
445 m_remediationHasBeenSet = true;
446 m_remediation = std::forward<RemediationT>(value);
447 }
448 template <typename RemediationT = Remediation>
449 AwsSecurityFinding& WithRemediation(RemediationT&& value) {
450 SetRemediation(std::forward<RemediationT>(value));
451 return *this;
452 }
454
456
460 inline const Aws::String& GetSourceUrl() const { return m_sourceUrl; }
461 inline bool SourceUrlHasBeenSet() const { return m_sourceUrlHasBeenSet; }
462 template <typename SourceUrlT = Aws::String>
463 void SetSourceUrl(SourceUrlT&& value) {
464 m_sourceUrlHasBeenSet = true;
465 m_sourceUrl = std::forward<SourceUrlT>(value);
466 }
467 template <typename SourceUrlT = Aws::String>
468 AwsSecurityFinding& WithSourceUrl(SourceUrlT&& value) {
469 SetSourceUrl(std::forward<SourceUrlT>(value));
470 return *this;
471 }
473
475
482 inline const Aws::Map<Aws::String, Aws::String>& GetProductFields() const { return m_productFields; }
483 inline bool ProductFieldsHasBeenSet() const { return m_productFieldsHasBeenSet; }
484 template <typename ProductFieldsT = Aws::Map<Aws::String, Aws::String>>
485 void SetProductFields(ProductFieldsT&& value) {
486 m_productFieldsHasBeenSet = true;
487 m_productFields = std::forward<ProductFieldsT>(value);
488 }
489 template <typename ProductFieldsT = Aws::Map<Aws::String, Aws::String>>
490 AwsSecurityFinding& WithProductFields(ProductFieldsT&& value) {
491 SetProductFields(std::forward<ProductFieldsT>(value));
492 return *this;
493 }
494 template <typename ProductFieldsKeyT = Aws::String, typename ProductFieldsValueT = Aws::String>
495 AwsSecurityFinding& AddProductFields(ProductFieldsKeyT&& key, ProductFieldsValueT&& value) {
496 m_productFieldsHasBeenSet = true;
497 m_productFields.emplace(std::forward<ProductFieldsKeyT>(key), std::forward<ProductFieldsValueT>(value));
498 return *this;
499 }
501
503
509 inline const Aws::Map<Aws::String, Aws::String>& GetUserDefinedFields() const { return m_userDefinedFields; }
510 inline bool UserDefinedFieldsHasBeenSet() const { return m_userDefinedFieldsHasBeenSet; }
511 template <typename UserDefinedFieldsT = Aws::Map<Aws::String, Aws::String>>
512 void SetUserDefinedFields(UserDefinedFieldsT&& value) {
513 m_userDefinedFieldsHasBeenSet = true;
514 m_userDefinedFields = std::forward<UserDefinedFieldsT>(value);
515 }
516 template <typename UserDefinedFieldsT = Aws::Map<Aws::String, Aws::String>>
517 AwsSecurityFinding& WithUserDefinedFields(UserDefinedFieldsT&& value) {
518 SetUserDefinedFields(std::forward<UserDefinedFieldsT>(value));
519 return *this;
520 }
521 template <typename UserDefinedFieldsKeyT = Aws::String, typename UserDefinedFieldsValueT = Aws::String>
522 AwsSecurityFinding& AddUserDefinedFields(UserDefinedFieldsKeyT&& key, UserDefinedFieldsValueT&& value) {
523 m_userDefinedFieldsHasBeenSet = true;
524 m_userDefinedFields.emplace(std::forward<UserDefinedFieldsKeyT>(key), std::forward<UserDefinedFieldsValueT>(value));
525 return *this;
526 }
528
530
534 inline const Aws::Vector<Malware>& GetMalware() const { return m_malware; }
535 inline bool MalwareHasBeenSet() const { return m_malwareHasBeenSet; }
536 template <typename MalwareT = Aws::Vector<Malware>>
537 void SetMalware(MalwareT&& value) {
538 m_malwareHasBeenSet = true;
539 m_malware = std::forward<MalwareT>(value);
540 }
541 template <typename MalwareT = Aws::Vector<Malware>>
542 AwsSecurityFinding& WithMalware(MalwareT&& value) {
543 SetMalware(std::forward<MalwareT>(value));
544 return *this;
545 }
546 template <typename MalwareT = Malware>
547 AwsSecurityFinding& AddMalware(MalwareT&& value) {
548 m_malwareHasBeenSet = true;
549 m_malware.emplace_back(std::forward<MalwareT>(value));
550 return *this;
551 }
553
555
558 inline const Network& GetNetwork() const { return m_network; }
559 inline bool NetworkHasBeenSet() const { return m_networkHasBeenSet; }
560 template <typename NetworkT = Network>
561 void SetNetwork(NetworkT&& value) {
562 m_networkHasBeenSet = true;
563 m_network = std::forward<NetworkT>(value);
564 }
565 template <typename NetworkT = Network>
566 AwsSecurityFinding& WithNetwork(NetworkT&& value) {
567 SetNetwork(std::forward<NetworkT>(value));
568 return *this;
569 }
571
573
577 inline const Aws::Vector<NetworkPathComponent>& GetNetworkPath() const { return m_networkPath; }
578 inline bool NetworkPathHasBeenSet() const { return m_networkPathHasBeenSet; }
579 template <typename NetworkPathT = Aws::Vector<NetworkPathComponent>>
580 void SetNetworkPath(NetworkPathT&& value) {
581 m_networkPathHasBeenSet = true;
582 m_networkPath = std::forward<NetworkPathT>(value);
583 }
584 template <typename NetworkPathT = Aws::Vector<NetworkPathComponent>>
585 AwsSecurityFinding& WithNetworkPath(NetworkPathT&& value) {
586 SetNetworkPath(std::forward<NetworkPathT>(value));
587 return *this;
588 }
589 template <typename NetworkPathT = NetworkPathComponent>
590 AwsSecurityFinding& AddNetworkPath(NetworkPathT&& value) {
591 m_networkPathHasBeenSet = true;
592 m_networkPath.emplace_back(std::forward<NetworkPathT>(value));
593 return *this;
594 }
596
598
601 inline const ProcessDetails& GetProcess() const { return m_process; }
602 inline bool ProcessHasBeenSet() const { return m_processHasBeenSet; }
603 template <typename ProcessT = ProcessDetails>
604 void SetProcess(ProcessT&& value) {
605 m_processHasBeenSet = true;
606 m_process = std::forward<ProcessT>(value);
607 }
608 template <typename ProcessT = ProcessDetails>
609 AwsSecurityFinding& WithProcess(ProcessT&& value) {
610 SetProcess(std::forward<ProcessT>(value));
611 return *this;
612 }
614
616
621 inline const Aws::Vector<Threat>& GetThreats() const { return m_threats; }
622 inline bool ThreatsHasBeenSet() const { return m_threatsHasBeenSet; }
623 template <typename ThreatsT = Aws::Vector<Threat>>
624 void SetThreats(ThreatsT&& value) {
625 m_threatsHasBeenSet = true;
626 m_threats = std::forward<ThreatsT>(value);
627 }
628 template <typename ThreatsT = Aws::Vector<Threat>>
629 AwsSecurityFinding& WithThreats(ThreatsT&& value) {
630 SetThreats(std::forward<ThreatsT>(value));
631 return *this;
632 }
633 template <typename ThreatsT = Threat>
634 AwsSecurityFinding& AddThreats(ThreatsT&& value) {
635 m_threatsHasBeenSet = true;
636 m_threats.emplace_back(std::forward<ThreatsT>(value));
637 return *this;
638 }
640
642
646 inline const Aws::Vector<ThreatIntelIndicator>& GetThreatIntelIndicators() const { return m_threatIntelIndicators; }
647 inline bool ThreatIntelIndicatorsHasBeenSet() const { return m_threatIntelIndicatorsHasBeenSet; }
648 template <typename ThreatIntelIndicatorsT = Aws::Vector<ThreatIntelIndicator>>
649 void SetThreatIntelIndicators(ThreatIntelIndicatorsT&& value) {
650 m_threatIntelIndicatorsHasBeenSet = true;
651 m_threatIntelIndicators = std::forward<ThreatIntelIndicatorsT>(value);
652 }
653 template <typename ThreatIntelIndicatorsT = Aws::Vector<ThreatIntelIndicator>>
654 AwsSecurityFinding& WithThreatIntelIndicators(ThreatIntelIndicatorsT&& value) {
655 SetThreatIntelIndicators(std::forward<ThreatIntelIndicatorsT>(value));
656 return *this;
657 }
658 template <typename ThreatIntelIndicatorsT = ThreatIntelIndicator>
659 AwsSecurityFinding& AddThreatIntelIndicators(ThreatIntelIndicatorsT&& value) {
660 m_threatIntelIndicatorsHasBeenSet = true;
661 m_threatIntelIndicators.emplace_back(std::forward<ThreatIntelIndicatorsT>(value));
662 return *this;
663 }
665
667
672 inline const Aws::Vector<Resource>& GetResources() const { return m_resources; }
673 inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; }
674 template <typename ResourcesT = Aws::Vector<Resource>>
675 void SetResources(ResourcesT&& value) {
676 m_resourcesHasBeenSet = true;
677 m_resources = std::forward<ResourcesT>(value);
678 }
679 template <typename ResourcesT = Aws::Vector<Resource>>
680 AwsSecurityFinding& WithResources(ResourcesT&& value) {
681 SetResources(std::forward<ResourcesT>(value));
682 return *this;
683 }
684 template <typename ResourcesT = Resource>
685 AwsSecurityFinding& AddResources(ResourcesT&& value) {
686 m_resourcesHasBeenSet = true;
687 m_resources.emplace_back(std::forward<ResourcesT>(value));
688 return *this;
689 }
691
693
699 inline const Compliance& GetCompliance() const { return m_compliance; }
700 inline bool ComplianceHasBeenSet() const { return m_complianceHasBeenSet; }
701 template <typename ComplianceT = Compliance>
702 void SetCompliance(ComplianceT&& value) {
703 m_complianceHasBeenSet = true;
704 m_compliance = std::forward<ComplianceT>(value);
705 }
706 template <typename ComplianceT = Compliance>
707 AwsSecurityFinding& WithCompliance(ComplianceT&& value) {
708 SetCompliance(std::forward<ComplianceT>(value));
709 return *this;
710 }
712
714
717 inline VerificationState GetVerificationState() const { return m_verificationState; }
718 inline bool VerificationStateHasBeenSet() const { return m_verificationStateHasBeenSet; }
720 m_verificationStateHasBeenSet = true;
721 m_verificationState = value;
722 }
725 return *this;
726 }
728
730
733 inline WorkflowState GetWorkflowState() const { return m_workflowState; }
734 inline bool WorkflowStateHasBeenSet() const { return m_workflowStateHasBeenSet; }
735 inline void SetWorkflowState(WorkflowState value) {
736 m_workflowStateHasBeenSet = true;
737 m_workflowState = value;
738 }
740 SetWorkflowState(value);
741 return *this;
742 }
744
746
750 inline const Workflow& GetWorkflow() const { return m_workflow; }
751 inline bool WorkflowHasBeenSet() const { return m_workflowHasBeenSet; }
752 template <typename WorkflowT = Workflow>
753 void SetWorkflow(WorkflowT&& value) {
754 m_workflowHasBeenSet = true;
755 m_workflow = std::forward<WorkflowT>(value);
756 }
757 template <typename WorkflowT = Workflow>
758 AwsSecurityFinding& WithWorkflow(WorkflowT&& value) {
759 SetWorkflow(std::forward<WorkflowT>(value));
760 return *this;
761 }
763
765
768 inline RecordState GetRecordState() const { return m_recordState; }
769 inline bool RecordStateHasBeenSet() const { return m_recordStateHasBeenSet; }
770 inline void SetRecordState(RecordState value) {
771 m_recordStateHasBeenSet = true;
772 m_recordState = value;
773 }
775 SetRecordState(value);
776 return *this;
777 }
779
781
785 inline const Aws::Vector<RelatedFinding>& GetRelatedFindings() const { return m_relatedFindings; }
786 inline bool RelatedFindingsHasBeenSet() const { return m_relatedFindingsHasBeenSet; }
787 template <typename RelatedFindingsT = Aws::Vector<RelatedFinding>>
788 void SetRelatedFindings(RelatedFindingsT&& value) {
789 m_relatedFindingsHasBeenSet = true;
790 m_relatedFindings = std::forward<RelatedFindingsT>(value);
791 }
792 template <typename RelatedFindingsT = Aws::Vector<RelatedFinding>>
793 AwsSecurityFinding& WithRelatedFindings(RelatedFindingsT&& value) {
794 SetRelatedFindings(std::forward<RelatedFindingsT>(value));
795 return *this;
796 }
797 template <typename RelatedFindingsT = RelatedFinding>
798 AwsSecurityFinding& AddRelatedFindings(RelatedFindingsT&& value) {
799 m_relatedFindingsHasBeenSet = true;
800 m_relatedFindings.emplace_back(std::forward<RelatedFindingsT>(value));
801 return *this;
802 }
804
806
809 inline const Note& GetNote() const { return m_note; }
810 inline bool NoteHasBeenSet() const { return m_noteHasBeenSet; }
811 template <typename NoteT = Note>
812 void SetNote(NoteT&& value) {
813 m_noteHasBeenSet = true;
814 m_note = std::forward<NoteT>(value);
815 }
816 template <typename NoteT = Note>
817 AwsSecurityFinding& WithNote(NoteT&& value) {
818 SetNote(std::forward<NoteT>(value));
819 return *this;
820 }
822
824
827 inline const Aws::Vector<Vulnerability>& GetVulnerabilities() const { return m_vulnerabilities; }
828 inline bool VulnerabilitiesHasBeenSet() const { return m_vulnerabilitiesHasBeenSet; }
829 template <typename VulnerabilitiesT = Aws::Vector<Vulnerability>>
830 void SetVulnerabilities(VulnerabilitiesT&& value) {
831 m_vulnerabilitiesHasBeenSet = true;
832 m_vulnerabilities = std::forward<VulnerabilitiesT>(value);
833 }
834 template <typename VulnerabilitiesT = Aws::Vector<Vulnerability>>
835 AwsSecurityFinding& WithVulnerabilities(VulnerabilitiesT&& value) {
836 SetVulnerabilities(std::forward<VulnerabilitiesT>(value));
837 return *this;
838 }
839 template <typename VulnerabilitiesT = Vulnerability>
840 AwsSecurityFinding& AddVulnerabilities(VulnerabilitiesT&& value) {
841 m_vulnerabilitiesHasBeenSet = true;
842 m_vulnerabilities.emplace_back(std::forward<VulnerabilitiesT>(value));
843 return *this;
844 }
846
848
852 inline const PatchSummary& GetPatchSummary() const { return m_patchSummary; }
853 inline bool PatchSummaryHasBeenSet() const { return m_patchSummaryHasBeenSet; }
854 template <typename PatchSummaryT = PatchSummary>
855 void SetPatchSummary(PatchSummaryT&& value) {
856 m_patchSummaryHasBeenSet = true;
857 m_patchSummary = std::forward<PatchSummaryT>(value);
858 }
859 template <typename PatchSummaryT = PatchSummary>
860 AwsSecurityFinding& WithPatchSummary(PatchSummaryT&& value) {
861 SetPatchSummary(std::forward<PatchSummaryT>(value));
862 return *this;
863 }
865
867
871 inline const Action& GetAction() const { return m_action; }
872 inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; }
873 template <typename ActionT = Action>
874 void SetAction(ActionT&& value) {
875 m_actionHasBeenSet = true;
876 m_action = std::forward<ActionT>(value);
877 }
878 template <typename ActionT = Action>
879 AwsSecurityFinding& WithAction(ActionT&& value) {
880 SetAction(std::forward<ActionT>(value));
881 return *this;
882 }
884
886
891 inline const FindingProviderFields& GetFindingProviderFields() const { return m_findingProviderFields; }
892 inline bool FindingProviderFieldsHasBeenSet() const { return m_findingProviderFieldsHasBeenSet; }
893 template <typename FindingProviderFieldsT = FindingProviderFields>
894 void SetFindingProviderFields(FindingProviderFieldsT&& value) {
895 m_findingProviderFieldsHasBeenSet = true;
896 m_findingProviderFields = std::forward<FindingProviderFieldsT>(value);
897 }
898 template <typename FindingProviderFieldsT = FindingProviderFields>
899 AwsSecurityFinding& WithFindingProviderFields(FindingProviderFieldsT&& value) {
900 SetFindingProviderFields(std::forward<FindingProviderFieldsT>(value));
901 return *this;
902 }
904
906
909 inline bool GetSample() const { return m_sample; }
910 inline bool SampleHasBeenSet() const { return m_sampleHasBeenSet; }
911 inline void SetSample(bool value) {
912 m_sampleHasBeenSet = true;
913 m_sample = value;
914 }
915 inline AwsSecurityFinding& WithSample(bool value) {
916 SetSample(value);
917 return *this;
918 }
920
922
929 inline const GeneratorDetails& GetGeneratorDetails() const { return m_generatorDetails; }
930 inline bool GeneratorDetailsHasBeenSet() const { return m_generatorDetailsHasBeenSet; }
931 template <typename GeneratorDetailsT = GeneratorDetails>
932 void SetGeneratorDetails(GeneratorDetailsT&& value) {
933 m_generatorDetailsHasBeenSet = true;
934 m_generatorDetails = std::forward<GeneratorDetailsT>(value);
935 }
936 template <typename GeneratorDetailsT = GeneratorDetails>
937 AwsSecurityFinding& WithGeneratorDetails(GeneratorDetailsT&& value) {
938 SetGeneratorDetails(std::forward<GeneratorDetailsT>(value));
939 return *this;
940 }
942
944
950 inline const Aws::String& GetProcessedAt() const { return m_processedAt; }
951 inline bool ProcessedAtHasBeenSet() const { return m_processedAtHasBeenSet; }
952 template <typename ProcessedAtT = Aws::String>
953 void SetProcessedAt(ProcessedAtT&& value) {
954 m_processedAtHasBeenSet = true;
955 m_processedAt = std::forward<ProcessedAtT>(value);
956 }
957 template <typename ProcessedAtT = Aws::String>
958 AwsSecurityFinding& WithProcessedAt(ProcessedAtT&& value) {
959 SetProcessedAt(std::forward<ProcessedAtT>(value));
960 return *this;
961 }
963
965
970 inline const Aws::String& GetAwsAccountName() const { return m_awsAccountName; }
971 inline bool AwsAccountNameHasBeenSet() const { return m_awsAccountNameHasBeenSet; }
972 template <typename AwsAccountNameT = Aws::String>
973 void SetAwsAccountName(AwsAccountNameT&& value) {
974 m_awsAccountNameHasBeenSet = true;
975 m_awsAccountName = std::forward<AwsAccountNameT>(value);
976 }
977 template <typename AwsAccountNameT = Aws::String>
978 AwsSecurityFinding& WithAwsAccountName(AwsAccountNameT&& value) {
979 SetAwsAccountName(std::forward<AwsAccountNameT>(value));
980 return *this;
981 }
983
985
994 inline const Detection& GetDetection() const { return m_detection; }
995 inline bool DetectionHasBeenSet() const { return m_detectionHasBeenSet; }
996 template <typename DetectionT = Detection>
997 void SetDetection(DetectionT&& value) {
998 m_detectionHasBeenSet = true;
999 m_detection = std::forward<DetectionT>(value);
1000 }
1001 template <typename DetectionT = Detection>
1002 AwsSecurityFinding& WithDetection(DetectionT&& value) {
1003 SetDetection(std::forward<DetectionT>(value));
1004 return *this;
1005 }
1007 private:
1008 Aws::String m_schemaVersion;
1009
1010 Aws::String m_id;
1011
1012 Aws::String m_productArn;
1013
1014 Aws::String m_productName;
1015
1016 Aws::String m_companyName;
1017
1018 Aws::String m_region;
1019
1020 Aws::String m_generatorId;
1021
1022 Aws::String m_awsAccountId;
1023
1025
1026 Aws::String m_firstObservedAt;
1027
1028 Aws::String m_lastObservedAt;
1029
1030 Aws::String m_createdAt;
1031
1032 Aws::String m_updatedAt;
1033
1034 Severity m_severity;
1035
1036 int m_confidence{0};
1037
1038 int m_criticality{0};
1039
1040 Aws::String m_title;
1041
1042 Aws::String m_description;
1043
1044 Remediation m_remediation;
1045
1046 Aws::String m_sourceUrl;
1047
1048 Aws::Map<Aws::String, Aws::String> m_productFields;
1049
1050 Aws::Map<Aws::String, Aws::String> m_userDefinedFields;
1051
1052 Aws::Vector<Malware> m_malware;
1053
1054 Network m_network;
1055
1057
1058 ProcessDetails m_process;
1059
1060 Aws::Vector<Threat> m_threats;
1061
1062 Aws::Vector<ThreatIntelIndicator> m_threatIntelIndicators;
1063
1064 Aws::Vector<Resource> m_resources;
1065
1066 Compliance m_compliance;
1067
1068 VerificationState m_verificationState{VerificationState::NOT_SET};
1069
1070 WorkflowState m_workflowState{WorkflowState::NOT_SET};
1071
1072 Workflow m_workflow;
1073
1074 RecordState m_recordState{RecordState::NOT_SET};
1075
1076 Aws::Vector<RelatedFinding> m_relatedFindings;
1077
1078 Note m_note;
1079
1080 Aws::Vector<Vulnerability> m_vulnerabilities;
1081
1082 PatchSummary m_patchSummary;
1083
1084 Action m_action;
1085
1086 FindingProviderFields m_findingProviderFields;
1087
1088 bool m_sample{false};
1089
1090 GeneratorDetails m_generatorDetails;
1091
1092 Aws::String m_processedAt;
1093
1094 Aws::String m_awsAccountName;
1095
1096 Detection m_detection;
1097 bool m_schemaVersionHasBeenSet = false;
1098 bool m_idHasBeenSet = false;
1099 bool m_productArnHasBeenSet = false;
1100 bool m_productNameHasBeenSet = false;
1101 bool m_companyNameHasBeenSet = false;
1102 bool m_regionHasBeenSet = false;
1103 bool m_generatorIdHasBeenSet = false;
1104 bool m_awsAccountIdHasBeenSet = false;
1105 bool m_typesHasBeenSet = false;
1106 bool m_firstObservedAtHasBeenSet = false;
1107 bool m_lastObservedAtHasBeenSet = false;
1108 bool m_createdAtHasBeenSet = false;
1109 bool m_updatedAtHasBeenSet = false;
1110 bool m_severityHasBeenSet = false;
1111 bool m_confidenceHasBeenSet = false;
1112 bool m_criticalityHasBeenSet = false;
1113 bool m_titleHasBeenSet = false;
1114 bool m_descriptionHasBeenSet = false;
1115 bool m_remediationHasBeenSet = false;
1116 bool m_sourceUrlHasBeenSet = false;
1117 bool m_productFieldsHasBeenSet = false;
1118 bool m_userDefinedFieldsHasBeenSet = false;
1119 bool m_malwareHasBeenSet = false;
1120 bool m_networkHasBeenSet = false;
1121 bool m_networkPathHasBeenSet = false;
1122 bool m_processHasBeenSet = false;
1123 bool m_threatsHasBeenSet = false;
1124 bool m_threatIntelIndicatorsHasBeenSet = false;
1125 bool m_resourcesHasBeenSet = false;
1126 bool m_complianceHasBeenSet = false;
1127 bool m_verificationStateHasBeenSet = false;
1128 bool m_workflowStateHasBeenSet = false;
1129 bool m_workflowHasBeenSet = false;
1130 bool m_recordStateHasBeenSet = false;
1131 bool m_relatedFindingsHasBeenSet = false;
1132 bool m_noteHasBeenSet = false;
1133 bool m_vulnerabilitiesHasBeenSet = false;
1134 bool m_patchSummaryHasBeenSet = false;
1135 bool m_actionHasBeenSet = false;
1136 bool m_findingProviderFieldsHasBeenSet = false;
1137 bool m_sampleHasBeenSet = false;
1138 bool m_generatorDetailsHasBeenSet = false;
1139 bool m_processedAtHasBeenSet = false;
1140 bool m_awsAccountNameHasBeenSet = false;
1141 bool m_detectionHasBeenSet = false;
1142};
1143
1144} // namespace Model
1145} // namespace SecurityHub
1146} // namespace Aws
AwsSecurityFinding & WithVerificationState(VerificationState value)
const Aws::Vector< NetworkPathComponent > & GetNetworkPath() const
void SetFindingProviderFields(FindingProviderFieldsT &&value)
AwsSecurityFinding & WithRemediation(RemediationT &&value)
AwsSecurityFinding & WithRelatedFindings(RelatedFindingsT &&value)
AwsSecurityFinding & WithMalware(MalwareT &&value)
const Aws::Map< Aws::String, Aws::String > & GetUserDefinedFields() const
AwsSecurityFinding & WithDescription(DescriptionT &&value)
AwsSecurityFinding & WithNote(NoteT &&value)
void SetVerificationState(VerificationState value)
AwsSecurityFinding & WithThreats(ThreatsT &&value)
AwsSecurityFinding & WithRegion(RegionT &&value)
AwsSecurityFinding & WithCreatedAt(CreatedAtT &&value)
AwsSecurityFinding & WithPatchSummary(PatchSummaryT &&value)
const GeneratorDetails & GetGeneratorDetails() const
AwsSecurityFinding & WithGeneratorDetails(GeneratorDetailsT &&value)
AwsSecurityFinding & WithProductArn(ProductArnT &&value)
AwsSecurityFinding & WithAction(ActionT &&value)
const Aws::Vector< RelatedFinding > & GetRelatedFindings() const
AWS_SECURITYHUB_API AwsSecurityFinding & operator=(Aws::Utils::Json::JsonView jsonValue)
AwsSecurityFinding & WithRecordState(RecordState value)
AwsSecurityFinding & AddProductFields(ProductFieldsKeyT &&key, ProductFieldsValueT &&value)
const Aws::Vector< Resource > & GetResources() const
AwsSecurityFinding & WithLastObservedAt(LastObservedAtT &&value)
AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const
void SetUserDefinedFields(UserDefinedFieldsT &&value)
const FindingProviderFields & GetFindingProviderFields() const
AwsSecurityFinding & AddMalware(MalwareT &&value)
AwsSecurityFinding & WithVulnerabilities(VulnerabilitiesT &&value)
const Aws::Vector< ThreatIntelIndicator > & GetThreatIntelIndicators() const
AwsSecurityFinding & WithAwsAccountName(AwsAccountNameT &&value)
AwsSecurityFinding & WithProductFields(ProductFieldsT &&value)
AwsSecurityFinding & WithSeverity(SeverityT &&value)
AwsSecurityFinding & WithProcessedAt(ProcessedAtT &&value)
AwsSecurityFinding & WithCriticality(int value)
void SetAwsAccountName(AwsAccountNameT &&value)
AwsSecurityFinding & WithWorkflowState(WorkflowState value)
AwsSecurityFinding & WithProcess(ProcessT &&value)
AwsSecurityFinding & WithTitle(TitleT &&value)
void SetGeneratorDetails(GeneratorDetailsT &&value)
AwsSecurityFinding & WithThreatIntelIndicators(ThreatIntelIndicatorsT &&value)
AwsSecurityFinding & WithSchemaVersion(SchemaVersionT &&value)
AwsSecurityFinding & WithFindingProviderFields(FindingProviderFieldsT &&value)
AwsSecurityFinding & AddResources(ResourcesT &&value)
AwsSecurityFinding & AddThreatIntelIndicators(ThreatIntelIndicatorsT &&value)
void SetRelatedFindings(RelatedFindingsT &&value)
AwsSecurityFinding & WithDetection(DetectionT &&value)
const Aws::Vector< Threat > & GetThreats() const
AwsSecurityFinding & WithConfidence(int value)
AwsSecurityFinding & WithNetwork(NetworkT &&value)
AWS_SECURITYHUB_API AwsSecurityFinding()=default
const Aws::Vector< Malware > & GetMalware() const
AwsSecurityFinding & AddThreats(ThreatsT &&value)
AwsSecurityFinding & WithAwsAccountId(AwsAccountIdT &&value)
AwsSecurityFinding & WithSample(bool value)
AwsSecurityFinding & AddUserDefinedFields(UserDefinedFieldsKeyT &&key, UserDefinedFieldsValueT &&value)
AwsSecurityFinding & WithUserDefinedFields(UserDefinedFieldsT &&value)
AwsSecurityFinding & WithProductName(ProductNameT &&value)
AwsSecurityFinding & WithWorkflow(WorkflowT &&value)
void SetFirstObservedAt(FirstObservedAtT &&value)
AwsSecurityFinding & AddTypes(TypesT &&value)
AwsSecurityFinding & AddRelatedFindings(RelatedFindingsT &&value)
AwsSecurityFinding & WithTypes(TypesT &&value)
AwsSecurityFinding & AddNetworkPath(NetworkPathT &&value)
AwsSecurityFinding & WithUpdatedAt(UpdatedAtT &&value)
AwsSecurityFinding & WithId(IdT &&value)
AwsSecurityFinding & WithCompanyName(CompanyNameT &&value)
AwsSecurityFinding & WithResources(ResourcesT &&value)
AwsSecurityFinding & WithNetworkPath(NetworkPathT &&value)
AwsSecurityFinding & AddVulnerabilities(VulnerabilitiesT &&value)
void SetVulnerabilities(VulnerabilitiesT &&value)
void SetSchemaVersion(SchemaVersionT &&value)
AwsSecurityFinding & WithSourceUrl(SourceUrlT &&value)
AwsSecurityFinding & WithCompliance(ComplianceT &&value)
AwsSecurityFinding & WithGeneratorId(GeneratorIdT &&value)
void SetLastObservedAt(LastObservedAtT &&value)
const Aws::Vector< Aws::String > & GetTypes() const
AWS_SECURITYHUB_API AwsSecurityFinding(Aws::Utils::Json::JsonView jsonValue)
AwsSecurityFinding & WithFirstObservedAt(FirstObservedAtT &&value)
const Aws::Map< Aws::String, Aws::String > & GetProductFields() const
void SetThreatIntelIndicators(ThreatIntelIndicatorsT &&value)
const Aws::Vector< Vulnerability > & GetVulnerabilities() const
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
Aws::Utils::Json::JsonValue JsonValue