AWS SDK for C++

AWS SDK for C++ Version 1.11.717

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
287 inline const Aws::String& GetLastObservedAt() const { return m_lastObservedAt; }
288 inline bool LastObservedAtHasBeenSet() const { return m_lastObservedAtHasBeenSet; }
289 template <typename LastObservedAtT = Aws::String>
290 void SetLastObservedAt(LastObservedAtT&& value) {
291 m_lastObservedAtHasBeenSet = true;
292 m_lastObservedAt = std::forward<LastObservedAtT>(value);
293 }
294 template <typename LastObservedAtT = Aws::String>
295 AwsSecurityFinding& WithLastObservedAt(LastObservedAtT&& value) {
296 SetLastObservedAt(std::forward<LastObservedAtT>(value));
297 return *this;
298 }
300
302
308 inline const Aws::String& GetCreatedAt() const { return m_createdAt; }
309 inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
310 template <typename CreatedAtT = Aws::String>
311 void SetCreatedAt(CreatedAtT&& value) {
312 m_createdAtHasBeenSet = true;
313 m_createdAt = std::forward<CreatedAtT>(value);
314 }
315 template <typename CreatedAtT = Aws::String>
316 AwsSecurityFinding& WithCreatedAt(CreatedAtT&& value) {
317 SetCreatedAt(std::forward<CreatedAtT>(value));
318 return *this;
319 }
321
323
329 inline const Aws::String& GetUpdatedAt() const { return m_updatedAt; }
330 inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; }
331 template <typename UpdatedAtT = Aws::String>
332 void SetUpdatedAt(UpdatedAtT&& value) {
333 m_updatedAtHasBeenSet = true;
334 m_updatedAt = std::forward<UpdatedAtT>(value);
335 }
336 template <typename UpdatedAtT = Aws::String>
337 AwsSecurityFinding& WithUpdatedAt(UpdatedAtT&& value) {
338 SetUpdatedAt(std::forward<UpdatedAtT>(value));
339 return *this;
340 }
342
344
347 inline const Severity& GetSeverity() const { return m_severity; }
348 inline bool SeverityHasBeenSet() const { return m_severityHasBeenSet; }
349 template <typename SeverityT = Severity>
350 void SetSeverity(SeverityT&& value) {
351 m_severityHasBeenSet = true;
352 m_severity = std::forward<SeverityT>(value);
353 }
354 template <typename SeverityT = Severity>
355 AwsSecurityFinding& WithSeverity(SeverityT&& value) {
356 SetSeverity(std::forward<SeverityT>(value));
357 return *this;
358 }
360
362
368 inline int GetConfidence() const { return m_confidence; }
369 inline bool ConfidenceHasBeenSet() const { return m_confidenceHasBeenSet; }
370 inline void SetConfidence(int value) {
371 m_confidenceHasBeenSet = true;
372 m_confidence = value;
373 }
375 SetConfidence(value);
376 return *this;
377 }
379
381
386 inline int GetCriticality() const { return m_criticality; }
387 inline bool CriticalityHasBeenSet() const { return m_criticalityHasBeenSet; }
388 inline void SetCriticality(int value) {
389 m_criticalityHasBeenSet = true;
390 m_criticality = value;
391 }
393 SetCriticality(value);
394 return *this;
395 }
397
399
403 inline const Aws::String& GetTitle() const { return m_title; }
404 inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; }
405 template <typename TitleT = Aws::String>
406 void SetTitle(TitleT&& value) {
407 m_titleHasBeenSet = true;
408 m_title = std::forward<TitleT>(value);
409 }
410 template <typename TitleT = Aws::String>
411 AwsSecurityFinding& WithTitle(TitleT&& value) {
412 SetTitle(std::forward<TitleT>(value));
413 return *this;
414 }
416
418
422 inline const Aws::String& GetDescription() const { return m_description; }
423 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
424 template <typename DescriptionT = Aws::String>
425 void SetDescription(DescriptionT&& value) {
426 m_descriptionHasBeenSet = true;
427 m_description = std::forward<DescriptionT>(value);
428 }
429 template <typename DescriptionT = Aws::String>
430 AwsSecurityFinding& WithDescription(DescriptionT&& value) {
431 SetDescription(std::forward<DescriptionT>(value));
432 return *this;
433 }
435
437
440 inline const Remediation& GetRemediation() const { return m_remediation; }
441 inline bool RemediationHasBeenSet() const { return m_remediationHasBeenSet; }
442 template <typename RemediationT = Remediation>
443 void SetRemediation(RemediationT&& value) {
444 m_remediationHasBeenSet = true;
445 m_remediation = std::forward<RemediationT>(value);
446 }
447 template <typename RemediationT = Remediation>
448 AwsSecurityFinding& WithRemediation(RemediationT&& value) {
449 SetRemediation(std::forward<RemediationT>(value));
450 return *this;
451 }
453
455
459 inline const Aws::String& GetSourceUrl() const { return m_sourceUrl; }
460 inline bool SourceUrlHasBeenSet() const { return m_sourceUrlHasBeenSet; }
461 template <typename SourceUrlT = Aws::String>
462 void SetSourceUrl(SourceUrlT&& value) {
463 m_sourceUrlHasBeenSet = true;
464 m_sourceUrl = std::forward<SourceUrlT>(value);
465 }
466 template <typename SourceUrlT = Aws::String>
467 AwsSecurityFinding& WithSourceUrl(SourceUrlT&& value) {
468 SetSourceUrl(std::forward<SourceUrlT>(value));
469 return *this;
470 }
472
474
481 inline const Aws::Map<Aws::String, Aws::String>& GetProductFields() const { return m_productFields; }
482 inline bool ProductFieldsHasBeenSet() const { return m_productFieldsHasBeenSet; }
483 template <typename ProductFieldsT = Aws::Map<Aws::String, Aws::String>>
484 void SetProductFields(ProductFieldsT&& value) {
485 m_productFieldsHasBeenSet = true;
486 m_productFields = std::forward<ProductFieldsT>(value);
487 }
488 template <typename ProductFieldsT = Aws::Map<Aws::String, Aws::String>>
489 AwsSecurityFinding& WithProductFields(ProductFieldsT&& value) {
490 SetProductFields(std::forward<ProductFieldsT>(value));
491 return *this;
492 }
493 template <typename ProductFieldsKeyT = Aws::String, typename ProductFieldsValueT = Aws::String>
494 AwsSecurityFinding& AddProductFields(ProductFieldsKeyT&& key, ProductFieldsValueT&& value) {
495 m_productFieldsHasBeenSet = true;
496 m_productFields.emplace(std::forward<ProductFieldsKeyT>(key), std::forward<ProductFieldsValueT>(value));
497 return *this;
498 }
500
502
508 inline const Aws::Map<Aws::String, Aws::String>& GetUserDefinedFields() const { return m_userDefinedFields; }
509 inline bool UserDefinedFieldsHasBeenSet() const { return m_userDefinedFieldsHasBeenSet; }
510 template <typename UserDefinedFieldsT = Aws::Map<Aws::String, Aws::String>>
511 void SetUserDefinedFields(UserDefinedFieldsT&& value) {
512 m_userDefinedFieldsHasBeenSet = true;
513 m_userDefinedFields = std::forward<UserDefinedFieldsT>(value);
514 }
515 template <typename UserDefinedFieldsT = Aws::Map<Aws::String, Aws::String>>
516 AwsSecurityFinding& WithUserDefinedFields(UserDefinedFieldsT&& value) {
517 SetUserDefinedFields(std::forward<UserDefinedFieldsT>(value));
518 return *this;
519 }
520 template <typename UserDefinedFieldsKeyT = Aws::String, typename UserDefinedFieldsValueT = Aws::String>
521 AwsSecurityFinding& AddUserDefinedFields(UserDefinedFieldsKeyT&& key, UserDefinedFieldsValueT&& value) {
522 m_userDefinedFieldsHasBeenSet = true;
523 m_userDefinedFields.emplace(std::forward<UserDefinedFieldsKeyT>(key), std::forward<UserDefinedFieldsValueT>(value));
524 return *this;
525 }
527
529
533 inline const Aws::Vector<Malware>& GetMalware() const { return m_malware; }
534 inline bool MalwareHasBeenSet() const { return m_malwareHasBeenSet; }
535 template <typename MalwareT = Aws::Vector<Malware>>
536 void SetMalware(MalwareT&& value) {
537 m_malwareHasBeenSet = true;
538 m_malware = std::forward<MalwareT>(value);
539 }
540 template <typename MalwareT = Aws::Vector<Malware>>
541 AwsSecurityFinding& WithMalware(MalwareT&& value) {
542 SetMalware(std::forward<MalwareT>(value));
543 return *this;
544 }
545 template <typename MalwareT = Malware>
546 AwsSecurityFinding& AddMalware(MalwareT&& value) {
547 m_malwareHasBeenSet = true;
548 m_malware.emplace_back(std::forward<MalwareT>(value));
549 return *this;
550 }
552
554
557 inline const Network& GetNetwork() const { return m_network; }
558 inline bool NetworkHasBeenSet() const { return m_networkHasBeenSet; }
559 template <typename NetworkT = Network>
560 void SetNetwork(NetworkT&& value) {
561 m_networkHasBeenSet = true;
562 m_network = std::forward<NetworkT>(value);
563 }
564 template <typename NetworkT = Network>
565 AwsSecurityFinding& WithNetwork(NetworkT&& value) {
566 SetNetwork(std::forward<NetworkT>(value));
567 return *this;
568 }
570
572
576 inline const Aws::Vector<NetworkPathComponent>& GetNetworkPath() const { return m_networkPath; }
577 inline bool NetworkPathHasBeenSet() const { return m_networkPathHasBeenSet; }
578 template <typename NetworkPathT = Aws::Vector<NetworkPathComponent>>
579 void SetNetworkPath(NetworkPathT&& value) {
580 m_networkPathHasBeenSet = true;
581 m_networkPath = std::forward<NetworkPathT>(value);
582 }
583 template <typename NetworkPathT = Aws::Vector<NetworkPathComponent>>
584 AwsSecurityFinding& WithNetworkPath(NetworkPathT&& value) {
585 SetNetworkPath(std::forward<NetworkPathT>(value));
586 return *this;
587 }
588 template <typename NetworkPathT = NetworkPathComponent>
589 AwsSecurityFinding& AddNetworkPath(NetworkPathT&& value) {
590 m_networkPathHasBeenSet = true;
591 m_networkPath.emplace_back(std::forward<NetworkPathT>(value));
592 return *this;
593 }
595
597
600 inline const ProcessDetails& GetProcess() const { return m_process; }
601 inline bool ProcessHasBeenSet() const { return m_processHasBeenSet; }
602 template <typename ProcessT = ProcessDetails>
603 void SetProcess(ProcessT&& value) {
604 m_processHasBeenSet = true;
605 m_process = std::forward<ProcessT>(value);
606 }
607 template <typename ProcessT = ProcessDetails>
608 AwsSecurityFinding& WithProcess(ProcessT&& value) {
609 SetProcess(std::forward<ProcessT>(value));
610 return *this;
611 }
613
615
620 inline const Aws::Vector<Threat>& GetThreats() const { return m_threats; }
621 inline bool ThreatsHasBeenSet() const { return m_threatsHasBeenSet; }
622 template <typename ThreatsT = Aws::Vector<Threat>>
623 void SetThreats(ThreatsT&& value) {
624 m_threatsHasBeenSet = true;
625 m_threats = std::forward<ThreatsT>(value);
626 }
627 template <typename ThreatsT = Aws::Vector<Threat>>
628 AwsSecurityFinding& WithThreats(ThreatsT&& value) {
629 SetThreats(std::forward<ThreatsT>(value));
630 return *this;
631 }
632 template <typename ThreatsT = Threat>
633 AwsSecurityFinding& AddThreats(ThreatsT&& value) {
634 m_threatsHasBeenSet = true;
635 m_threats.emplace_back(std::forward<ThreatsT>(value));
636 return *this;
637 }
639
641
645 inline const Aws::Vector<ThreatIntelIndicator>& GetThreatIntelIndicators() const { return m_threatIntelIndicators; }
646 inline bool ThreatIntelIndicatorsHasBeenSet() const { return m_threatIntelIndicatorsHasBeenSet; }
647 template <typename ThreatIntelIndicatorsT = Aws::Vector<ThreatIntelIndicator>>
648 void SetThreatIntelIndicators(ThreatIntelIndicatorsT&& value) {
649 m_threatIntelIndicatorsHasBeenSet = true;
650 m_threatIntelIndicators = std::forward<ThreatIntelIndicatorsT>(value);
651 }
652 template <typename ThreatIntelIndicatorsT = Aws::Vector<ThreatIntelIndicator>>
653 AwsSecurityFinding& WithThreatIntelIndicators(ThreatIntelIndicatorsT&& value) {
654 SetThreatIntelIndicators(std::forward<ThreatIntelIndicatorsT>(value));
655 return *this;
656 }
657 template <typename ThreatIntelIndicatorsT = ThreatIntelIndicator>
658 AwsSecurityFinding& AddThreatIntelIndicators(ThreatIntelIndicatorsT&& value) {
659 m_threatIntelIndicatorsHasBeenSet = true;
660 m_threatIntelIndicators.emplace_back(std::forward<ThreatIntelIndicatorsT>(value));
661 return *this;
662 }
664
666
671 inline const Aws::Vector<Resource>& GetResources() const { return m_resources; }
672 inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; }
673 template <typename ResourcesT = Aws::Vector<Resource>>
674 void SetResources(ResourcesT&& value) {
675 m_resourcesHasBeenSet = true;
676 m_resources = std::forward<ResourcesT>(value);
677 }
678 template <typename ResourcesT = Aws::Vector<Resource>>
679 AwsSecurityFinding& WithResources(ResourcesT&& value) {
680 SetResources(std::forward<ResourcesT>(value));
681 return *this;
682 }
683 template <typename ResourcesT = Resource>
684 AwsSecurityFinding& AddResources(ResourcesT&& value) {
685 m_resourcesHasBeenSet = true;
686 m_resources.emplace_back(std::forward<ResourcesT>(value));
687 return *this;
688 }
690
692
698 inline const Compliance& GetCompliance() const { return m_compliance; }
699 inline bool ComplianceHasBeenSet() const { return m_complianceHasBeenSet; }
700 template <typename ComplianceT = Compliance>
701 void SetCompliance(ComplianceT&& value) {
702 m_complianceHasBeenSet = true;
703 m_compliance = std::forward<ComplianceT>(value);
704 }
705 template <typename ComplianceT = Compliance>
706 AwsSecurityFinding& WithCompliance(ComplianceT&& value) {
707 SetCompliance(std::forward<ComplianceT>(value));
708 return *this;
709 }
711
713
716 inline VerificationState GetVerificationState() const { return m_verificationState; }
717 inline bool VerificationStateHasBeenSet() const { return m_verificationStateHasBeenSet; }
719 m_verificationStateHasBeenSet = true;
720 m_verificationState = value;
721 }
724 return *this;
725 }
727
729
732 inline WorkflowState GetWorkflowState() const { return m_workflowState; }
733 inline bool WorkflowStateHasBeenSet() const { return m_workflowStateHasBeenSet; }
734 inline void SetWorkflowState(WorkflowState value) {
735 m_workflowStateHasBeenSet = true;
736 m_workflowState = value;
737 }
739 SetWorkflowState(value);
740 return *this;
741 }
743
745
749 inline const Workflow& GetWorkflow() const { return m_workflow; }
750 inline bool WorkflowHasBeenSet() const { return m_workflowHasBeenSet; }
751 template <typename WorkflowT = Workflow>
752 void SetWorkflow(WorkflowT&& value) {
753 m_workflowHasBeenSet = true;
754 m_workflow = std::forward<WorkflowT>(value);
755 }
756 template <typename WorkflowT = Workflow>
757 AwsSecurityFinding& WithWorkflow(WorkflowT&& value) {
758 SetWorkflow(std::forward<WorkflowT>(value));
759 return *this;
760 }
762
764
767 inline RecordState GetRecordState() const { return m_recordState; }
768 inline bool RecordStateHasBeenSet() const { return m_recordStateHasBeenSet; }
769 inline void SetRecordState(RecordState value) {
770 m_recordStateHasBeenSet = true;
771 m_recordState = value;
772 }
774 SetRecordState(value);
775 return *this;
776 }
778
780
784 inline const Aws::Vector<RelatedFinding>& GetRelatedFindings() const { return m_relatedFindings; }
785 inline bool RelatedFindingsHasBeenSet() const { return m_relatedFindingsHasBeenSet; }
786 template <typename RelatedFindingsT = Aws::Vector<RelatedFinding>>
787 void SetRelatedFindings(RelatedFindingsT&& value) {
788 m_relatedFindingsHasBeenSet = true;
789 m_relatedFindings = std::forward<RelatedFindingsT>(value);
790 }
791 template <typename RelatedFindingsT = Aws::Vector<RelatedFinding>>
792 AwsSecurityFinding& WithRelatedFindings(RelatedFindingsT&& value) {
793 SetRelatedFindings(std::forward<RelatedFindingsT>(value));
794 return *this;
795 }
796 template <typename RelatedFindingsT = RelatedFinding>
797 AwsSecurityFinding& AddRelatedFindings(RelatedFindingsT&& value) {
798 m_relatedFindingsHasBeenSet = true;
799 m_relatedFindings.emplace_back(std::forward<RelatedFindingsT>(value));
800 return *this;
801 }
803
805
808 inline const Note& GetNote() const { return m_note; }
809 inline bool NoteHasBeenSet() const { return m_noteHasBeenSet; }
810 template <typename NoteT = Note>
811 void SetNote(NoteT&& value) {
812 m_noteHasBeenSet = true;
813 m_note = std::forward<NoteT>(value);
814 }
815 template <typename NoteT = Note>
816 AwsSecurityFinding& WithNote(NoteT&& value) {
817 SetNote(std::forward<NoteT>(value));
818 return *this;
819 }
821
823
826 inline const Aws::Vector<Vulnerability>& GetVulnerabilities() const { return m_vulnerabilities; }
827 inline bool VulnerabilitiesHasBeenSet() const { return m_vulnerabilitiesHasBeenSet; }
828 template <typename VulnerabilitiesT = Aws::Vector<Vulnerability>>
829 void SetVulnerabilities(VulnerabilitiesT&& value) {
830 m_vulnerabilitiesHasBeenSet = true;
831 m_vulnerabilities = std::forward<VulnerabilitiesT>(value);
832 }
833 template <typename VulnerabilitiesT = Aws::Vector<Vulnerability>>
834 AwsSecurityFinding& WithVulnerabilities(VulnerabilitiesT&& value) {
835 SetVulnerabilities(std::forward<VulnerabilitiesT>(value));
836 return *this;
837 }
838 template <typename VulnerabilitiesT = Vulnerability>
839 AwsSecurityFinding& AddVulnerabilities(VulnerabilitiesT&& value) {
840 m_vulnerabilitiesHasBeenSet = true;
841 m_vulnerabilities.emplace_back(std::forward<VulnerabilitiesT>(value));
842 return *this;
843 }
845
847
851 inline const PatchSummary& GetPatchSummary() const { return m_patchSummary; }
852 inline bool PatchSummaryHasBeenSet() const { return m_patchSummaryHasBeenSet; }
853 template <typename PatchSummaryT = PatchSummary>
854 void SetPatchSummary(PatchSummaryT&& value) {
855 m_patchSummaryHasBeenSet = true;
856 m_patchSummary = std::forward<PatchSummaryT>(value);
857 }
858 template <typename PatchSummaryT = PatchSummary>
859 AwsSecurityFinding& WithPatchSummary(PatchSummaryT&& value) {
860 SetPatchSummary(std::forward<PatchSummaryT>(value));
861 return *this;
862 }
864
866
870 inline const Action& GetAction() const { return m_action; }
871 inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; }
872 template <typename ActionT = Action>
873 void SetAction(ActionT&& value) {
874 m_actionHasBeenSet = true;
875 m_action = std::forward<ActionT>(value);
876 }
877 template <typename ActionT = Action>
878 AwsSecurityFinding& WithAction(ActionT&& value) {
879 SetAction(std::forward<ActionT>(value));
880 return *this;
881 }
883
885
890 inline const FindingProviderFields& GetFindingProviderFields() const { return m_findingProviderFields; }
891 inline bool FindingProviderFieldsHasBeenSet() const { return m_findingProviderFieldsHasBeenSet; }
892 template <typename FindingProviderFieldsT = FindingProviderFields>
893 void SetFindingProviderFields(FindingProviderFieldsT&& value) {
894 m_findingProviderFieldsHasBeenSet = true;
895 m_findingProviderFields = std::forward<FindingProviderFieldsT>(value);
896 }
897 template <typename FindingProviderFieldsT = FindingProviderFields>
898 AwsSecurityFinding& WithFindingProviderFields(FindingProviderFieldsT&& value) {
899 SetFindingProviderFields(std::forward<FindingProviderFieldsT>(value));
900 return *this;
901 }
903
905
908 inline bool GetSample() const { return m_sample; }
909 inline bool SampleHasBeenSet() const { return m_sampleHasBeenSet; }
910 inline void SetSample(bool value) {
911 m_sampleHasBeenSet = true;
912 m_sample = value;
913 }
914 inline AwsSecurityFinding& WithSample(bool value) {
915 SetSample(value);
916 return *this;
917 }
919
921
928 inline const GeneratorDetails& GetGeneratorDetails() const { return m_generatorDetails; }
929 inline bool GeneratorDetailsHasBeenSet() const { return m_generatorDetailsHasBeenSet; }
930 template <typename GeneratorDetailsT = GeneratorDetails>
931 void SetGeneratorDetails(GeneratorDetailsT&& value) {
932 m_generatorDetailsHasBeenSet = true;
933 m_generatorDetails = std::forward<GeneratorDetailsT>(value);
934 }
935 template <typename GeneratorDetailsT = GeneratorDetails>
936 AwsSecurityFinding& WithGeneratorDetails(GeneratorDetailsT&& value) {
937 SetGeneratorDetails(std::forward<GeneratorDetailsT>(value));
938 return *this;
939 }
941
943
949 inline const Aws::String& GetProcessedAt() const { return m_processedAt; }
950 inline bool ProcessedAtHasBeenSet() const { return m_processedAtHasBeenSet; }
951 template <typename ProcessedAtT = Aws::String>
952 void SetProcessedAt(ProcessedAtT&& value) {
953 m_processedAtHasBeenSet = true;
954 m_processedAt = std::forward<ProcessedAtT>(value);
955 }
956 template <typename ProcessedAtT = Aws::String>
957 AwsSecurityFinding& WithProcessedAt(ProcessedAtT&& value) {
958 SetProcessedAt(std::forward<ProcessedAtT>(value));
959 return *this;
960 }
962
964
969 inline const Aws::String& GetAwsAccountName() const { return m_awsAccountName; }
970 inline bool AwsAccountNameHasBeenSet() const { return m_awsAccountNameHasBeenSet; }
971 template <typename AwsAccountNameT = Aws::String>
972 void SetAwsAccountName(AwsAccountNameT&& value) {
973 m_awsAccountNameHasBeenSet = true;
974 m_awsAccountName = std::forward<AwsAccountNameT>(value);
975 }
976 template <typename AwsAccountNameT = Aws::String>
977 AwsSecurityFinding& WithAwsAccountName(AwsAccountNameT&& value) {
978 SetAwsAccountName(std::forward<AwsAccountNameT>(value));
979 return *this;
980 }
982
984
993 inline const Detection& GetDetection() const { return m_detection; }
994 inline bool DetectionHasBeenSet() const { return m_detectionHasBeenSet; }
995 template <typename DetectionT = Detection>
996 void SetDetection(DetectionT&& value) {
997 m_detectionHasBeenSet = true;
998 m_detection = std::forward<DetectionT>(value);
999 }
1000 template <typename DetectionT = Detection>
1001 AwsSecurityFinding& WithDetection(DetectionT&& value) {
1002 SetDetection(std::forward<DetectionT>(value));
1003 return *this;
1004 }
1006 private:
1007 Aws::String m_schemaVersion;
1008
1009 Aws::String m_id;
1010
1011 Aws::String m_productArn;
1012
1013 Aws::String m_productName;
1014
1015 Aws::String m_companyName;
1016
1017 Aws::String m_region;
1018
1019 Aws::String m_generatorId;
1020
1021 Aws::String m_awsAccountId;
1022
1024
1025 Aws::String m_firstObservedAt;
1026
1027 Aws::String m_lastObservedAt;
1028
1029 Aws::String m_createdAt;
1030
1031 Aws::String m_updatedAt;
1032
1033 Severity m_severity;
1034
1035 int m_confidence{0};
1036
1037 int m_criticality{0};
1038
1039 Aws::String m_title;
1040
1041 Aws::String m_description;
1042
1043 Remediation m_remediation;
1044
1045 Aws::String m_sourceUrl;
1046
1047 Aws::Map<Aws::String, Aws::String> m_productFields;
1048
1049 Aws::Map<Aws::String, Aws::String> m_userDefinedFields;
1050
1051 Aws::Vector<Malware> m_malware;
1052
1053 Network m_network;
1054
1056
1057 ProcessDetails m_process;
1058
1059 Aws::Vector<Threat> m_threats;
1060
1061 Aws::Vector<ThreatIntelIndicator> m_threatIntelIndicators;
1062
1063 Aws::Vector<Resource> m_resources;
1064
1065 Compliance m_compliance;
1066
1067 VerificationState m_verificationState{VerificationState::NOT_SET};
1068
1069 WorkflowState m_workflowState{WorkflowState::NOT_SET};
1070
1071 Workflow m_workflow;
1072
1073 RecordState m_recordState{RecordState::NOT_SET};
1074
1075 Aws::Vector<RelatedFinding> m_relatedFindings;
1076
1077 Note m_note;
1078
1079 Aws::Vector<Vulnerability> m_vulnerabilities;
1080
1081 PatchSummary m_patchSummary;
1082
1083 Action m_action;
1084
1085 FindingProviderFields m_findingProviderFields;
1086
1087 bool m_sample{false};
1088
1089 GeneratorDetails m_generatorDetails;
1090
1091 Aws::String m_processedAt;
1092
1093 Aws::String m_awsAccountName;
1094
1095 Detection m_detection;
1096 bool m_schemaVersionHasBeenSet = false;
1097 bool m_idHasBeenSet = false;
1098 bool m_productArnHasBeenSet = false;
1099 bool m_productNameHasBeenSet = false;
1100 bool m_companyNameHasBeenSet = false;
1101 bool m_regionHasBeenSet = false;
1102 bool m_generatorIdHasBeenSet = false;
1103 bool m_awsAccountIdHasBeenSet = false;
1104 bool m_typesHasBeenSet = false;
1105 bool m_firstObservedAtHasBeenSet = false;
1106 bool m_lastObservedAtHasBeenSet = false;
1107 bool m_createdAtHasBeenSet = false;
1108 bool m_updatedAtHasBeenSet = false;
1109 bool m_severityHasBeenSet = false;
1110 bool m_confidenceHasBeenSet = false;
1111 bool m_criticalityHasBeenSet = false;
1112 bool m_titleHasBeenSet = false;
1113 bool m_descriptionHasBeenSet = false;
1114 bool m_remediationHasBeenSet = false;
1115 bool m_sourceUrlHasBeenSet = false;
1116 bool m_productFieldsHasBeenSet = false;
1117 bool m_userDefinedFieldsHasBeenSet = false;
1118 bool m_malwareHasBeenSet = false;
1119 bool m_networkHasBeenSet = false;
1120 bool m_networkPathHasBeenSet = false;
1121 bool m_processHasBeenSet = false;
1122 bool m_threatsHasBeenSet = false;
1123 bool m_threatIntelIndicatorsHasBeenSet = false;
1124 bool m_resourcesHasBeenSet = false;
1125 bool m_complianceHasBeenSet = false;
1126 bool m_verificationStateHasBeenSet = false;
1127 bool m_workflowStateHasBeenSet = false;
1128 bool m_workflowHasBeenSet = false;
1129 bool m_recordStateHasBeenSet = false;
1130 bool m_relatedFindingsHasBeenSet = false;
1131 bool m_noteHasBeenSet = false;
1132 bool m_vulnerabilitiesHasBeenSet = false;
1133 bool m_patchSummaryHasBeenSet = false;
1134 bool m_actionHasBeenSet = false;
1135 bool m_findingProviderFieldsHasBeenSet = false;
1136 bool m_sampleHasBeenSet = false;
1137 bool m_generatorDetailsHasBeenSet = false;
1138 bool m_processedAtHasBeenSet = false;
1139 bool m_awsAccountNameHasBeenSet = false;
1140 bool m_detectionHasBeenSet = false;
1141};
1142
1143} // namespace Model
1144} // namespace SecurityHub
1145} // 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