AWS SDK for C++

AWS SDK for C++ Version 1.11.607

Loading...
Searching...
No Matches
AwsSecurityFinding.h
1
6#pragma once
7#include <aws/securityhub/SecurityHub_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSString.h>
9#include <aws/core/utils/memory/stl/AWSVector.h>
10#include <aws/securityhub/model/Severity.h>
11#include <aws/securityhub/model/Remediation.h>
12#include <aws/core/utils/memory/stl/AWSMap.h>
13#include <aws/securityhub/model/Network.h>
14#include <aws/securityhub/model/ProcessDetails.h>
15#include <aws/securityhub/model/Compliance.h>
16#include <aws/securityhub/model/VerificationState.h>
17#include <aws/securityhub/model/WorkflowState.h>
18#include <aws/securityhub/model/Workflow.h>
19#include <aws/securityhub/model/RecordState.h>
20#include <aws/securityhub/model/Note.h>
21#include <aws/securityhub/model/PatchSummary.h>
22#include <aws/securityhub/model/Action.h>
23#include <aws/securityhub/model/FindingProviderFields.h>
24#include <aws/securityhub/model/GeneratorDetails.h>
25#include <aws/securityhub/model/Detection.h>
26#include <aws/securityhub/model/Malware.h>
27#include <aws/securityhub/model/NetworkPathComponent.h>
28#include <aws/securityhub/model/Threat.h>
29#include <aws/securityhub/model/ThreatIntelIndicator.h>
30#include <aws/securityhub/model/Resource.h>
31#include <aws/securityhub/model/RelatedFinding.h>
32#include <aws/securityhub/model/Vulnerability.h>
33#include <utility>
34
35namespace Aws
36{
37namespace Utils
38{
39namespace Json
40{
41 class JsonValue;
42 class JsonView;
43} // namespace Json
44} // namespace Utils
45namespace SecurityHub
46{
47namespace Model
48{
49
61 {
62 public:
63 AWS_SECURITYHUB_API AwsSecurityFinding() = default;
64 AWS_SECURITYHUB_API AwsSecurityFinding(Aws::Utils::Json::JsonView jsonValue);
66 AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const;
67
68
70
74 inline const Aws::String& GetSchemaVersion() const { return m_schemaVersion; }
75 inline bool SchemaVersionHasBeenSet() const { return m_schemaVersionHasBeenSet; }
76 template<typename SchemaVersionT = Aws::String>
77 void SetSchemaVersion(SchemaVersionT&& value) { m_schemaVersionHasBeenSet = true; m_schemaVersion = std::forward<SchemaVersionT>(value); }
78 template<typename SchemaVersionT = Aws::String>
79 AwsSecurityFinding& WithSchemaVersion(SchemaVersionT&& value) { SetSchemaVersion(std::forward<SchemaVersionT>(value)); return *this;}
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) { m_idHasBeenSet = true; m_id = std::forward<IdT>(value); }
91 template<typename IdT = Aws::String>
92 AwsSecurityFinding& WithId(IdT&& value) { SetId(std::forward<IdT>(value)); return *this;}
94
96
102 inline const Aws::String& GetProductArn() const { return m_productArn; }
103 inline bool ProductArnHasBeenSet() const { return m_productArnHasBeenSet; }
104 template<typename ProductArnT = Aws::String>
105 void SetProductArn(ProductArnT&& value) { m_productArnHasBeenSet = true; m_productArn = std::forward<ProductArnT>(value); }
106 template<typename ProductArnT = Aws::String>
107 AwsSecurityFinding& WithProductArn(ProductArnT&& value) { SetProductArn(std::forward<ProductArnT>(value)); return *this;}
109
111
120 inline const Aws::String& GetProductName() const { return m_productName; }
121 inline bool ProductNameHasBeenSet() const { return m_productNameHasBeenSet; }
122 template<typename ProductNameT = Aws::String>
123 void SetProductName(ProductNameT&& value) { m_productNameHasBeenSet = true; m_productName = std::forward<ProductNameT>(value); }
124 template<typename ProductNameT = Aws::String>
125 AwsSecurityFinding& WithProductName(ProductNameT&& value) { SetProductName(std::forward<ProductNameT>(value)); return *this;}
127
129
138 inline const Aws::String& GetCompanyName() const { return m_companyName; }
139 inline bool CompanyNameHasBeenSet() const { return m_companyNameHasBeenSet; }
140 template<typename CompanyNameT = Aws::String>
141 void SetCompanyName(CompanyNameT&& value) { m_companyNameHasBeenSet = true; m_companyName = std::forward<CompanyNameT>(value); }
142 template<typename CompanyNameT = Aws::String>
143 AwsSecurityFinding& WithCompanyName(CompanyNameT&& value) { SetCompanyName(std::forward<CompanyNameT>(value)); return *this;}
145
147
153 inline const Aws::String& GetRegion() const { return m_region; }
154 inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; }
155 template<typename RegionT = Aws::String>
156 void SetRegion(RegionT&& value) { m_regionHasBeenSet = true; m_region = std::forward<RegionT>(value); }
157 template<typename RegionT = Aws::String>
158 AwsSecurityFinding& WithRegion(RegionT&& value) { SetRegion(std::forward<RegionT>(value)); return *this;}
160
162
168 inline const Aws::String& GetGeneratorId() const { return m_generatorId; }
169 inline bool GeneratorIdHasBeenSet() const { return m_generatorIdHasBeenSet; }
170 template<typename GeneratorIdT = Aws::String>
171 void SetGeneratorId(GeneratorIdT&& value) { m_generatorIdHasBeenSet = true; m_generatorId = std::forward<GeneratorIdT>(value); }
172 template<typename GeneratorIdT = Aws::String>
173 AwsSecurityFinding& WithGeneratorId(GeneratorIdT&& value) { SetGeneratorId(std::forward<GeneratorIdT>(value)); return *this;}
175
177
181 inline const Aws::String& GetAwsAccountId() const { return m_awsAccountId; }
182 inline bool AwsAccountIdHasBeenSet() const { return m_awsAccountIdHasBeenSet; }
183 template<typename AwsAccountIdT = Aws::String>
184 void SetAwsAccountId(AwsAccountIdT&& value) { m_awsAccountIdHasBeenSet = true; m_awsAccountId = std::forward<AwsAccountIdT>(value); }
185 template<typename AwsAccountIdT = Aws::String>
186 AwsSecurityFinding& WithAwsAccountId(AwsAccountIdT&& value) { SetAwsAccountId(std::forward<AwsAccountIdT>(value)); return *this;}
188
190
197 inline const Aws::Vector<Aws::String>& GetTypes() const { return m_types; }
198 inline bool TypesHasBeenSet() const { return m_typesHasBeenSet; }
199 template<typename TypesT = Aws::Vector<Aws::String>>
200 void SetTypes(TypesT&& value) { m_typesHasBeenSet = true; m_types = std::forward<TypesT>(value); }
201 template<typename TypesT = Aws::Vector<Aws::String>>
202 AwsSecurityFinding& WithTypes(TypesT&& value) { SetTypes(std::forward<TypesT>(value)); return *this;}
203 template<typename TypesT = Aws::String>
204 AwsSecurityFinding& AddTypes(TypesT&& value) { m_typesHasBeenSet = true; m_types.emplace_back(std::forward<TypesT>(value)); return *this; }
206
208
214 inline const Aws::String& GetFirstObservedAt() const { return m_firstObservedAt; }
215 inline bool FirstObservedAtHasBeenSet() const { return m_firstObservedAtHasBeenSet; }
216 template<typename FirstObservedAtT = Aws::String>
217 void SetFirstObservedAt(FirstObservedAtT&& value) { m_firstObservedAtHasBeenSet = true; m_firstObservedAt = std::forward<FirstObservedAtT>(value); }
218 template<typename FirstObservedAtT = Aws::String>
219 AwsSecurityFinding& WithFirstObservedAt(FirstObservedAtT&& value) { SetFirstObservedAt(std::forward<FirstObservedAtT>(value)); return *this;}
221
223
229 inline const Aws::String& GetLastObservedAt() const { return m_lastObservedAt; }
230 inline bool LastObservedAtHasBeenSet() const { return m_lastObservedAtHasBeenSet; }
231 template<typename LastObservedAtT = Aws::String>
232 void SetLastObservedAt(LastObservedAtT&& value) { m_lastObservedAtHasBeenSet = true; m_lastObservedAt = std::forward<LastObservedAtT>(value); }
233 template<typename LastObservedAtT = Aws::String>
234 AwsSecurityFinding& WithLastObservedAt(LastObservedAtT&& value) { SetLastObservedAt(std::forward<LastObservedAtT>(value)); return *this;}
236
238
244 inline const Aws::String& GetCreatedAt() const { return m_createdAt; }
245 inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; }
246 template<typename CreatedAtT = Aws::String>
247 void SetCreatedAt(CreatedAtT&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::forward<CreatedAtT>(value); }
248 template<typename CreatedAtT = Aws::String>
249 AwsSecurityFinding& WithCreatedAt(CreatedAtT&& value) { SetCreatedAt(std::forward<CreatedAtT>(value)); return *this;}
251
253
259 inline const Aws::String& GetUpdatedAt() const { return m_updatedAt; }
260 inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; }
261 template<typename UpdatedAtT = Aws::String>
262 void SetUpdatedAt(UpdatedAtT&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::forward<UpdatedAtT>(value); }
263 template<typename UpdatedAtT = Aws::String>
264 AwsSecurityFinding& WithUpdatedAt(UpdatedAtT&& value) { SetUpdatedAt(std::forward<UpdatedAtT>(value)); return *this;}
266
268
271 inline const Severity& GetSeverity() const { return m_severity; }
272 inline bool SeverityHasBeenSet() const { return m_severityHasBeenSet; }
273 template<typename SeverityT = Severity>
274 void SetSeverity(SeverityT&& value) { m_severityHasBeenSet = true; m_severity = std::forward<SeverityT>(value); }
275 template<typename SeverityT = Severity>
276 AwsSecurityFinding& WithSeverity(SeverityT&& value) { SetSeverity(std::forward<SeverityT>(value)); return *this;}
278
280
286 inline int GetConfidence() const { return m_confidence; }
287 inline bool ConfidenceHasBeenSet() const { return m_confidenceHasBeenSet; }
288 inline void SetConfidence(int value) { m_confidenceHasBeenSet = true; m_confidence = value; }
289 inline AwsSecurityFinding& WithConfidence(int value) { SetConfidence(value); return *this;}
291
293
298 inline int GetCriticality() const { return m_criticality; }
299 inline bool CriticalityHasBeenSet() const { return m_criticalityHasBeenSet; }
300 inline void SetCriticality(int value) { m_criticalityHasBeenSet = true; m_criticality = value; }
301 inline AwsSecurityFinding& WithCriticality(int value) { SetCriticality(value); return *this;}
303
305
309 inline const Aws::String& GetTitle() const { return m_title; }
310 inline bool TitleHasBeenSet() const { return m_titleHasBeenSet; }
311 template<typename TitleT = Aws::String>
312 void SetTitle(TitleT&& value) { m_titleHasBeenSet = true; m_title = std::forward<TitleT>(value); }
313 template<typename TitleT = Aws::String>
314 AwsSecurityFinding& WithTitle(TitleT&& value) { SetTitle(std::forward<TitleT>(value)); return *this;}
316
318
322 inline const Aws::String& GetDescription() const { return m_description; }
323 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
324 template<typename DescriptionT = Aws::String>
325 void SetDescription(DescriptionT&& value) { m_descriptionHasBeenSet = true; m_description = std::forward<DescriptionT>(value); }
326 template<typename DescriptionT = Aws::String>
327 AwsSecurityFinding& WithDescription(DescriptionT&& value) { SetDescription(std::forward<DescriptionT>(value)); return *this;}
329
331
334 inline const Remediation& GetRemediation() const { return m_remediation; }
335 inline bool RemediationHasBeenSet() const { return m_remediationHasBeenSet; }
336 template<typename RemediationT = Remediation>
337 void SetRemediation(RemediationT&& value) { m_remediationHasBeenSet = true; m_remediation = std::forward<RemediationT>(value); }
338 template<typename RemediationT = Remediation>
339 AwsSecurityFinding& WithRemediation(RemediationT&& value) { SetRemediation(std::forward<RemediationT>(value)); return *this;}
341
343
347 inline const Aws::String& GetSourceUrl() const { return m_sourceUrl; }
348 inline bool SourceUrlHasBeenSet() const { return m_sourceUrlHasBeenSet; }
349 template<typename SourceUrlT = Aws::String>
350 void SetSourceUrl(SourceUrlT&& value) { m_sourceUrlHasBeenSet = true; m_sourceUrl = std::forward<SourceUrlT>(value); }
351 template<typename SourceUrlT = Aws::String>
352 AwsSecurityFinding& WithSourceUrl(SourceUrlT&& value) { SetSourceUrl(std::forward<SourceUrlT>(value)); return *this;}
354
356
363 inline const Aws::Map<Aws::String, Aws::String>& GetProductFields() const { return m_productFields; }
364 inline bool ProductFieldsHasBeenSet() const { return m_productFieldsHasBeenSet; }
365 template<typename ProductFieldsT = Aws::Map<Aws::String, Aws::String>>
366 void SetProductFields(ProductFieldsT&& value) { m_productFieldsHasBeenSet = true; m_productFields = std::forward<ProductFieldsT>(value); }
367 template<typename ProductFieldsT = Aws::Map<Aws::String, Aws::String>>
368 AwsSecurityFinding& WithProductFields(ProductFieldsT&& value) { SetProductFields(std::forward<ProductFieldsT>(value)); return *this;}
369 template<typename ProductFieldsKeyT = Aws::String, typename ProductFieldsValueT = Aws::String>
370 AwsSecurityFinding& AddProductFields(ProductFieldsKeyT&& key, ProductFieldsValueT&& value) {
371 m_productFieldsHasBeenSet = true; m_productFields.emplace(std::forward<ProductFieldsKeyT>(key), std::forward<ProductFieldsValueT>(value)); return *this;
372 }
374
376
382 inline const Aws::Map<Aws::String, Aws::String>& GetUserDefinedFields() const { return m_userDefinedFields; }
383 inline bool UserDefinedFieldsHasBeenSet() const { return m_userDefinedFieldsHasBeenSet; }
384 template<typename UserDefinedFieldsT = Aws::Map<Aws::String, Aws::String>>
385 void SetUserDefinedFields(UserDefinedFieldsT&& value) { m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields = std::forward<UserDefinedFieldsT>(value); }
386 template<typename UserDefinedFieldsT = Aws::Map<Aws::String, Aws::String>>
387 AwsSecurityFinding& WithUserDefinedFields(UserDefinedFieldsT&& value) { SetUserDefinedFields(std::forward<UserDefinedFieldsT>(value)); return *this;}
388 template<typename UserDefinedFieldsKeyT = Aws::String, typename UserDefinedFieldsValueT = Aws::String>
389 AwsSecurityFinding& AddUserDefinedFields(UserDefinedFieldsKeyT&& key, UserDefinedFieldsValueT&& value) {
390 m_userDefinedFieldsHasBeenSet = true; m_userDefinedFields.emplace(std::forward<UserDefinedFieldsKeyT>(key), std::forward<UserDefinedFieldsValueT>(value)); return *this;
391 }
393
395
399 inline const Aws::Vector<Malware>& GetMalware() const { return m_malware; }
400 inline bool MalwareHasBeenSet() const { return m_malwareHasBeenSet; }
401 template<typename MalwareT = Aws::Vector<Malware>>
402 void SetMalware(MalwareT&& value) { m_malwareHasBeenSet = true; m_malware = std::forward<MalwareT>(value); }
403 template<typename MalwareT = Aws::Vector<Malware>>
404 AwsSecurityFinding& WithMalware(MalwareT&& value) { SetMalware(std::forward<MalwareT>(value)); return *this;}
405 template<typename MalwareT = Malware>
406 AwsSecurityFinding& AddMalware(MalwareT&& value) { m_malwareHasBeenSet = true; m_malware.emplace_back(std::forward<MalwareT>(value)); return *this; }
408
410
413 inline const Network& GetNetwork() const { return m_network; }
414 inline bool NetworkHasBeenSet() const { return m_networkHasBeenSet; }
415 template<typename NetworkT = Network>
416 void SetNetwork(NetworkT&& value) { m_networkHasBeenSet = true; m_network = std::forward<NetworkT>(value); }
417 template<typename NetworkT = Network>
418 AwsSecurityFinding& WithNetwork(NetworkT&& value) { SetNetwork(std::forward<NetworkT>(value)); return *this;}
420
422
426 inline const Aws::Vector<NetworkPathComponent>& GetNetworkPath() const { return m_networkPath; }
427 inline bool NetworkPathHasBeenSet() const { return m_networkPathHasBeenSet; }
428 template<typename NetworkPathT = Aws::Vector<NetworkPathComponent>>
429 void SetNetworkPath(NetworkPathT&& value) { m_networkPathHasBeenSet = true; m_networkPath = std::forward<NetworkPathT>(value); }
430 template<typename NetworkPathT = Aws::Vector<NetworkPathComponent>>
431 AwsSecurityFinding& WithNetworkPath(NetworkPathT&& value) { SetNetworkPath(std::forward<NetworkPathT>(value)); return *this;}
432 template<typename NetworkPathT = NetworkPathComponent>
433 AwsSecurityFinding& AddNetworkPath(NetworkPathT&& value) { m_networkPathHasBeenSet = true; m_networkPath.emplace_back(std::forward<NetworkPathT>(value)); return *this; }
435
437
440 inline const ProcessDetails& GetProcess() const { return m_process; }
441 inline bool ProcessHasBeenSet() const { return m_processHasBeenSet; }
442 template<typename ProcessT = ProcessDetails>
443 void SetProcess(ProcessT&& value) { m_processHasBeenSet = true; m_process = std::forward<ProcessT>(value); }
444 template<typename ProcessT = ProcessDetails>
445 AwsSecurityFinding& WithProcess(ProcessT&& value) { SetProcess(std::forward<ProcessT>(value)); return *this;}
447
449
454 inline const Aws::Vector<Threat>& GetThreats() const { return m_threats; }
455 inline bool ThreatsHasBeenSet() const { return m_threatsHasBeenSet; }
456 template<typename ThreatsT = Aws::Vector<Threat>>
457 void SetThreats(ThreatsT&& value) { m_threatsHasBeenSet = true; m_threats = std::forward<ThreatsT>(value); }
458 template<typename ThreatsT = Aws::Vector<Threat>>
459 AwsSecurityFinding& WithThreats(ThreatsT&& value) { SetThreats(std::forward<ThreatsT>(value)); return *this;}
460 template<typename ThreatsT = Threat>
461 AwsSecurityFinding& AddThreats(ThreatsT&& value) { m_threatsHasBeenSet = true; m_threats.emplace_back(std::forward<ThreatsT>(value)); return *this; }
463
465
469 inline const Aws::Vector<ThreatIntelIndicator>& GetThreatIntelIndicators() const { return m_threatIntelIndicators; }
470 inline bool ThreatIntelIndicatorsHasBeenSet() const { return m_threatIntelIndicatorsHasBeenSet; }
471 template<typename ThreatIntelIndicatorsT = Aws::Vector<ThreatIntelIndicator>>
472 void SetThreatIntelIndicators(ThreatIntelIndicatorsT&& value) { m_threatIntelIndicatorsHasBeenSet = true; m_threatIntelIndicators = std::forward<ThreatIntelIndicatorsT>(value); }
473 template<typename ThreatIntelIndicatorsT = Aws::Vector<ThreatIntelIndicator>>
474 AwsSecurityFinding& WithThreatIntelIndicators(ThreatIntelIndicatorsT&& value) { SetThreatIntelIndicators(std::forward<ThreatIntelIndicatorsT>(value)); return *this;}
475 template<typename ThreatIntelIndicatorsT = ThreatIntelIndicator>
476 AwsSecurityFinding& AddThreatIntelIndicators(ThreatIntelIndicatorsT&& value) { m_threatIntelIndicatorsHasBeenSet = true; m_threatIntelIndicators.emplace_back(std::forward<ThreatIntelIndicatorsT>(value)); return *this; }
478
480
485 inline const Aws::Vector<Resource>& GetResources() const { return m_resources; }
486 inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; }
487 template<typename ResourcesT = Aws::Vector<Resource>>
488 void SetResources(ResourcesT&& value) { m_resourcesHasBeenSet = true; m_resources = std::forward<ResourcesT>(value); }
489 template<typename ResourcesT = Aws::Vector<Resource>>
490 AwsSecurityFinding& WithResources(ResourcesT&& value) { SetResources(std::forward<ResourcesT>(value)); return *this;}
491 template<typename ResourcesT = Resource>
492 AwsSecurityFinding& AddResources(ResourcesT&& value) { m_resourcesHasBeenSet = true; m_resources.emplace_back(std::forward<ResourcesT>(value)); return *this; }
494
496
502 inline const Compliance& GetCompliance() const { return m_compliance; }
503 inline bool ComplianceHasBeenSet() const { return m_complianceHasBeenSet; }
504 template<typename ComplianceT = Compliance>
505 void SetCompliance(ComplianceT&& value) { m_complianceHasBeenSet = true; m_compliance = std::forward<ComplianceT>(value); }
506 template<typename ComplianceT = Compliance>
507 AwsSecurityFinding& WithCompliance(ComplianceT&& value) { SetCompliance(std::forward<ComplianceT>(value)); return *this;}
509
511
514 inline VerificationState GetVerificationState() const { return m_verificationState; }
515 inline bool VerificationStateHasBeenSet() const { return m_verificationStateHasBeenSet; }
516 inline void SetVerificationState(VerificationState value) { m_verificationStateHasBeenSet = true; m_verificationState = value; }
519
521
524 inline WorkflowState GetWorkflowState() const { return m_workflowState; }
525 inline bool WorkflowStateHasBeenSet() const { return m_workflowStateHasBeenSet; }
526 inline void SetWorkflowState(WorkflowState value) { m_workflowStateHasBeenSet = true; m_workflowState = value; }
529
531
535 inline const Workflow& GetWorkflow() const { return m_workflow; }
536 inline bool WorkflowHasBeenSet() const { return m_workflowHasBeenSet; }
537 template<typename WorkflowT = Workflow>
538 void SetWorkflow(WorkflowT&& value) { m_workflowHasBeenSet = true; m_workflow = std::forward<WorkflowT>(value); }
539 template<typename WorkflowT = Workflow>
540 AwsSecurityFinding& WithWorkflow(WorkflowT&& value) { SetWorkflow(std::forward<WorkflowT>(value)); return *this;}
542
544
547 inline RecordState GetRecordState() const { return m_recordState; }
548 inline bool RecordStateHasBeenSet() const { return m_recordStateHasBeenSet; }
549 inline void SetRecordState(RecordState value) { m_recordStateHasBeenSet = true; m_recordState = value; }
550 inline AwsSecurityFinding& WithRecordState(RecordState value) { SetRecordState(value); return *this;}
552
554
558 inline const Aws::Vector<RelatedFinding>& GetRelatedFindings() const { return m_relatedFindings; }
559 inline bool RelatedFindingsHasBeenSet() const { return m_relatedFindingsHasBeenSet; }
560 template<typename RelatedFindingsT = Aws::Vector<RelatedFinding>>
561 void SetRelatedFindings(RelatedFindingsT&& value) { m_relatedFindingsHasBeenSet = true; m_relatedFindings = std::forward<RelatedFindingsT>(value); }
562 template<typename RelatedFindingsT = Aws::Vector<RelatedFinding>>
563 AwsSecurityFinding& WithRelatedFindings(RelatedFindingsT&& value) { SetRelatedFindings(std::forward<RelatedFindingsT>(value)); return *this;}
564 template<typename RelatedFindingsT = RelatedFinding>
565 AwsSecurityFinding& AddRelatedFindings(RelatedFindingsT&& value) { m_relatedFindingsHasBeenSet = true; m_relatedFindings.emplace_back(std::forward<RelatedFindingsT>(value)); return *this; }
567
569
572 inline const Note& GetNote() const { return m_note; }
573 inline bool NoteHasBeenSet() const { return m_noteHasBeenSet; }
574 template<typename NoteT = Note>
575 void SetNote(NoteT&& value) { m_noteHasBeenSet = true; m_note = std::forward<NoteT>(value); }
576 template<typename NoteT = Note>
577 AwsSecurityFinding& WithNote(NoteT&& value) { SetNote(std::forward<NoteT>(value)); return *this;}
579
581
584 inline const Aws::Vector<Vulnerability>& GetVulnerabilities() const { return m_vulnerabilities; }
585 inline bool VulnerabilitiesHasBeenSet() const { return m_vulnerabilitiesHasBeenSet; }
586 template<typename VulnerabilitiesT = Aws::Vector<Vulnerability>>
587 void SetVulnerabilities(VulnerabilitiesT&& value) { m_vulnerabilitiesHasBeenSet = true; m_vulnerabilities = std::forward<VulnerabilitiesT>(value); }
588 template<typename VulnerabilitiesT = Aws::Vector<Vulnerability>>
589 AwsSecurityFinding& WithVulnerabilities(VulnerabilitiesT&& value) { SetVulnerabilities(std::forward<VulnerabilitiesT>(value)); return *this;}
590 template<typename VulnerabilitiesT = Vulnerability>
591 AwsSecurityFinding& AddVulnerabilities(VulnerabilitiesT&& value) { m_vulnerabilitiesHasBeenSet = true; m_vulnerabilities.emplace_back(std::forward<VulnerabilitiesT>(value)); return *this; }
593
595
599 inline const PatchSummary& GetPatchSummary() const { return m_patchSummary; }
600 inline bool PatchSummaryHasBeenSet() const { return m_patchSummaryHasBeenSet; }
601 template<typename PatchSummaryT = PatchSummary>
602 void SetPatchSummary(PatchSummaryT&& value) { m_patchSummaryHasBeenSet = true; m_patchSummary = std::forward<PatchSummaryT>(value); }
603 template<typename PatchSummaryT = PatchSummary>
604 AwsSecurityFinding& WithPatchSummary(PatchSummaryT&& value) { SetPatchSummary(std::forward<PatchSummaryT>(value)); return *this;}
606
608
612 inline const Action& GetAction() const { return m_action; }
613 inline bool ActionHasBeenSet() const { return m_actionHasBeenSet; }
614 template<typename ActionT = Action>
615 void SetAction(ActionT&& value) { m_actionHasBeenSet = true; m_action = std::forward<ActionT>(value); }
616 template<typename ActionT = Action>
617 AwsSecurityFinding& WithAction(ActionT&& value) { SetAction(std::forward<ActionT>(value)); return *this;}
619
621
626 inline const FindingProviderFields& GetFindingProviderFields() const { return m_findingProviderFields; }
627 inline bool FindingProviderFieldsHasBeenSet() const { return m_findingProviderFieldsHasBeenSet; }
628 template<typename FindingProviderFieldsT = FindingProviderFields>
629 void SetFindingProviderFields(FindingProviderFieldsT&& value) { m_findingProviderFieldsHasBeenSet = true; m_findingProviderFields = std::forward<FindingProviderFieldsT>(value); }
630 template<typename FindingProviderFieldsT = FindingProviderFields>
631 AwsSecurityFinding& WithFindingProviderFields(FindingProviderFieldsT&& value) { SetFindingProviderFields(std::forward<FindingProviderFieldsT>(value)); return *this;}
633
635
638 inline bool GetSample() const { return m_sample; }
639 inline bool SampleHasBeenSet() const { return m_sampleHasBeenSet; }
640 inline void SetSample(bool value) { m_sampleHasBeenSet = true; m_sample = value; }
641 inline AwsSecurityFinding& WithSample(bool value) { SetSample(value); return *this;}
643
645
652 inline const GeneratorDetails& GetGeneratorDetails() const { return m_generatorDetails; }
653 inline bool GeneratorDetailsHasBeenSet() const { return m_generatorDetailsHasBeenSet; }
654 template<typename GeneratorDetailsT = GeneratorDetails>
655 void SetGeneratorDetails(GeneratorDetailsT&& value) { m_generatorDetailsHasBeenSet = true; m_generatorDetails = std::forward<GeneratorDetailsT>(value); }
656 template<typename GeneratorDetailsT = GeneratorDetails>
657 AwsSecurityFinding& WithGeneratorDetails(GeneratorDetailsT&& value) { SetGeneratorDetails(std::forward<GeneratorDetailsT>(value)); return *this;}
659
661
667 inline const Aws::String& GetProcessedAt() const { return m_processedAt; }
668 inline bool ProcessedAtHasBeenSet() const { return m_processedAtHasBeenSet; }
669 template<typename ProcessedAtT = Aws::String>
670 void SetProcessedAt(ProcessedAtT&& value) { m_processedAtHasBeenSet = true; m_processedAt = std::forward<ProcessedAtT>(value); }
671 template<typename ProcessedAtT = Aws::String>
672 AwsSecurityFinding& WithProcessedAt(ProcessedAtT&& value) { SetProcessedAt(std::forward<ProcessedAtT>(value)); return *this;}
674
676
681 inline const Aws::String& GetAwsAccountName() const { return m_awsAccountName; }
682 inline bool AwsAccountNameHasBeenSet() const { return m_awsAccountNameHasBeenSet; }
683 template<typename AwsAccountNameT = Aws::String>
684 void SetAwsAccountName(AwsAccountNameT&& value) { m_awsAccountNameHasBeenSet = true; m_awsAccountName = std::forward<AwsAccountNameT>(value); }
685 template<typename AwsAccountNameT = Aws::String>
686 AwsSecurityFinding& WithAwsAccountName(AwsAccountNameT&& value) { SetAwsAccountName(std::forward<AwsAccountNameT>(value)); return *this;}
688
690
699 inline const Detection& GetDetection() const { return m_detection; }
700 inline bool DetectionHasBeenSet() const { return m_detectionHasBeenSet; }
701 template<typename DetectionT = Detection>
702 void SetDetection(DetectionT&& value) { m_detectionHasBeenSet = true; m_detection = std::forward<DetectionT>(value); }
703 template<typename DetectionT = Detection>
704 AwsSecurityFinding& WithDetection(DetectionT&& value) { SetDetection(std::forward<DetectionT>(value)); return *this;}
706 private:
707
708 Aws::String m_schemaVersion;
709 bool m_schemaVersionHasBeenSet = false;
710
711 Aws::String m_id;
712 bool m_idHasBeenSet = false;
713
714 Aws::String m_productArn;
715 bool m_productArnHasBeenSet = false;
716
717 Aws::String m_productName;
718 bool m_productNameHasBeenSet = false;
719
720 Aws::String m_companyName;
721 bool m_companyNameHasBeenSet = false;
722
723 Aws::String m_region;
724 bool m_regionHasBeenSet = false;
725
726 Aws::String m_generatorId;
727 bool m_generatorIdHasBeenSet = false;
728
729 Aws::String m_awsAccountId;
730 bool m_awsAccountIdHasBeenSet = false;
731
733 bool m_typesHasBeenSet = false;
734
735 Aws::String m_firstObservedAt;
736 bool m_firstObservedAtHasBeenSet = false;
737
738 Aws::String m_lastObservedAt;
739 bool m_lastObservedAtHasBeenSet = false;
740
741 Aws::String m_createdAt;
742 bool m_createdAtHasBeenSet = false;
743
744 Aws::String m_updatedAt;
745 bool m_updatedAtHasBeenSet = false;
746
747 Severity m_severity;
748 bool m_severityHasBeenSet = false;
749
750 int m_confidence{0};
751 bool m_confidenceHasBeenSet = false;
752
753 int m_criticality{0};
754 bool m_criticalityHasBeenSet = false;
755
756 Aws::String m_title;
757 bool m_titleHasBeenSet = false;
758
759 Aws::String m_description;
760 bool m_descriptionHasBeenSet = false;
761
762 Remediation m_remediation;
763 bool m_remediationHasBeenSet = false;
764
765 Aws::String m_sourceUrl;
766 bool m_sourceUrlHasBeenSet = false;
767
769 bool m_productFieldsHasBeenSet = false;
770
771 Aws::Map<Aws::String, Aws::String> m_userDefinedFields;
772 bool m_userDefinedFieldsHasBeenSet = false;
773
774 Aws::Vector<Malware> m_malware;
775 bool m_malwareHasBeenSet = false;
776
777 Network m_network;
778 bool m_networkHasBeenSet = false;
779
781 bool m_networkPathHasBeenSet = false;
782
783 ProcessDetails m_process;
784 bool m_processHasBeenSet = false;
785
786 Aws::Vector<Threat> m_threats;
787 bool m_threatsHasBeenSet = false;
788
789 Aws::Vector<ThreatIntelIndicator> m_threatIntelIndicators;
790 bool m_threatIntelIndicatorsHasBeenSet = false;
791
792 Aws::Vector<Resource> m_resources;
793 bool m_resourcesHasBeenSet = false;
794
795 Compliance m_compliance;
796 bool m_complianceHasBeenSet = false;
797
799 bool m_verificationStateHasBeenSet = false;
800
801 WorkflowState m_workflowState{WorkflowState::NOT_SET};
802 bool m_workflowStateHasBeenSet = false;
803
804 Workflow m_workflow;
805 bool m_workflowHasBeenSet = false;
806
807 RecordState m_recordState{RecordState::NOT_SET};
808 bool m_recordStateHasBeenSet = false;
809
810 Aws::Vector<RelatedFinding> m_relatedFindings;
811 bool m_relatedFindingsHasBeenSet = false;
812
813 Note m_note;
814 bool m_noteHasBeenSet = false;
815
816 Aws::Vector<Vulnerability> m_vulnerabilities;
817 bool m_vulnerabilitiesHasBeenSet = false;
818
819 PatchSummary m_patchSummary;
820 bool m_patchSummaryHasBeenSet = false;
821
822 Action m_action;
823 bool m_actionHasBeenSet = false;
824
825 FindingProviderFields m_findingProviderFields;
826 bool m_findingProviderFieldsHasBeenSet = false;
827
828 bool m_sample{false};
829 bool m_sampleHasBeenSet = false;
830
831 GeneratorDetails m_generatorDetails;
832 bool m_generatorDetailsHasBeenSet = false;
833
834 Aws::String m_processedAt;
835 bool m_processedAtHasBeenSet = false;
836
837 Aws::String m_awsAccountName;
838 bool m_awsAccountNameHasBeenSet = false;
839
840 Detection m_detection;
841 bool m_detectionHasBeenSet = false;
842 };
843
844} // namespace Model
845} // namespace SecurityHub
846} // 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