397 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2022 Sentry. All Rights Reserved.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "CoreMinimal.h"
 | 
						|
#include "UObject/NoExportTypes.h"
 | 
						|
#include "Engine/EngineTypes.h"
 | 
						|
#include "SentrySettings.generated.h"
 | 
						|
 | 
						|
class USentryBeforeSendHandler;
 | 
						|
class USentryTraceSampler;
 | 
						|
 | 
						|
UENUM(BlueprintType)
 | 
						|
enum class ESentryTracesSamplingType : uint8
 | 
						|
{
 | 
						|
	// Use uniform sample rate for all transactions
 | 
						|
	UniformSampleRate,
 | 
						|
	// Control the sample rate based on the transaction itself and the context in which it's captured (not implemented)
 | 
						|
	TracesSampler
 | 
						|
};
 | 
						|
 | 
						|
UENUM(BlueprintType)
 | 
						|
enum class ESentryCliLogLevel : uint8
 | 
						|
{
 | 
						|
	Trace,
 | 
						|
	Debug,
 | 
						|
	Info,
 | 
						|
	Warn,
 | 
						|
	Error
 | 
						|
};
 | 
						|
 | 
						|
UENUM(BlueprintType)
 | 
						|
enum class ESentryDatabaseLocation : uint8
 | 
						|
{
 | 
						|
	// Root directory of the current project - `FPaths::ProjectDir()`
 | 
						|
	ProjectDirectory,
 | 
						|
	// Root directory for user-specific game files - `FPaths::ProjectUserDir()`
 | 
						|
	ProjectUserDirectory
 | 
						|
};
 | 
						|
 | 
						|
USTRUCT(BlueprintType)
 | 
						|
struct FAutomaticBreadcrumbs
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Map loading started", ToolTip = "Flag indicating whether to automatically add breadcrumb when map loading starts."))
 | 
						|
	bool bOnMapLoadingStarted = false;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Map loaded", ToolTip = "Flag indicating whether to automatically add breadcrumb after map was loaded."))
 | 
						|
	bool bOnMapLoaded = false;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Game state class changed", ToolTip = "Flag indicating whether to automatically add breadcrumb when application code changes game state."))
 | 
						|
	bool bOnGameStateClassChanged = false;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Game session ID changed", ToolTip = "Flag indicating whether to automatically add breadcrumb when application code changes the currently active game session."))
 | 
						|
	bool bOnGameSessionIDChanged = false;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "User activity string changed", ToolTip = "Flag indicating whether to automatically add breadcrumb when application code changes the user activity hint string for analytics, crash reports, etc."))
 | 
						|
	bool bOnUserActivityStringChanged = false;
 | 
						|
};
 | 
						|
 | 
						|
USTRUCT(BlueprintType)
 | 
						|
struct FAutomaticBreadcrumbsForLogs
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Fatal", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Fatal verbosity level."))
 | 
						|
	bool bOnFatalLog = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Error", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Error verbosity level."))
 | 
						|
	bool bOnErrorLog = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Warning", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Warning verbosity level."))
 | 
						|
	bool bOnWarningLog = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Display/Log", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Display/Log verbosity level."))
 | 
						|
	bool bOnInfoLog = false;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Verbose/VeryVerbose", ToolTip = "Flag indicating whether to automatically add breadcrumb when printing log message with Verbose/VeryVerbose verbosity level."))
 | 
						|
	bool bOnDebugLog = false;
 | 
						|
};
 | 
						|
 | 
						|
USTRUCT(BlueprintType)
 | 
						|
struct FTagsPromotion
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Build configuration", ToolTip = "Flag indicating whether the build configuration should be promoted to a captured event's tag."))
 | 
						|
	bool bPromoteBuildConfiguration = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Target type", ToolTip = "Flag indicating whether the target type should be promoted to a captured event's tag."))
 | 
						|
	bool bPromoteTargetType = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Engine mode", ToolTip = "Flag indicating whether the engine mode should be promoted to a captured event's tag."))
 | 
						|
	bool bPromoteEngineMode = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Is game", ToolTip = "Flag indicating whether the `IsGame` parameter should be promoted to a captured event's tag."))
 | 
						|
	bool bPromoteIsGame = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Is standalone", ToolTip = "Flag indicating whether the `IsStandalone` parameter should be promoted to a captured event's tag."))
 | 
						|
	bool bPromoteIsStandalone = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Is unattended", ToolTip = "Flag indicating whether the `IsUnattended` parameter should be promoted to a captured event's tag."))
 | 
						|
	bool bPromoteIsUnattended = true;
 | 
						|
};
 | 
						|
 | 
						|
USTRUCT(BlueprintType)
 | 
						|
struct FEnableBuildConfigurations
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Debug", ToolTip = "Flag indicating whether event capturing should be enabled for the Debug build configuration."))
 | 
						|
	bool bEnableDebug = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "DebugGame", ToolTip = "Flag indicating whether event capturing should be enabled for the DebugGame build configuration."))
 | 
						|
	bool bEnableDebugGame = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Development", ToolTip = "Flag indicating whether event capturing should be enabled for the Development build configuration."))
 | 
						|
	bool bEnableDevelopment = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Test", ToolTip = "Flag indicating whether event capturing should be enabled for the Test build configuration."))
 | 
						|
	bool bEnableTest = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Shipping", ToolTip = "Flag indicating whether event capturing should be enabled for the Shipping build configuration."))
 | 
						|
	bool bEnableShipping = true;
 | 
						|
};
 | 
						|
 | 
						|
USTRUCT(BlueprintType)
 | 
						|
struct FEnableBuildTargets
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Client", ToolTip = "Flag indicating whether event capturing should be enabled for the Client target type."))
 | 
						|
	bool bEnableClient = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Game", ToolTip = "Flag indicating whether event capturing should be enabled for the Game target type."))
 | 
						|
	bool bEnableGame = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Editor", ToolTip = "Flag indicating whether event capturing should be enabled for the Editor target type."))
 | 
						|
	bool bEnableEditor = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Server", ToolTip = "Flag indicating whether event capturing should be enabled for the Server target type."))
 | 
						|
	bool bEnableServer = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Program", ToolTip = "Flag indicating whether event capturing should be enabled for the Program target type."))
 | 
						|
	bool bEnableProgram = true;
 | 
						|
};
 | 
						|
 | 
						|
USTRUCT(BlueprintType)
 | 
						|
struct FEnableBuildPlatforms
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Linux", ToolTip = "Flag indicating whether event capturing should be enabled for the Linux platform type."))
 | 
						|
	bool bEnableLinux = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Windows", ToolTip = "Flag indicating whether event capturing should be enabled for the Windows platform type."))
 | 
						|
	bool bEnableWindows = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "IOS", ToolTip = "Flag indicating whether event capturing should be enabled for the IOS platform type."))
 | 
						|
	bool bEnableIOS = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Android", ToolTip = "Flag indicating whether event capturing should be enabled for the Android platform type."))
 | 
						|
	bool bEnableAndroid = true;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Mac", ToolTip = "Flag indicating whether event capturing should be enabled for the Mac platform type."))
 | 
						|
	bool bEnableMac = true;
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
 * Sentry settings used for plugin configuration.
 | 
						|
 */
 | 
						|
UCLASS(Config = Engine, defaultconfig)
 | 
						|
class SENTRY_API USentrySettings : public UObject
 | 
						|
{
 | 
						|
	GENERATED_UCLASS_BODY()
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General",
 | 
						|
		Meta = (DisplayName = "Initialize SDK automatically", ToolTip = "Flag indicating whether to automatically initialize the SDK when the app starts.", ConfigRestartRequired = true))
 | 
						|
	bool InitAutomatically;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "DSN", ToolTip = "The DSN (Data Source Name) tells the SDK where to send the events to. Get your DSN in the Sentry dashboard."))
 | 
						|
	FString Dsn;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General",
 | 
						|
		Meta = (DisplayName = "Enable verbose logging", ToolTip = "Flag indicating whether to enable verbose logging on desktop."))
 | 
						|
	bool Debug;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General",
 | 
						|
		Meta = (DisplayName = "Environment", ToolTip = "Environment which will be used for enriching events."))
 | 
						|
	FString Environment;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General",
 | 
						|
		Meta = (DisplayName = "Sample rate", ToolTip = "Configures the sample rate for error events in the range of 0.0 to 1.0. The default is 1.0 which means that 100% of error events are sent. If set to 0.1 only 10% of error events will be sent. Events are picked randomly.", ClampMin = 0.0f, ClampMax = 1.0f))
 | 
						|
	float SampleRate;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
 | 
						|
		Meta = (DisplayName = "Attach game log to captured events", ToolTip = "Flag indicating whether to attach game log automatically to captured events. Not available in shipping builds."))
 | 
						|
	bool EnableAutoLogAttachment;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
 | 
						|
		Meta = (DisplayName = "Attach stack trace to captured events", ToolTip = "Flag indicating whether to attach stack trace automatically to captured events."))
 | 
						|
	bool AttachStacktrace;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
 | 
						|
		Meta = (DisplayName = "Attach personally identifiable information", ToolTip = "Flag indicating whether to attach personally identifiable information (PII) to captured events."))
 | 
						|
	bool SendDefaultPii;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
 | 
						|
		Meta = (DisplayName = "Attach screenshots", ToolTip = "Flag indicating whether to attach screenshot of the application when an error occurs. Currently this feature is supported for Windows and Linux only."))
 | 
						|
	bool AttachScreenshot;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Attachments",
 | 
						|
		Meta = (DisplayName = "Attach GPU dump", ToolTip = "Flag indicating whether to attach GPU crash dump when an error occurs. Currently this feature is supported for Nvidia graphics only."))
 | 
						|
	bool AttachGpuDump;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs",
 | 
						|
		Meta = (DisplayName = "Max breadcrumbs", Tooltip = "Total amount of breadcrumbs that should be captured."))
 | 
						|
	int32 MaxBreadcrumbs;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs",
 | 
						|
		Meta = (DisplayName = "Automatically add breadcrumbs for events"))
 | 
						|
	FAutomaticBreadcrumbs AutomaticBreadcrumbs;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Breadcrumbs",
 | 
						|
		Meta = (DisplayName = "Automatically add breadcrumbs for log messages with verbosity level"))
 | 
						|
	FAutomaticBreadcrumbsForLogs AutomaticBreadcrumbsForLogs;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Release & Health",
 | 
						|
		Meta = (DisplayName = "Enable automatic session tracking ", ToolTip = "Flag indicating whether the SDK should automatically start a new session when it is initialized."))
 | 
						|
	bool EnableAutoSessionTracking;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Release & Health",
 | 
						|
		Meta = (DisplayName = "Session timeout, milliseconds (for Android/Apple only)", ToolTip = "Time interval after which session will be terminated if application is in background mode."))
 | 
						|
	int32 SessionTimeout;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Release & Health",
 | 
						|
		Meta = (InlineEditConditionToggle))
 | 
						|
	bool OverrideReleaseName;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Release & Health",
 | 
						|
		Meta = (DisplayName = "Override release name", ToolTip = "Release name which will be used for enriching events.", EditCondition = "OverrideReleaseName"))
 | 
						|
	FString Release;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Transport",
 | 
						|
		Meta = (InlineEditConditionToggle))
 | 
						|
	bool UseProxy;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Transport",
 | 
						|
		Meta = (DisplayName = "HTTP proxy (for Windows/Linux only)", ToolTip = "HTTP proxy through which requests can be tunneled to Sentry.", EditCondition = "UseProxy"))
 | 
						|
	FString ProxyUrl;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Hooks",
 | 
						|
		Meta = (DisplayName = "Custom `beforeSend` event hanler", ToolTip = "Custom hanler for processing events before sending them to Sentry."))
 | 
						|
	TSubclassOf<USentryBeforeSendHandler> BeforeSendHandler;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Desktop",
 | 
						|
		Meta = (DisplayName = "Override Windows default crash capturing mechanism (UE 5.2+)", ToolTip = "Flag indicating whether to capture crashes automatically on Windows as an alternative to Crash Reporter."))
 | 
						|
	bool EnableAutoCrashCapturing;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Desktop",
 | 
						|
		Meta = (DisplayName = "Sentry database location (for Windows/Linux only)", ToolTip = "Location where Sentry stores its internal/temporary files."))
 | 
						|
	ESentryDatabaseLocation DatabaseLocation;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Mobile",
 | 
						|
		Meta = (DisplayName = "In-app includes (for Android/Apple only)", Tooltip = "A list of string prefixes of module names that belong to the app."))
 | 
						|
	TArray<FString> InAppInclude;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Mobile",
 | 
						|
		Meta = (DisplayName = "In-app exludes (for Android/Apple only)", Tooltip = "A list of string prefixes of module names that don't belong to the app."))
 | 
						|
	TArray<FString> InAppExclude;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Mobile",
 | 
						|
		Meta = (DisplayName = "Enable ANR error tracking", Tooltip = "Flag indicating whether to enable tracking of ANR (app not responding) errors."))
 | 
						|
	bool EnableAppNotRespondingTracking;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
 | 
						|
		Meta = (DisplayName = "Enable tracing", ToolTip = "Flag indicating whether to enable tracing for performance monitoring."))
 | 
						|
	bool EnableTracing;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
 | 
						|
		Meta = (DisplayName = "Sampling type", ToolTip = "Method of controlling the sample rate for transactions.", EditCondition = "EnableTracing"))
 | 
						|
	ESentryTracesSamplingType SamplingType;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
 | 
						|
		Meta = (DisplayName = "Traces sample rate", ToolTip = "Setting a uniform sample rate for all transactions to a number between 0.0 and 1.0. (For example, to send 20% of transactions, set TracesSampleRate to 0.2).",
 | 
						|
			EditCondition = "EnableTracing && SamplingType == ESentryTracesSamplingType::UniformSampleRate", EditConditionHides))
 | 
						|
	float TracesSampleRate;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Performance Monitoring",
 | 
						|
		Meta = (DisplayName = "Traces sampler", ToolTip = "Custom hanler for determining traces sample rate based on the sampling context.",
 | 
						|
			EditCondition = "EnableTracing && SamplingType == ESentryTracesSamplingType::TracesSampler", EditConditionHides))
 | 
						|
	TSubclassOf<USentryTraceSampler> TracesSampler;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
 | 
						|
		Meta = (DisplayName = "Promote values to tags"))
 | 
						|
	FTagsPromotion TagsPromotion;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
 | 
						|
		Meta = (DisplayName = "Enable for Build Configurations"))
 | 
						|
	FEnableBuildConfigurations EnableBuildConfigurations;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
 | 
						|
		Meta = (DisplayName = "Enable for Build Target Types"))
 | 
						|
	FEnableBuildTargets EnableBuildTargets;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, BlueprintReadWrite, Category = "General|Misc",
 | 
						|
		Meta = (DisplayName = "Enable for Build Platform Types"))
 | 
						|
	FEnableBuildPlatforms EnableBuildPlatforms;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "General|Misc",
 | 
						|
		Meta = (DisplayName = "Enable for promoted builds only", ToolTip = "Flag indicating whether to enable for promoted builds only."))
 | 
						|
	bool EnableForPromotedBuildsOnly;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Upload debug symbols automatically", ToolTip = "Flag indicating whether to automatically upload debug symbols to Sentry when packaging the app."))
 | 
						|
	bool UploadSymbolsAutomatically;
 | 
						|
 | 
						|
	UPROPERTY(EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Project Name", ToolTip = "Name of the project for which debug symbols should be uploaded.", EditCondition = "UploadSymbolsAutomatically"))
 | 
						|
	FString ProjectName;
 | 
						|
 | 
						|
	UPROPERTY(EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Organization Name", ToolTip = "Name of the organisation associated with the project.", EditCondition = "UploadSymbolsAutomatically"))
 | 
						|
	FString OrgName;
 | 
						|
 | 
						|
	UPROPERTY(EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Authentication token", ToolTip = "Authentication token for performing actions against Sentry API.", EditCondition = "UploadSymbolsAutomatically"))
 | 
						|
	FString AuthToken;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Upload sources", ToolTip = "Flag indicating whether to automatically scan the debug files for references to source code files and upload them if any.", EditCondition = "UploadSymbolsAutomatically"))
 | 
						|
	bool IncludeSources;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Diagnostic Level", ToolTip = "Logs verbosity level during symbol uploading.", EditCondition = "UploadSymbolsAutomatically"))
 | 
						|
	ESentryCliLogLevel DiagnosticLevel;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
 | 
						|
		Meta = (DisplayName = "Use legacy Sentry Gradle plugin (for Android only)", ToolTip = "Flag indicating whether to use legacy Sentry Gradle plugin for debug symbol upload. No engine's Gradle version bump is required if enabled. This can be used as a fallback if the newer Gradle 7.5 causing compatibility issues with other third-party plugins.",
 | 
						|
			EditCondition = "UploadSymbolsAutomatically"))
 | 
						|
	bool UseLegacyGradlePlugin;
 | 
						|
 | 
						|
	UPROPERTY(Config, EditAnywhere, Category = "Crash Reporter",
 | 
						|
		Meta = (DisplayName = "Crash Reporter Endpoint", ToolTip = "Endpoint that Unreal Engine Crah Reporter should use in order to upload crash data to Sentry."))
 | 
						|
	FString CrashReporterUrl;
 | 
						|
 | 
						|
#if WITH_EDITOR
 | 
						|
	virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
 | 
						|
#endif
 | 
						|
 | 
						|
	static FString GetFormattedReleaseName();
 | 
						|
 | 
						|
	bool IsDirty() const;
 | 
						|
	void ClearDirtyFlag();
 | 
						|
 | 
						|
private:
 | 
						|
	FString GetDefaultEnvironmentName();
 | 
						|
 | 
						|
	void LoadDebugSymbolsProperties();
 | 
						|
	void CheckLegacySettings();
 | 
						|
 | 
						|
	bool bIsDirty;
 | 
						|
};
 |