diff --git a/3.9.1/api/allclasses-index.html b/3.9.1/api/allclasses-index.html
new file mode 100644
index 000000000..6334ba17e
--- /dev/null
+++ b/3.9.1/api/allclasses-index.html
@@ -0,0 +1,322 @@
+
+
+
+
+All Classes and Interfaces (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
All Classes and Interfaces Interfaces Classes Enum Classes Record Classes Exceptions Annotation Interfaces
+
+
+
+
+
+
+
Abstract base factory for SDK objects.
+
+
+
+
Bridges the AsyncHandler
interface to an RxJava SingleEmitter
.
+
+
+
+
Bridges the AsyncHandler
interface to an RxJava MonoSink
.
+
+
+
+
Configuration properties for the automated oracle wallet download and configuration.
+
+
+
+
+
+
Event used to alert when a new Oracle Cloud certificate is ready for use.
+
+
+
+
Allows for netty SslContext to be delegated to another as well as switched out at runtime.
+
+
+
+
Testing support for functions.
+
+
+
+
Implementation for Project.fn of a multi value map.
+
+
+
+
Hikari connection pool listener that downloads oracle wallet and extends the Hikari DatasourceConfiguration
.
+
+
+
+
A parent HttpFunction for authoring Project.fn gateway functions.
+
+
+
+
Allows configuration of the InstancePrincipalsAuthenticationDetailsProvider
.
+
+
+
+
HttpProvider
implementation similar to
NettyHttpProvider
, but managed by an
+
ApplicationContext
.
+
+
+
+
Oracle SDK provides MonitoringClient
that is constructed with default https://telemetry.<region>.oraclecloud.com
endpoint.
+
+
+
+
Client properties
+ specific to the netty client.
+
+
+
+
Netty-based implementation of HttpProvider
.
+
+
+
+
Parent class that can be used for Oracle Cloud functions.
+
+
+
+
Implementation of Serializer
based on micronaut serde using ObjectMapper
.
+
+
+
+
Type element visitor vising oci sdk models and enums.
+
+
+
+
+
+
+
+
The HTTP client configuration for OKE Workload Identity client.
+
+
+
+
Allows configuration of the OkeWorkloadIdentityAuthenticationDetailsProvider
.
+
+
+
+
Sets up core beans for integration with Oracle cloud clients.
+
+
+
+
Oracle Cloud log appender for logback.
+
+
+
+
Configuration for Oracle Cloud auth config.
+
+
+
+
Service to contact an Oracle Cloud Certificate service and setup a certificate on a given basis.
+
+
+
+
Background task to automatically refresh the certificates from an Oracle Cloud Certificate server on a configurable interval.
+
+
+
+
Allows the configuration of the Oracle Cloud certificate process.
+
+
+
+
Configuration for the AuthenticationDetailsProvider
.
+
+
+
+
+
+
A condition used to enable file based configuration if the file exists that is specified by either oci.config
or
+ available at $USE_HOME/.oci/config
.
+
+
+
+
Configuration properties for the local OCI config file (eg: $USE_HOME/.oci/config
).
+
+
+
+
Sets up core beans for integration with Oracle cloud clients.
+
+
+
+
A StepCounter
that tracks list of raw Datapoint
.
+
+
+
+
A Meter that collects raw Datapoint
.
+
+
+
+
A StepDistributionSummary
that tracks list of raw Datapoint
.
+
+
+
+
Represents ComputeInstanceMetadata
for Oracle Cloud.
+
+
+
+
OracleCloudJsonFormatter implementation of the JsonFormatter
.
+
+
+
+
Default configuration for retrieving Oracle Cloud metadata for ComputePlatform.ORACLE_CLOUD
.
+
+
+
+
Models common Oracle Cloud compute instance metadata keys.
+
+
+
+
Resolves ComputeInstanceMetadata
for Oracle Cloud Infrastructure.
+
+
+
+
StepMeterRegistry
for Oracle Cloud Monitoring that produces aggregated data.
+
+
+
+
The OracleCloudMeterRegistryFactory that will configure and create an oracle cloud monitoring meter registry.
+
+
+
+
NamingConvention
for Oracle Cloud Monitoring.
+
+
+
+
StepMeterRegistry
for Oracle Cloud Monitoring that produces raw data.
+
+
+
+
An annotation processor that generates the Oracle Cloud SDK integration
+ for Micronaut.
+
+
+
+
The Netty implementation of ServerSslBuilder
that generates an SslContext
to create a server handler
+ with to SSL support via a temporary self signed certificate that will be replaced by an Oracle Cloud certificate once acquired.
+
+
+
+
A StepTimer
that tracks list of raw Datapoint
.
+
+
+
+
OracleCloudVault Client.
+
+
+
+
An Oracle Cloud Vault.
+
+
+
+
The Discovery Configuration class for Oracle Cloud Vault.
+
+
+
+
A ConfigurationClient
for Oracle Cloud Vault Configuration.
+
+
+
+
Represents the attributes of a
DataSource
that a
Wallet
can configure.
+
+
+
+
Oracle archive wallet provider.
+
+
+
+
Internal Annotation to trigger the creation of SDK clients.
+
+
+
+
the type of client to generate.
+
+
+
+
Interface that supplies the Tenant ID.
+
+
+
+
UCP connection pool listener that downloads oracle wallet and configures the PoolDataSource
.
+
+
+
+
Represents a Zip archive containing at least a cwallet.sso
or ewallet.p12
and
+ optionally a tnsnames.ora
.
+
+
+
+
+
+
Entrypoint to the Wallet related API
+
+
+
+
Services for reading Oracle cwallet.sso
and ewallet.p12
wallets
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/allpackages-index.html b/3.9.1/api/allpackages-index.html
new file mode 100644
index 000000000..a167497ef
--- /dev/null
+++ b/3.9.1/api/allpackages-index.html
@@ -0,0 +1,138 @@
+
+
+
+
+All Packages (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+Package Summary
+
+
+
+
+
+
Oracle cloud configuration.
+
+
+
+
+
+
+
+
+
+
All classes in this package are considered internal and should not be used publicly.
+
+
+
+
+
+
Logging classes for integration with Oracle Cloud.
+
+
+
+
Background jobs used to integrate with Oracle Cloud Certificates.
+
+
+
+
Events used by Oracle Cloud Certificate tasks.
+
+
+
+
Service classes used to integrate with Oracle Cloud Certificates.
+
+
+
+
Events used by Oracle Cloud Certificate tasks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes related to using Oracle Cloud Vault as a distributed configuration client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logging classes for integration with Oracle Cloud.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/constant-values.html b/3.9.1/api/constant-values.html
new file mode 100644
index 000000000..fd24e0e8a
--- /dev/null
+++ b/3.9.1/api/constant-values.html
@@ -0,0 +1,282 @@
+
+
+
+
+Constant Field Values (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+io.micronaut.*
+
+
+
+
+
+
+
+
public static final boolean
+
+
true
+
+
+
"http://169.254.169.254/opc/v1/instance/"
+
+
+
"http://169.254.169.254/opc/v2/instance/"
+
+
+
"http://169.254.169.254/opc/v2/vnics/"
+
public static final int
+
+
1
+
+
+
"http://169.254.169.254/opc/v1/vnics/"
+
+
+
"micronaut.application.oraclecloud.metadata"
+
+
+
+
+
+
+
+
+
+
+
+
+
"oracle.jdbc.OracleDriver"
+
public static final int
+
+
-2147483548
+
+
+
+
+
+
+
+
+
+
+
public static final int
+
+
-2147483548
+
+
+
+
+
+
+
+
+
+
+
+
+
"oci.certificates"
+
+
+
+
+
+
+
+
+
+
+
+
+
"io.micronaut.oraclecloud.clients"
+
+
+
"ociSdkClientClasses"
+
+
+
+
+
+
+
+
+
+
+
+
+
"oci.config.instance-principal"
+
+
+
+
+
+
+
+
+
+
+
"oci.tenant-id"
+
+
+
+
+
+
+
+
+
+
+
"oci.config"
+
+
+
+
+
+
+
+
+
+
+
"http://169.254.169.254/opc/v1/"
+
+
+
"oci.config.oke-workload-identity"
+
+
+
"oci"
+
+
+
"oci.config.path"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
"oci.vault.config"
+
+
+
+
+
+
+
+
+
+
+
+
+
"micronaut.metrics.export.oraclecloud"
+
+
+
"micronaut.metrics.export.oraclecloud.enabled"
+
+
+
"micronaut.metrics.export.oraclecloud.raw.enabled"
+
+
+
+
+
+
+
+
+
+
+
+
+
"^[a-z][a-z0-9_]*[a-z0-9]$"
+
+
+
"oraclecloud"
+
+
+
+
+
+
+
+
+
+
+
+
+
"micronaut.http.oci-oke.client"
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/deprecated-list.html b/3.9.1/api/deprecated-list.html
new file mode 100644
index 000000000..92c0694b7
--- /dev/null
+++ b/3.9.1/api/deprecated-list.html
@@ -0,0 +1,160 @@
+
+
+
+
+Deprecated List (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
Terminally Deprecated Elements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deprecated Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deprecated Constructors
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/element-list b/3.9.1/api/element-list
new file mode 100644
index 000000000..4c7d573e1
--- /dev/null
+++ b/3.9.1/api/element-list
@@ -0,0 +1,29 @@
+io.micronaut.discovery.cloud.oraclecloud
+io.micronaut.oraclecloud.atp.jdbc
+io.micronaut.oraclecloud.atp.jdbc.hikari
+io.micronaut.oraclecloud.atp.jdbc.ucp
+io.micronaut.oraclecloud.atp.wallet
+io.micronaut.oraclecloud.atp.wallet.datasource
+io.micronaut.oraclecloud.certificates
+io.micronaut.oraclecloud.certificates.background
+io.micronaut.oraclecloud.certificates.events
+io.micronaut.oraclecloud.certificates.services
+io.micronaut.oraclecloud.certificates.ssl
+io.micronaut.oraclecloud.clients
+io.micronaut.oraclecloud.clients.processor
+io.micronaut.oraclecloud.clients.reactor
+io.micronaut.oraclecloud.clients.rxjava2
+io.micronaut.oraclecloud.core
+io.micronaut.oraclecloud.core.sdk
+io.micronaut.oraclecloud.discovery.vault
+io.micronaut.oraclecloud.function
+io.micronaut.oraclecloud.function.http
+io.micronaut.oraclecloud.function.http.test
+io.micronaut.oraclecloud.httpclient.netty
+io.micronaut.oraclecloud.httpclient.netty.visitor
+io.micronaut.oraclecloud.logging
+io.micronaut.oraclecloud.monitoring
+io.micronaut.oraclecloud.monitoring.micrometer
+io.micronaut.oraclecloud.monitoring.primitives
+io.micronaut.oraclecloud.oke.workload.identity
+io.micronaut.oraclecloud.serde
diff --git a/3.9.1/api/help-doc.html b/3.9.1/api/help-doc.html
new file mode 100644
index 000000000..68c11ae7f
--- /dev/null
+++ b/3.9.1/api/help-doc.html
@@ -0,0 +1,191 @@
+
+
+
+
+API Help (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+JavaDoc Help
+
+
+
+
Navigation
+Starting from the
Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The
Index and Search box allow you to navigate to specific declarations and summary pages, including:
All Packages ,
All Classes and Interfaces
+
+Search
+You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camelCase" abbreviations. For example:
+
+j.l.obj
will match "java.lang.Object"
+InpStr
will match "java.io.InputStream"
+HM.cK
will match "java.util.HashMap.containsKey(Object)"
+
+Refer to the Javadoc Search Specification for a full description of search features.
+
+
+
+
+
Kinds of Pages
+The following sections describe the different kinds of pages in this collection.
+
+Overview
+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+
+
+Package
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:
+
+Interfaces
+Classes
+Enum Classes
+Exceptions
+Errors
+Annotation Interfaces
+
+
+
+Class or Interface
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.
+
+Class Inheritance Diagram
+Direct Subclasses
+All Known Subinterfaces
+All Known Implementing Classes
+Class or Interface Declaration
+Class or Interface Description
+
+
+
+Nested Class Summary
+Enum Constant Summary
+Field Summary
+Property Summary
+Constructor Summary
+Method Summary
+Required Element Summary
+Optional Element Summary
+
+
+
+Enum Constant Details
+Field Details
+Property Details
+Constructor Details
+Method Details
+Element Details
+
+Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.
+The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+Other Files
+Packages and modules may contain pages with additional information related to the declarations nearby.
+
+
+Tree (Class Hierarchy)
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object
. Interfaces do not inherit from java.lang.Object
.
+
+When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
+When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
+
+
+
+Deprecated API
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+
+
+
+
+All Packages
+The All Packages page contains an alphabetic index of all packages contained in the documentation.
+
+
+All Classes and Interfaces
+The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/index-all.html b/3.9.1/api/index-all.html
new file mode 100644
index 000000000..7249ba4ae
--- /dev/null
+++ b/3.9.1/api/index-all.html
@@ -0,0 +1,1452 @@
+
+
+
+
+Index (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+A B C D E F G H I L M N O P R S T U V W All Classes and Interfaces | All Packages | Constant Field Values | Serialized Form
+A
+
+AbstractSdkClientFactory <B extends com.oracle.bmc.common.ClientBuilderBase<B ,T >,T > - Class in io.micronaut.oraclecloud.core.sdk
+
+Abstract base factory for SDK objects.
+
+AbstractSdkClientFactory(B, ClientConfiguration, ClientConfigurator, RequestSignerFactory) - Constructor for class io.micronaut.oraclecloud.core.sdk.AbstractSdkClientFactory
+
+Default constructor.
+
+addAppender(Appender<ILoggingEvent>) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+addBlackListLoggerName(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+AGENT_CONFIG - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+append(ILoggingEvent) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+applicationName() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+Application name used as a default dimension for MetricDataDetails
.
+
+applicationProtocolNegotiator() - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+archives() - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+ASYNC - Enum constant in enum class io.micronaut.oraclecloud.clients.SdkClients.Kind
+
+AsyncHandlerEmitter <Req ,Res > - Class in io.micronaut.oraclecloud.clients.rxjava2
+
+Bridges the AsyncHandler
interface to an RxJava SingleEmitter
.
+
+AsyncHandlerEmitter(SingleEmitter<Res>) - Constructor for class io.micronaut.oraclecloud.clients.rxjava2.AsyncHandlerEmitter
+
+AsyncHandlerSink <Req ,Res > - Class in io.micronaut.oraclecloud.clients.reactor
+
+Bridges the AsyncHandler
interface to an RxJava MonoSink
.
+
+AsyncHandlerSink(MonoSink<Res>) - Constructor for class io.micronaut.oraclecloud.clients.reactor.AsyncHandlerSink
+
+AutonomousDatabaseConfiguration - Class in io.micronaut.oraclecloud.atp.jdbc
+
+Configuration properties for the automated oracle wallet download and configuration.
+
+AutonomousDatabaseConfiguration() - Constructor for class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+AVAILABILITY_DOMAIN - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+
+B
+
+backgroundRenewal() - Method in class io.micronaut.oraclecloud.certificates.background.OracleCloudCertificationRefresherTask
+
+Scheduled task to refresh certs from Oracle Cloud Certificate server.
+
+batchAtomicity() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+batchSize() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+build() - Method in class io.micronaut.oraclecloud.certificates.ssl.OracleCloudSSLContextBuilder
+
+Generates an SslContext that has an already expired self signed cert that should be replaced almost immediately by the Oracle Cloud Certificate server once it is downloaded.
+
+build(B, AbstractAuthenticationDetailsProvider) - Method in class io.micronaut.oraclecloud.core.sdk.AbstractSdkClientFactory
+
+Builds the client based on its builder to make sure user can configure
+ required parameters in the builder.
+
+builder() - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+Create an auto login io.micronaut.oraclecloud.adb.wallet Wallet.Builder
+
+
+C
+
+CanConfigureOracleDataSource - Interface in io.micronaut.oraclecloud.atp.wallet.datasource
+
+
+
+CANONICAL_REGION_NAME - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+certificate() - Method in record class io.micronaut.oraclecloud.certificates.events.CertificateEvent
+
+
+
+CertificateEvent - Record Class in io.micronaut.oraclecloud.certificates.events
+
+Event used to alert when a new Oracle Cloud certificate is ready for use.
+
+CertificateEvent(PrivateKey, X509Certificate) - Constructor for record class io.micronaut.oraclecloud.certificates.events.CertificateEvent
+
+Creates an instance of a CertificateEvent
record class.
+
+certificateId() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+
+
+certificateVersionName() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+
+
+cipherSuites() - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+CLIENT_PACKAGE - Static variable in class io.micronaut.oraclecloud.clients.processor.OracleCloudSdkProcessor
+
+The package to which client factories will be written.
+
+clientClasses() - Element in annotation interface io.micronaut.oraclecloud.clients.SdkClients
+
+clientConfiguration(ClientConfiguration.ClientConfigurationBuilder) - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Configures the default ClientConfiguration
if no other configuration is present.
+
+close() - Method in class io.micronaut.oraclecloud.function.OciFunction
+
+COMPARTMENT_ID - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+compartmentId() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+configFileAuthenticationDetailsProvider() - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Configures a ConfigFileAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ a file is found at $USER_HOME/.oci/config
or specified by the user with oci.config.path
.
+
+configurationBuilder(OracleCloudClientConfigurationProperties) - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Produces a ClientConfiguration.ClientConfigurationBuilder
bean for the given properties.
+
+configure(OracleCommonDataSource) - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.CanConfigureOracleDataSource
+
+Convenience method to configure an OracleCommonDataSource
sub-type.
+
+configure(T) - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.CanConfigureOracleDataSource
+
+Configure a data source using the state in this instance.
+
+configure(T) - Method in class io.micronaut.oraclecloud.atp.wallet.WalletArchive
+
+Configure a data source with the state held in this io.micronaut.oraclecloud.adb.wallet archive.
+
+conversionService - Variable in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+
+D
+
+DEFAULT_ENABLED - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+The default enable value.
+
+DEFAULT_URL - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+The default url value.
+
+DEFAULT_V2_URL - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+DEFAULT_V2_VNIC_URL - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+DEFAULT_VERSION - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+The default IMDS version to use.
+
+DEFAULT_VNIC_URL - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+DelegatedSslContext - Class in io.micronaut.oraclecloud.certificates.ssl
+
+Allows for netty SslContext to be delegated to another as well as switched out at runtime.
+
+description() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+Flag whether meter description should be sent to monitoring service.
+
+detachAndStopAllAppenders() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+detachAppender(Appender<ILoggingEvent>) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+detachAppender(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+DISPLAY_NAME - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+
+E
+
+enabled() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+Returns the value of the
enabled
record component.
+
+enabled() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Returns the value of the
enabled
record component.
+
+enableSharedJackson() - Method in class io.micronaut.oraclecloud.function.OciFunction
+
+equals(Object) - Method in record class io.micronaut.oraclecloud.certificates.events.CertificateEvent
+
+Indicates whether some other object is "equal to" this one.
+
+equals(Object) - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+Indicates whether some other object is "equal to" this one.
+
+equals(Object) - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Indicates whether some other object is "equal to" this one.
+
+
+F
+
+FAULT_DOMAIN - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+FnHttpTest - Class in io.micronaut.oraclecloud.function.http.test
+
+Testing support for functions.
+
+FnHttpTest() - Constructor for class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+FnMultiValueMap - Class in io.micronaut.oraclecloud.function.http
+
+Implementation for Project.fn of a multi value map.
+
+FnMultiValueMap(Map<String, List<String>>, ConversionService) - Constructor for class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+Default constructor.
+
+
+G
+
+get(CharSequence) - Method in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+get(CharSequence, ArgumentConversionContext<T>) - Method in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+getAll(CharSequence) - Method in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+getAppender(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getApplicationContext() - Method in class io.micronaut.oraclecloud.function.OciFunction
+
+getBaseTimeUnit() - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+getBaseUrl() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+getBuilder() - Method in class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+getBuilder() - Method in class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+getBuilder() - Method in class io.micronaut.oraclecloud.core.sdk.AbstractSdkClientFactory
+
+getBuilder() - Method in class io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration
+
+getCertificateEvent() - Method in class io.micronaut.oraclecloud.certificates.services.OracleCloudCertificateService
+
+Returns the certificate event.
+
+getCircuitBreakerBuilder() - Method in class io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties
+
+getClientBuilder() - Method in class io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties
+
+getCompartmentOcid() - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+The compartment OCID where the vault resides.
+
+getComputePlatform() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudInstanceMetadata
+
+getConfigPath() - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+getDatapoints() - Method in class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudCounter
+
+getDatapoints() - Method in interface io.micronaut.oraclecloud.monitoring.primitives.OracleCloudDatapointProducer
+
+Returns list of datapoints that will be sent.
+
+getDatapoints() - Method in class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudDistributionSummary
+
+getDatapoints() - Method in class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudTimer
+
+getDefaultObjectMapper() - Static method in class io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer
+
+getDefaultSerializer() - Static method in class io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer
+
+getDelegate() - Method in class io.micronaut.oraclecloud.monitoring.MonitoringIngestionClient
+
+Gets the MonitoringClient
delegate.
+
+getDescription() - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfigurationClient
+
+getDiscoveryConfiguration() - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+
+getEncoder() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getFaultDomain() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudInstanceMetadata
+
+Getter for faultDomain.
+
+getHttpHandler() - Method in class io.micronaut.oraclecloud.function.http.HttpFunction
+
+getInclusion() - Method in interface io.micronaut.oraclecloud.serde.OciSerializationConfiguration
+
+getInstanceDocumentUrl() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+getLogId() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getMaxBatchSize() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getMetadataBaseUrl() - Method in class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+Get custom metadata base url.
+
+getMetadataUrl() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+getMetricData() - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+getMetricData() - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+getName() - Method in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+getOcid() - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+getOcid() - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+The OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+getOrder() - Method in class io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener
+
+getOrder() - Method in class io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener
+
+getOrder() - Method in class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+getProfile() - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+getPropertySources(Environment) - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfigurationClient
+
+getPublishPeriod() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getQueueSize() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getRetryBuilder() - Method in class io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties
+
+getSerializer() - Method in class io.micronaut.oraclecloud.httpclient.netty.ManagedNettyHttpProvider
+
+getSerializer() - Method in class io.micronaut.oraclecloud.httpclient.netty.NettyHttpProvider
+
+getServiceAlias() - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+getSource() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getSslConfiguration() - Method in class io.micronaut.oraclecloud.certificates.ssl.OracleCloudSSLContextBuilder
+
+getSubject() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getTenancyId() - Method in interface io.micronaut.oraclecloud.core.TenancyIdProvider
+
+getType() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+getUrl() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+getVaults() - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+
+
+
+getVisitorKind() - Method in class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+getVnicUrl() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+
+
+getWalletPassword() - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+getWalletType() - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+
+H
+
+handleRequest(HTTPGatewayContext, InputEvent) - Method in class io.micronaut.oraclecloud.function.http.HttpFunction
+
+Main entry point for Gateway functions for Project.fn.
+
+hashCode() - Method in record class io.micronaut.oraclecloud.certificates.events.CertificateEvent
+
+Returns a hash code value for this object.
+
+hashCode() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+Returns a hash code value for this object.
+
+hashCode() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Returns a hash code value for this object.
+
+HikariPoolConfigurationListener - Class in io.micronaut.oraclecloud.atp.jdbc.hikari
+
+Hikari connection pool listener that downloads oracle wallet and extends the Hikari DatasourceConfiguration
.
+
+HikariPoolConfigurationListener(OracleWalletArchiveProvider, BeanLocator) - Constructor for class io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener
+
+Default constructor.
+
+HttpFunction - Class in io.micronaut.oraclecloud.function.http
+
+A parent HttpFunction for authoring Project.fn gateway functions.
+
+HttpFunction() - Constructor for class io.micronaut.oraclecloud.function.http.HttpFunction
+
+Default constructor.
+
+HttpFunction(ApplicationContext) - Constructor for class io.micronaut.oraclecloud.function.http.HttpFunction
+
+Constructor for using a shared application context.
+
+
+I
+
+ID - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+IMAGE - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+increment(double) - Method in class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudCounter
+
+init(ProcessingEnvironment) - Method in class io.micronaut.oraclecloud.clients.processor.OracleCloudSdkProcessor
+
+instance() - Static method in class io.micronaut.oraclecloud.atp.wallet.WalletModule
+
+
+
+instancePrincipalAuthenticationDetailsProvider(InstancePrincipalConfiguration) - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Configures a InstancePrincipalsAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the specified by the user with oci.config.use-instance-principal
.
+
+InstancePrincipalConfiguration - Class in io.micronaut.oraclecloud.core
+
+Allows configuration of the InstancePrincipalsAuthenticationDetailsProvider
.
+
+InstancePrincipalConfiguration() - Constructor for class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+invoke(HttpMethod, String) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpMethod, String, List<Class<?>>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpRequest<I>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpRequest<I>, Argument<O>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpRequest<I>, Argument<O>, List<Class<?>>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpRequest<I>, Class<O>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpRequest<I>, Class<O>, List<Class<?>>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+invoke(HttpRequest<I>, List<Class<?>>) - Static method in class io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+Invoke a function via HTTP.
+
+io.micronaut.discovery.cloud.oraclecloud - package io.micronaut.discovery.cloud.oraclecloud
+
+Oracle cloud configuration.
+
+io.micronaut.oraclecloud.atp.jdbc - package io.micronaut.oraclecloud.atp.jdbc
+
+io.micronaut.oraclecloud.atp.jdbc.hikari - package io.micronaut.oraclecloud.atp.jdbc.hikari
+
+io.micronaut.oraclecloud.atp.jdbc.ucp - package io.micronaut.oraclecloud.atp.jdbc.ucp
+
+io.micronaut.oraclecloud.atp.wallet - package io.micronaut.oraclecloud.atp.wallet
+
+All classes in this package are considered internal and should not be used publicly.
+
+io.micronaut.oraclecloud.atp.wallet.datasource - package io.micronaut.oraclecloud.atp.wallet.datasource
+
+io.micronaut.oraclecloud.certificates - package io.micronaut.oraclecloud.certificates
+
+Logging classes for integration with Oracle Cloud.
+
+io.micronaut.oraclecloud.certificates.background - package io.micronaut.oraclecloud.certificates.background
+
+Background jobs used to integrate with Oracle Cloud Certificates.
+
+io.micronaut.oraclecloud.certificates.events - package io.micronaut.oraclecloud.certificates.events
+
+Events used by Oracle Cloud Certificate tasks.
+
+io.micronaut.oraclecloud.certificates.services - package io.micronaut.oraclecloud.certificates.services
+
+Service classes used to integrate with Oracle Cloud Certificates.
+
+io.micronaut.oraclecloud.certificates.ssl - package io.micronaut.oraclecloud.certificates.ssl
+
+Events used by Oracle Cloud Certificate tasks.
+
+io.micronaut.oraclecloud.clients - package io.micronaut.oraclecloud.clients
+
+io.micronaut.oraclecloud.clients.processor - package io.micronaut.oraclecloud.clients.processor
+
+io.micronaut.oraclecloud.clients.reactor - package io.micronaut.oraclecloud.clients.reactor
+
+io.micronaut.oraclecloud.clients.rxjava2 - package io.micronaut.oraclecloud.clients.rxjava2
+
+io.micronaut.oraclecloud.core - package io.micronaut.oraclecloud.core
+
+io.micronaut.oraclecloud.core.sdk - package io.micronaut.oraclecloud.core.sdk
+
+io.micronaut.oraclecloud.discovery.vault - package io.micronaut.oraclecloud.discovery.vault
+
+Classes related to using Oracle Cloud Vault as a distributed configuration client.
+
+io.micronaut.oraclecloud.function - package io.micronaut.oraclecloud.function
+
+io.micronaut.oraclecloud.function.http - package io.micronaut.oraclecloud.function.http
+
+io.micronaut.oraclecloud.function.http.test - package io.micronaut.oraclecloud.function.http.test
+
+io.micronaut.oraclecloud.httpclient.netty - package io.micronaut.oraclecloud.httpclient.netty
+
+io.micronaut.oraclecloud.httpclient.netty.visitor - package io.micronaut.oraclecloud.httpclient.netty.visitor
+
+io.micronaut.oraclecloud.logging - package io.micronaut.oraclecloud.logging
+
+Logging classes for integration with Oracle Cloud.
+
+io.micronaut.oraclecloud.monitoring - package io.micronaut.oraclecloud.monitoring
+
+io.micronaut.oraclecloud.monitoring.micrometer - package io.micronaut.oraclecloud.monitoring.micrometer
+
+io.micronaut.oraclecloud.monitoring.primitives - package io.micronaut.oraclecloud.monitoring.primitives
+
+io.micronaut.oraclecloud.oke.workload.identity - package io.micronaut.oraclecloud.oke.workload.identity
+
+io.micronaut.oraclecloud.serde - package io.micronaut.oraclecloud.serde
+
+isAttached(Appender<ILoggingEvent>) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+isClient() - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+isEnabled() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+isEnabled() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+If Oracle Cloud certificate background and setup process should be enabled.
+
+isEnabled() - Method in class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+isEnabled() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+isEnabled() - Method in class io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration
+
+isV1Enabled() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+isV2Enabled() - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+isWriteBinaryAsArray() - Method in interface io.micronaut.oraclecloud.serde.OciSerdeConfiguration
+
+iteratorForAppenders() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+
+L
+
+loadWalletArchive(AutonomousDatabaseConfiguration) - Method in class io.micronaut.oraclecloud.atp.jdbc.OracleWalletArchiveProvider
+
+
+
+LOG - Static variable in class io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+
+
+M
+
+MAC - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+MANAGED_PROVIDER - Static variable in class io.micronaut.oraclecloud.httpclient.netty.NettyClientProperties
+
+
+
+ManagedNettyHttpProvider - Class in io.micronaut.oraclecloud.httpclient.netty
+
+HttpProvider
implementation similar to
NettyHttpProvider
, but managed by an
+
ApplicationContext
.
+
+ManagedNettyHttpProvider(HttpClientRegistry<?>, ExecutorService, ObjectMapper, OciSerdeConfiguration, OciSerializationConfiguration) - Constructor for class io.micronaut.oraclecloud.httpclient.netty.ManagedNettyHttpProvider
+
+ManagedNettyHttpProvider(HttpClient, ExecutorService) - Constructor for class io.micronaut.oraclecloud.httpclient.netty.ManagedNettyHttpProvider
+
+matches(ConditionContext) - Method in class io.micronaut.oraclecloud.core.OracleCloudConfigCondition
+
+METADATA_SERVICE_URL - Static variable in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+modify(Wallet) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+modify(Wallet, char[]) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+MONITORING_DISABLED - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+MonitoringIngestionClient - Class in io.micronaut.oraclecloud.monitoring
+
+Oracle SDK provides MonitoringClient
that is constructed with default https://telemetry.<region>.oraclecloud.com
endpoint.
+
+MonitoringIngestionClient(ClientConfiguration, ClientConfigurator, RequestSignerFactory, RegionProvider, AbstractAuthenticationDetailsProvider) - Constructor for class io.micronaut.oraclecloud.monitoring.MonitoringIngestionClient
+
+Deprecated.
+
+
+
+MonitoringIngestionClient(ClientConfiguration, ClientConfigurator, RequestSignerFactory, RegionProvider, AbstractAuthenticationDetailsProvider, HttpProvider) - Constructor for class io.micronaut.oraclecloud.monitoring.MonitoringIngestionClient
+
+
+
+
+N
+
+name(String, Meter.Type, String) - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention
+
+A valid name value starts with an alphabetical character and includes only alphanumeric characters, dots,
+ underscores, hyphens, and dollar signs.
+
+names() - Method in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+namespace() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+NAMESPACE_PATTERN - Static variable in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+NAMESPACE_REGEX - Static variable in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+NettyClientProperties - Class in io.micronaut.oraclecloud.httpclient.netty
+
+Client properties
+ specific to the netty client.
+
+NettyHttpProvider - Class in io.micronaut.oraclecloud.httpclient.netty
+
+Netty-based implementation of HttpProvider
.
+
+NettyHttpProvider() - Constructor for class io.micronaut.oraclecloud.httpclient.netty.NettyHttpProvider
+
+Construct a netty-based HttpProvider
.
+
+newApplicationContextBuilder(RuntimeContext) - Method in class io.micronaut.oraclecloud.function.OciFunction
+
+Construct the application context with the given builder.
+
+newBuilder() - Method in class io.micronaut.oraclecloud.httpclient.netty.ManagedNettyHttpProvider
+
+newBuilder() - Method in class io.micronaut.oraclecloud.httpclient.netty.NettyHttpProvider
+
+newCounter(Meter.Id) - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+newDistributionSummary(Meter.Id, DistributionStatisticConfig, double) - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+newEngine(ByteBufAllocator) - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+newEngine(ByteBufAllocator, String, int) - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+newTimer(Meter.Id, DistributionStatisticConfig, PauseDetector) - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+
+O
+
+OCI_SDK_CLIENT_CLASSES_OPTION - Static variable in class io.micronaut.oraclecloud.clients.processor.OracleCloudSdkProcessor
+
+Processing environment option used to specify the client classes to process.
+
+OciFunction - Class in io.micronaut.oraclecloud.function
+
+Parent class that can be used for Oracle Cloud functions.
+
+OciFunction() - Constructor for class io.micronaut.oraclecloud.function.OciFunction
+
+Default constructor.
+
+OciFunction(ApplicationContext) - Constructor for class io.micronaut.oraclecloud.function.OciFunction
+
+Construct a function with the given context.
+
+OciSdkMicronautSerializer - Class in io.micronaut.oraclecloud.serde
+
+Implementation of Serializer
based on micronaut serde using ObjectMapper
.
+
+OciSdkMicronautSerializer(JsonMapper) - Constructor for class io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer
+
+Create Serializer from micronaut serde ObjectMapper
.
+
+OciSdkModelSerdeVisitor - Class in io.micronaut.oraclecloud.httpclient.netty.visitor
+
+Type element visitor vising oci sdk models and enums.
+
+OciSdkModelSerdeVisitor() - Constructor for class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+OciSerdeConfiguration - Interface in io.micronaut.oraclecloud.serde
+
+OciSerializationConfiguration - Interface in io.micronaut.oraclecloud.serde
+
+OKE_WORKLOAD_IDENTITY_PREFIX - Static variable in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+OkeHttpClientConfiguration - Class in io.micronaut.oraclecloud.oke.workload.identity
+
+The HTTP client configuration for OKE Workload Identity client.
+
+OkeHttpClientConfiguration() - Constructor for class io.micronaut.oraclecloud.oke.workload.identity.OkeHttpClientConfiguration
+
+okeWorkloadIdentityAuthenticationDetailsProvider(OkeWorkloadIdentityConfiguration) - Method in class io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityFactory
+
+Configures a OkeWorkloadIdentityAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the specified by the user with oci.config.use-instance-principal
.
+
+OkeWorkloadIdentityConfiguration - Class in io.micronaut.oraclecloud.oke.workload.identity
+
+Allows configuration of the OkeWorkloadIdentityAuthenticationDetailsProvider
.
+
+OkeWorkloadIdentityConfiguration(OkeHttpClientConfiguration) - Constructor for class io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration
+
+OkeWorkloadIdentityFactory - Class in io.micronaut.oraclecloud.oke.workload.identity
+
+Sets up core beans for integration with Oracle cloud clients.
+
+OkeWorkloadIdentityFactory() - Constructor for class io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityFactory
+
+onError(Req, Throwable) - Method in class io.micronaut.oraclecloud.clients.reactor.AsyncHandlerSink
+
+onError(Req, Throwable) - Method in class io.micronaut.oraclecloud.clients.rxjava2.AsyncHandlerEmitter
+
+onInitialized(BeanInitializingEvent<DatasourceConfiguration>) - Method in class io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener
+
+onInitialized(BeanInitializingEvent<DatasourceConfiguration>) - Method in class io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener
+
+onSuccess(Req, Res) - Method in class io.micronaut.oraclecloud.clients.reactor.AsyncHandlerSink
+
+onSuccess(Req, Res) - Method in class io.micronaut.oraclecloud.clients.rxjava2.AsyncHandlerEmitter
+
+ORACLE_CLOUD - Static variable in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+ORACLE_CLOUD_CONFIG_PATH - Static variable in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+ORACLE_JDBC_ORACLE_DRIVER - Static variable in class io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener
+
+ORACLECLOUD_METRICS_CONFIG - Static variable in class io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+
+ORACLECLOUD_METRICS_ENABLED - Static variable in class io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+
+ORACLECLOUD_RAW_METRICS_ENABLED - Static variable in class io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+
+OracleCloudAppender - Class in io.micronaut.oraclecloud.logging
+
+Oracle Cloud log appender for logback.
+
+OracleCloudAppender() - Constructor for class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+OracleCloudAuthConfigurationProperties - Class in io.micronaut.oraclecloud.core
+
+Configuration for Oracle Cloud auth config.
+
+OracleCloudAuthConfigurationProperties() - Constructor for class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+OracleCloudCertificateService - Class in io.micronaut.oraclecloud.certificates.services
+
+Service to contact an Oracle Cloud Certificate service and setup a certificate on a given basis.
+
+OracleCloudCertificateService(OracleCloudCertificationsConfiguration, Certificates, ApplicationEventPublisher<CertificateEvent>) - Constructor for class io.micronaut.oraclecloud.certificates.services.OracleCloudCertificateService
+
+Constructs a new Oracle Cloud Certificate service.
+
+OracleCloudCertificationRefresherTask - Class in io.micronaut.oraclecloud.certificates.background
+
+Background task to automatically refresh the certificates from an Oracle Cloud Certificate server on a configurable interval.
+
+OracleCloudCertificationRefresherTask(OracleCloudCertificateService) - Constructor for class io.micronaut.oraclecloud.certificates.background.OracleCloudCertificationRefresherTask
+
+Constructs a new Oracle Certificate cert refresher background task.
+
+OracleCloudCertificationsConfiguration - Record Class in io.micronaut.oraclecloud.certificates
+
+Allows the configuration of the Oracle Cloud certificate process.
+
+OracleCloudCertificationsConfiguration(String, Long, String, Boolean) - Constructor for record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+Creates an instance of a OracleCloudCertificationsConfiguration
record class.
+
+OracleCloudClientConfigurationProperties - Class in io.micronaut.oraclecloud.core
+
+Configuration for the AuthenticationDetailsProvider
.
+
+OracleCloudClientConfigurationProperties() - Constructor for class io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties
+
+oracleCloudConfig - Variable in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+OracleCloudConfig - Interface in io.micronaut.oraclecloud.monitoring.micrometer
+
+
+
+OracleCloudConfigCondition - Class in io.micronaut.oraclecloud.core
+
+A condition used to enable file based configuration if the file exists that is specified by either oci.config
or
+ available at $USE_HOME/.oci/config
.
+
+OracleCloudConfigCondition() - Constructor for class io.micronaut.oraclecloud.core.OracleCloudConfigCondition
+
+OracleCloudConfigFileConfigurationProperties - Record Class in io.micronaut.oraclecloud.core
+
+Configuration properties for the local OCI config file (eg: $USE_HOME/.oci/config
).
+
+OracleCloudConfigFileConfigurationProperties(String, String, Boolean, Boolean) - Constructor for record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Creates an instance of a OracleCloudConfigFileConfigurationProperties
record class.
+
+OracleCloudCoreFactory - Class in io.micronaut.oraclecloud.core
+
+Sets up core beans for integration with Oracle cloud clients.
+
+OracleCloudCoreFactory(OracleCloudConfigFileConfigurationProperties) - Constructor for class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+OracleCloudCoreFactory(String, String) - Constructor for class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+OracleCloudCounter - Class in io.micronaut.oraclecloud.monitoring.primitives
+
+A StepCounter
that tracks list of raw Datapoint
.
+
+OracleCloudCounter(Meter.Id, Clock, long) - Constructor for class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudCounter
+
+OracleCloudDatapointProducer - Interface in io.micronaut.oraclecloud.monitoring.primitives
+
+A Meter that collects raw Datapoint
.
+
+OracleCloudDistributionSummary - Class in io.micronaut.oraclecloud.monitoring.primitives
+
+A StepDistributionSummary
that tracks list of raw Datapoint
.
+
+OracleCloudDistributionSummary(Meter.Id, Clock, DistributionStatisticConfig, double, long, boolean) - Constructor for class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudDistributionSummary
+
+OracleCloudInstanceMetadata - Class in io.micronaut.discovery.cloud.oraclecloud
+
+Represents ComputeInstanceMetadata
for Oracle Cloud.
+
+OracleCloudInstanceMetadata() - Constructor for class io.micronaut.discovery.cloud.oraclecloud.OracleCloudInstanceMetadata
+
+OracleCloudJsonFormatter - Class in io.micronaut.oraclecloud.logging
+
+OracleCloudJsonFormatter implementation of the JsonFormatter
.
+
+OracleCloudJsonFormatter() - Constructor for class io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter
+
+OracleCloudMetadataConfiguration - Class in io.micronaut.discovery.cloud.oraclecloud
+
+Default configuration for retrieving Oracle Cloud metadata for ComputePlatform.ORACLE_CLOUD
.
+
+OracleCloudMetadataConfiguration() - Constructor for class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+OracleCloudMetadataKeys - Enum Class in io.micronaut.discovery.cloud.oraclecloud
+
+Models common Oracle Cloud compute instance metadata keys.
+
+OracleCloudMetadataResolver - Class in io.micronaut.discovery.cloud.oraclecloud
+
+Resolves ComputeInstanceMetadata
for Oracle Cloud Infrastructure.
+
+OracleCloudMetadataResolver() - Constructor for class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataResolver
+
+Construct with default settings.
+
+OracleCloudMetadataResolver(JsonMapper, OracleCloudMetadataConfiguration) - Constructor for class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataResolver
+
+OracleCloudMeterRegistry - Class in io.micronaut.oraclecloud.monitoring.micrometer
+
+StepMeterRegistry
for Oracle Cloud Monitoring that produces aggregated data.
+
+OracleCloudMeterRegistry(OracleCloudConfig, Clock, Provider<MonitoringIngestionClient>) - Constructor for class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+OracleCloudMeterRegistry(OracleCloudConfig, Clock, Provider<MonitoringIngestionClient>, ThreadFactory) - Constructor for class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+OracleCloudMeterRegistryFactory - Class in io.micronaut.oraclecloud.monitoring
+
+The OracleCloudMeterRegistryFactory that will configure and create an oracle cloud monitoring meter registry.
+
+OracleCloudMeterRegistryFactory(TenancyIdProvider, ApplicationConfiguration) - Constructor for class io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+
+Creates OracleCloudMeterRegistryFactory.
+
+OracleCloudMetricsNamingConvention - Class in io.micronaut.oraclecloud.monitoring.micrometer
+
+NamingConvention
for Oracle Cloud Monitoring.
+
+OracleCloudMetricsNamingConvention() - Constructor for class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention
+
+OracleCloudRawMeterRegistry - Class in io.micronaut.oraclecloud.monitoring.micrometer
+
+StepMeterRegistry
for Oracle Cloud Monitoring that produces raw data.
+
+OracleCloudRawMeterRegistry(OracleCloudConfig, Clock, Provider<MonitoringIngestionClient>) - Constructor for class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+OracleCloudRawMeterRegistry(OracleCloudConfig, Clock, Provider<MonitoringIngestionClient>, ThreadFactory) - Constructor for class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+OracleCloudSdkProcessor - Class in io.micronaut.oraclecloud.clients.processor
+
+An annotation processor that generates the Oracle Cloud SDK integration
+ for Micronaut.
+
+OracleCloudSdkProcessor() - Constructor for class io.micronaut.oraclecloud.clients.processor.OracleCloudSdkProcessor
+
+OracleCloudSSLContextBuilder - Class in io.micronaut.oraclecloud.certificates.ssl
+
+The Netty implementation of ServerSslBuilder
that generates an SslContext
to create a server handler
+ with to SSL support via a temporary self signed certificate that will be replaced by an Oracle Cloud certificate once acquired.
+
+OracleCloudSSLContextBuilder(ServerSslConfiguration) - Constructor for class io.micronaut.oraclecloud.certificates.ssl.OracleCloudSSLContextBuilder
+
+OracleCloudTimer - Class in io.micronaut.oraclecloud.monitoring.primitives
+
+A StepTimer
that tracks list of raw Datapoint
.
+
+OracleCloudTimer(Meter.Id, Clock, DistributionStatisticConfig, PauseDetector, TimeUnit, long, boolean) - Constructor for class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudTimer
+
+OracleCloudVault() - Constructor for class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+OracleCloudVaultClientDiscoveryConfiguration() - Constructor for class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration
+
+OracleCloudVaultConfiguration - Class in io.micronaut.oraclecloud.discovery.vault
+
+OracleCloudVault Client.
+
+OracleCloudVaultConfiguration() - Constructor for class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+
+OracleCloudVaultConfiguration.OracleCloudVault - Class in io.micronaut.oraclecloud.discovery.vault
+
+An Oracle Cloud Vault.
+
+OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration - Class in io.micronaut.oraclecloud.discovery.vault
+
+The Discovery Configuration class for Oracle Cloud Vault.
+
+OracleCloudVaultConfigurationClient - Class in io.micronaut.oraclecloud.discovery.vault
+
+A ConfigurationClient
for Oracle Cloud Vault Configuration.
+
+OracleCloudVaultConfigurationClient(OracleCloudVaultConfiguration, ExecutorService, Secrets, Vaults) - Constructor for class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfigurationClient
+
+Default Constructor.
+
+OracleDataSourceAttributes <T extends OracleDataSourceAttributes > - Interface in io.micronaut.oraclecloud.atp.wallet.datasource
+
+Represents the attributes of a
DataSource
that a
Wallet
can configure.
+
+OracleWalletArchiveProvider - Class in io.micronaut.oraclecloud.atp.jdbc
+
+Oracle archive wallet provider.
+
+OracleWalletArchiveProvider(Database) - Constructor for class io.micronaut.oraclecloud.atp.jdbc.OracleWalletArchiveProvider
+
+
+P
+
+password() - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+The configured database password if any.
+
+password(char[]) - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+Configure the database password to use to connect to the database.
+
+path() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Returns the value of the
path
record component.
+
+POSITION - Static variable in class io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener
+
+POSITION - Static variable in class io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener
+
+postMetricData(PostMetricDataRequest) - Method in class io.micronaut.oraclecloud.monitoring.MonitoringIngestionClient
+
+Post PostMetricDataRequest
.
+
+prefix() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+PREFIX - Static variable in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Prefix for Oracle Cloud configuration metadata.
+
+PREFIX - Static variable in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+PREFIX - Static variable in class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+PREFIX - Static variable in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+PREFIX - Static variable in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration
+
+PREFIX - Static variable in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+
+PREFIX - Static variable in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+PREFIX - Static variable in class io.micronaut.oraclecloud.oke.workload.identity.OkeHttpClientConfiguration
+
+PRIVATE_IP - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+privateKey() - Method in record class io.micronaut.oraclecloud.certificates.events.CertificateEvent
+
+Returns the value of the
privateKey
record component.
+
+process(Set<? extends TypeElement>, RoundEnvironment) - Method in class io.micronaut.oraclecloud.clients.processor.OracleCloudSdkProcessor
+
+profile() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Returns the value of the
profile
record component.
+
+publish() - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+
+R
+
+REACTOR - Enum constant in enum class io.micronaut.oraclecloud.clients.SdkClients.Kind
+
+read(InputStream) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets.Archives
+
+Read the a Wallet Archive containing at least a cwallet.sso
and optionally a
+ tnsnames.ora
+
+read(InputStream) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+Read the contents of a cwallet.sso
io.micronaut.oraclecloud.adb.wallet
+
+read(InputStream, char[]) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets.Archives
+
+Read the a Wallet Archive containing at least a ewallet.p12
and optionally a
+ tnsnames.ora
+
+read(InputStream, char[]) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+Read the contents of an ewallet.p12
io.micronaut.oraclecloud.adb.wallet
+
+read(Path) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets.Archives
+
+Read the a Wallet Archive containing at least a cwallet.sso
and optionally a
+ tnsnames.ora
+
+read(Path) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+Read the contents of the specified io.micronaut.oraclecloud.adb.wallet folder or io.micronaut.oraclecloud.adb.wallet file.
+
+read(Path, char[]) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets.Archives
+
+Read the a Wallet Archive containing at least a ewallet.p12
and optionally a
+ tnsnames.ora
+
+read(Path, char[]) - Method in class io.micronaut.oraclecloud.atp.wallet.Wallets
+
+Read the contents of the specified io.micronaut.oraclecloud.adb.wallet folder or io.micronaut.oraclecloud.adb.wallet file.
+
+readValue(byte[], Class<T>) - Method in class io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer
+
+readValue(String, Class<T>) - Method in class io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer
+
+recordNonNegative(double) - Method in class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudDistributionSummary
+
+recordNonNegative(long, TimeUnit) - Method in class io.micronaut.oraclecloud.monitoring.primitives.OracleCloudTimer
+
+refreshCertificate() - Method in class io.micronaut.oraclecloud.certificates.services.OracleCloudCertificateService
+
+Setup the certificate for HTTPS.
+
+REGION - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+resolve(Environment) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataResolver
+
+resourceGroup() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+A resource group is a custom string that can be used as a filter.
+
+resourcePrincipalAuthenticationDetailsProvider() - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Configures a ResourcePrincipalAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the OCI_RESOURCE_PRINCIPAL_VERSION
variable is available in the environment.
+
+RXJAVA2 - Enum constant in enum class io.micronaut.oraclecloud.clients.SdkClients.Kind
+
+
+S
+
+SdkClients - Annotation Interface in io.micronaut.oraclecloud.clients
+
+Internal Annotation to trigger the creation of SDK clients.
+
+SdkClients.Kind - Enum Class in io.micronaut.oraclecloud.clients
+
+the type of client to generate.
+
+SERVICE_ID - Static variable in class io.micronaut.oraclecloud.httpclient.netty.NettyClientProperties
+
+The Micronaut HTTP client service ID to use for this client.
+
+serviceAlias() - Method in class io.micronaut.oraclecloud.atp.wallet.WalletArchive
+
+Indicates the database service alias (AKA TNS Alias) associated with this io.micronaut.oraclecloud.adb.wallet archive.
+
+sessionCacheSize() - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+sessionContext() - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+sessionTimeout() - Method in class io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+sessionToken() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+
+
+sessionTokenAuthenticationDetailsProvider() - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Configures a SessionTokenAuthenticationDetailsProvider
.
+
+setCompartmentOcid(String) - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+Sets the compartment OCID where the vault resides.
+
+setConversionService(ConversionService) - Method in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+setEnabled(boolean) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+
+
+setEnabled(boolean) - Method in class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+setEnabled(boolean) - Method in class io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration
+
+setEncoder(Encoder<ILoggingEvent>) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setFaultDomain(String) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudInstanceMetadata
+
+Setter for faultDomain.
+
+setInstanceDocumentUrl(String) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+setLogId(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setMaxBatchSize(int) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setMetadataBaseUrl(String) - Method in class io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+Sets custom metadata base url.
+
+setMetadataUrl(String) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+setOcid(String) - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+setOcid(String) - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+Sets the OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+setPassphrase(String) - Method in class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+setPrivateKey(String) - Method in class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+setPrivateKeyFile(Readable) - Method in class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+setProvider(HttpProvider) - Method in class io.micronaut.oraclecloud.core.sdk.AbstractSdkClientFactory
+
+Set the HTTP provider for this client.
+
+setPublishPeriod(long) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setQueueSize(int) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setRegion(String) - Method in class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+setServiceAlias(String) - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+setSource(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setSubject(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setType(String) - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+setup(RuntimeContext) - Method in class io.micronaut.oraclecloud.function.http.HttpFunction
+
+setup(RuntimeContext) - Method in class io.micronaut.oraclecloud.function.OciFunction
+
+Setup method that can be overridden by users to add customizations.
+
+setupContext(RuntimeContext) - Method in class io.micronaut.oraclecloud.function.OciFunction
+
+Sets of the function and creates the application context.
+
+setupGateway(RuntimeContext) - Method in class io.micronaut.oraclecloud.function.http.HttpFunction
+
+Method that subclasses can override to customize gateway setup.
+
+setUrl(String) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+
+
+setV1Enabled(boolean) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Default value: false
.
+
+setV2Enabled(boolean) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+Default value: true
.
+
+setVaults(List<OracleCloudVaultConfiguration.OracleCloudVault>) - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+
+
+
+setVnicUrl(String) - Method in class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+setWalletPassword(String) - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+setWalletType(GenerateAutonomousDatabaseWalletDetails.GenerateType) - Method in class io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+SHAPE - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+simpleAuthenticationDetailsProvider(OracleCloudAuthConfigurationProperties) - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+Configures a SimpleAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present.
+
+sslContext() - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+
+
+sslContext(SSLContext) - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+Configure the
SSLContext
used to create TLS connections to the database.
+
+start() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+STATE - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+stop() - Method in class io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+
+T
+
+tagKey(String) - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention
+
+A valid dimension key includes only printable ASCII, excluding periods (.) and spaces.
+
+tagValue(String) - Method in class io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention
+
+A valid dimension value includes only Unicode characters.
+
+TenancyIdProvider - Interface in io.micronaut.oraclecloud.core
+
+Interface that supplies the Tenant ID.
+
+TENANT_ID - Static variable in class io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+tenantIdProvider(BasicAuthenticationDetailsProvider, OracleCloudMetadataConfiguration) - Method in class io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+
+
+
+TIME_CREATED - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+toJsonString(Map) - Method in class io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter
+
+toString() - Method in record class io.micronaut.oraclecloud.certificates.events.CertificateEvent
+
+Returns a string representation of this record class.
+
+toString() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+Returns a string representation of this record class.
+
+toString() - Method in record class io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties
+
+Returns a string representation of this record class.
+
+toString() - Method in class io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+
+U
+
+UcpPoolConfigurationListener - Class in io.micronaut.oraclecloud.atp.jdbc.ucp
+
+UCP connection pool listener that downloads oracle wallet and configures the PoolDataSource
.
+
+UcpPoolConfigurationListener(OracleWalletArchiveProvider, BeanLocator) - Constructor for class io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener
+
+Default constructor.
+
+url() - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+The configured JDBC URL if any.
+
+url(String) - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+Configure the JDBC url to use to connect to the database.
+
+user() - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+The configured database user if any.
+
+user(String) - Method in interface io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes
+
+Configure the database user to connect to.
+
+USER_METADATA - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+
+V
+
+validate() - Method in interface io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig
+
+value() - Element in annotation interface io.micronaut.oraclecloud.clients.SdkClients
+
+valueOf(String) - Static method in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+Returns the enum constant of this class with the specified name.
+
+valueOf(String) - Static method in enum class io.micronaut.oraclecloud.clients.SdkClients.Kind
+
+Returns the enum constant of this class with the specified name.
+
+values() - Static method in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+values() - Static method in enum class io.micronaut.oraclecloud.clients.SdkClients.Kind
+
+Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+values() - Method in class io.micronaut.oraclecloud.function.http.FnMultiValueMap
+
+versionNumber() - Method in record class io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration
+
+
+
+visitClass(ClassElement, VisitorContext) - Method in class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+visitConstructor(ConstructorElement, VisitorContext) - Method in class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+visitField(FieldElement, VisitorContext) - Method in class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+visitMethod(MethodElement, VisitorContext) - Method in class io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+VNIC_ID - Enum constant in enum class io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataKeys
+
+
+W
+
+WalletArchive - Class in io.micronaut.oraclecloud.atp.wallet
+
+Represents a Zip archive containing at least a cwallet.sso
or ewallet.p12
and
+ optionally a tnsnames.ora
.
+
+WalletException - Exception in io.micronaut.oraclecloud.atp.wallet
+
+WalletModule - Class in io.micronaut.oraclecloud.atp.wallet
+
+Entrypoint to the Wallet related API
+
+wallets() - Method in class io.micronaut.oraclecloud.atp.wallet.WalletModule
+
+
+
+Wallets - Class in io.micronaut.oraclecloud.atp.wallet
+
+Services for reading Oracle cwallet.sso
and ewallet.p12
wallets
+
+Wallets.Archives - Class in io.micronaut.oraclecloud.atp.wallet
+
+with(String) - Method in class io.micronaut.oraclecloud.atp.wallet.WalletArchive
+
+Specialize this io.micronaut.oraclecloud.adb.wallet archive to configure the specified service alias (AKA TNS Alias).
+
+writeValueAsString(Object) - Method in class io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer
+
+
+A B C D E F G H I L M N O P R S T U V W All Classes and Interfaces | All Packages | Constant Field Values | Serialized Form
+
+
+
+
diff --git a/3.9.1/api/index.html b/3.9.1/api/index.html
new file mode 100644
index 000000000..8f51565fe
--- /dev/null
+++ b/3.9.1/api/index.html
@@ -0,0 +1,140 @@
+
+
+
+
+Overview (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
Packages
+
+
+
+
+
+
Oracle cloud configuration.
+
+
+
+
+
+
+
+
+
+
All classes in this package are considered internal and should not be used publicly.
+
+
+
+
+
+
Logging classes for integration with Oracle Cloud.
+
+
+
+
Background jobs used to integrate with Oracle Cloud Certificates.
+
+
+
+
Events used by Oracle Cloud Certificate tasks.
+
+
+
+
Service classes used to integrate with Oracle Cloud Certificates.
+
+
+
+
Events used by Oracle Cloud Certificate tasks.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Classes related to using Oracle Cloud Vault as a distributed configuration client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logging classes for integration with Oracle Cloud.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudInstanceMetadata.html b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudInstanceMetadata.html
new file mode 100644
index 000000000..5a48b8766
--- /dev/null
+++ b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudInstanceMetadata.html
@@ -0,0 +1,216 @@
+
+
+
+
+OracleCloudInstanceMetadata (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.discovery.cloud.AbstractComputeInstanceMetadata
+
io.micronaut.discovery.cloud.oraclecloud.OracleCloudInstanceMetadata
+
+
+
+
+All Implemented Interfaces:
+io.micronaut.discovery.cloud.ComputeInstanceMetadata
+
+
+@Introspected
+ public class OracleCloudInstanceMetadata
+extends io.micronaut.discovery.cloud.AbstractComputeInstanceMetadata
+Represents ComputeInstanceMetadata
for Oracle Cloud.
+
+Since:
+1.2.0
+Author:
+Todd Sharp
+
+
+
+
+
+
+
+Field Summary
+
+
+availabilityZone, region
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
io.micronaut.context.env.ComputePlatform
+
+
+
+
+
+
Getter for faultDomain.
+
+
void
+
+
+
Setter for faultDomain.
+
+
+
+
+
+
+getAccount, getAvailabilityZone, getDescription, getImageId, getInstanceId, getInterfaces, getLocalHostname, getMachineType, getMetadata, getName, getPrivateHostname, getPrivateIpV4, getPrivateIpV6, getPublicHostname, getPublicIpV4, getPublicIpV6, getRegion, getTags, isCached, setAccount, setAvailabilityZone, setCached, setDescription, setImageId, setInstanceId, setInterfaces, setLocalHostname, setMachineType, setMetadata, setName, setPrivateIpV4, setPrivateIpV6, setPublicHostname, setPublicIpV4, setPublicIpV6, setRegion, setTags
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudInstanceMetadata
+public OracleCloudInstanceMetadata ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getFaultDomain
+public String getFaultDomain ()
+Getter for faultDomain.
+
+Returns:
+returns the instance metadata faultDomain
+
+
+
+
+
+setFaultDomain
+public void setFaultDomain (String faultDomain)
+Setter for faultDomain.
+
+Parameters:
+faultDomain
- The faultDomain from instance metadata
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataConfiguration.html b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataConfiguration.html
new file mode 100644
index 000000000..f3312c073
--- /dev/null
+++ b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataConfiguration.html
@@ -0,0 +1,565 @@
+
+
+
+
+OracleCloudMetadataConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.util.Toggleable
+
+
+@ConfigurationProperties("micronaut.application.oraclecloud.metadata")
+@Requires(env="oraclecloud") @Requires(classes=io.micronaut.runtime.ApplicationConfiguration.class)
+@Primary
+ public class OracleCloudMetadataConfiguration
+
extends Object
+implements io.micronaut.core.util.Toggleable
+Default configuration for retrieving Oracle Cloud metadata for ComputePlatform.ORACLE_CLOUD
.
+
+Since:
+1.2.0
+Author:
+Todd Sharp
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
static final boolean
+
+
+
The default enable value.
+
+
+
+
+
The default url value.
+
+
+
+
+
+
+
+
static final int
+
+
+
The default IMDS version to use.
+
+
+
+
+
+
+
+
Prefix for Oracle Cloud configuration metadata.
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods Deprecated Methods
+
+
+
+
+
+
+
+
+
+
+
+
Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+
+
+
+
Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+
+
+
+
+
+
+
boolean
+
+
+
boolean
+
+
+
boolean
+
+
+
void
+
+
+
void
+
+
+
Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+
void
+
+
+
Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+Prefix for Oracle Cloud configuration metadata.
+
+See Also:
+
+
+
+
+
+
+
+
+DEFAULT_ENABLED
+public static final boolean DEFAULT_ENABLED
+The default enable value.
+
+See Also:
+
+
+
+
+
+
+
+
+DEFAULT_URL
+public static final String DEFAULT_URL
+The default url value.
+
+See Also:
+
+
+
+
+
+
+
+
+DEFAULT_V2_URL
+public static final String DEFAULT_V2_URL
+
+See Also:
+
+
+
+
+
+
+
+
+DEFAULT_VNIC_URL
+public static final String DEFAULT_VNIC_URL
+
+See Also:
+
+
+
+
+
+
+
+
+DEFAULT_V2_VNIC_URL
+public static final String DEFAULT_V2_VNIC_URL
+
+See Also:
+
+
+
+
+
+
+
+
+DEFAULT_VERSION
+public static final int DEFAULT_VERSION
+The default IMDS version to use.
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudMetadataConfiguration
+public OracleCloudMetadataConfiguration ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isEnabled
+public boolean isEnabled ()
+
+Specified by:
+isEnabled
in interface io.micronaut.core.util.Toggleable
+Returns:
+Whether the Oracle Cloud configuration is enabled
+
+
+
+
+
+setEnabled
+public void setEnabled (boolean enabled)
+
+
+Parameters:
+enabled
- Enable or disable the Oracle Cloud configuration
+
+
+
+
+
+getUrl
+
+
+Returns:
+The Url
+
+
+
+
+
+getBaseUrl
+
+
+Returns:
+The base URL of the metadata service.
+
+
+
+
+
+setUrl
+public void setUrl (String url)
+
+
+Parameters:
+url
- The url
+
+
+
+
+
+
+
+
+
+
+
+getInstanceDocumentUrl
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+Returns:
+The instance document Url
+
+
+
+
+
+setInstanceDocumentUrl
+
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+Deprecated. Use url
instead.
+
+Parameters:
+instanceDocumentUrl
- The instance document Url
+
+
+
+
+
+getVnicUrl
+
+
+
+Returns:
+The VNIC Url
+
+
+
+
+
+setVnicUrl
+public void setVnicUrl (String vnicUrl)
+
+Parameters:
+vnicUrl
- The instance document Url
+
+
+
+
+
+isV1Enabled
+public boolean isV1Enabled ()
+
+Returns:
+Whether the V1 metadata is enabled
+
+
+
+
+
+setV1Enabled
+public void setV1Enabled (boolean v1Enabled)
+Default value: false
.
+
+Parameters:
+v1Enabled
- Enable or disable the V1 metadata
+
+
+
+
+
+isV2Enabled
+public boolean isV2Enabled ()
+
+Returns:
+Whether the V2 metadata is enabled
+
+
+
+
+
+setV2Enabled
+public void setV2Enabled (boolean v2Enabled)
+Default value: true
.
+
+Parameters:
+v2Enabled
- Enable or disable the V2 metadata
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataKeys.html b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataKeys.html
new file mode 100644
index 000000000..a8dc7b822
--- /dev/null
+++ b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataKeys.html
@@ -0,0 +1,357 @@
+
+
+
+
+OracleCloudMetadataKeys (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+
+
+Enum Constant Summary
+Enum Constants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
Returns the enum constant of this class with the specified name.
+
+
+
+
+
Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+
+
+
+
Methods inherited from class java.lang.Enum
+
clone , compareTo , describeConstable , equals , finalize , getDeclaringClass , hashCode , name , ordinal , toString , valueOf
+
+
+
+
+
+
+
+
+
+
+Enum Constant Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CANONICAL_REGION_NAME
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+values
+
+Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+Returns:
+an array containing the constants of this enum class, in the order they are declared
+
+
+
+
+
+valueOf
+
+Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+Parameters:
+name
- the name of the enum constant to be returned.
+Returns:
+the enum constant with the specified name
+Throws:
+IllegalArgumentException
- if this enum class has no constant with the specified name
+NullPointerException
- if the argument is null
+
+
+
+
+
+getName
+
+
+Returns:
+The name of the metadata key represented in Oracle Cloud Metadata.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataResolver.html b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataResolver.html
new file mode 100644
index 000000000..8e62872e2
--- /dev/null
+++ b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/OracleCloudMetadataResolver.html
@@ -0,0 +1,196 @@
+
+
+
+
+OracleCloudMetadataResolver (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataResolver
+
+
+
+All Implemented Interfaces:
+io.micronaut.discovery.cloud.ComputeInstanceMetadataResolver
+
+
+@Singleton
+@Requires(env="oraclecloud") @Requires(property="micronaut.application.oraclecloud.metadata.enabled",value="true",defaultValue="true") @Requires(classes=io.micronaut.discovery.cloud.ComputeInstanceMetadataResolver.class)
+@Primary
+ public class OracleCloudMetadataResolver
+
extends Object
+implements io.micronaut.discovery.cloud.ComputeInstanceMetadataResolver
+Resolves ComputeInstanceMetadata
for Oracle Cloud Infrastructure.
+
+Since:
+1.2.0
+Author:
+Todd Sharp
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Construct with default settings.
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
Optional <io.micronaut.discovery.cloud.ComputeInstanceMetadata>
+
resolve (io.micronaut.context.env.Environment environment)
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+
+
+
+OracleCloudMetadataResolver
+public OracleCloudMetadataResolver ()
+Construct with default settings.
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+resolve
+public Optional <io.micronaut.discovery.cloud.ComputeInstanceMetadata> resolve (io.micronaut.context.env.Environment environment)
+
+Specified by:
+resolve
in interface io.micronaut.discovery.cloud.ComputeInstanceMetadataResolver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/package-summary.html b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/package-summary.html
new file mode 100644
index 000000000..2d7ba8ae3
--- /dev/null
+++ b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/package-summary.html
@@ -0,0 +1,111 @@
+
+
+
+
+io.micronaut.discovery.cloud.oraclecloud (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.discovery.cloud.oraclecloud
+
+Oracle cloud configuration.
+
+Since:
+1.2.0
+Author:
+Todd Sharp
+
+
+
+
+
+
+
All Classes and Interfaces Classes Enum Classes
+
+
+
+
+
+
+
Represents ComputeInstanceMetadata
for Oracle Cloud.
+
+
+
+
Default configuration for retrieving Oracle Cloud metadata for ComputePlatform.ORACLE_CLOUD
.
+
+
+
+
Models common Oracle Cloud compute instance metadata keys.
+
+
+
+
Resolves ComputeInstanceMetadata
for Oracle Cloud Infrastructure.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/package-tree.html b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/package-tree.html
new file mode 100644
index 000000000..b5067f64a
--- /dev/null
+++ b/3.9.1/api/io/micronaut/discovery/cloud/oraclecloud/package-tree.html
@@ -0,0 +1,91 @@
+
+
+
+
+io.micronaut.discovery.cloud.oraclecloud Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.discovery.cloud.AbstractComputeInstanceMetadata (implements io.micronaut.discovery.cloud.ComputeInstanceMetadata)
+
+
+io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration (implements io.micronaut.core.util.Toggleable)
+io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataResolver (implements io.micronaut.discovery.cloud.ComputeInstanceMetadataResolver)
+
+
+
+
+
+Enum Class Hierarchy
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/AutonomousDatabaseConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/AutonomousDatabaseConfiguration.html
new file mode 100644
index 000000000..4e1161a86
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/AutonomousDatabaseConfiguration.html
@@ -0,0 +1,263 @@
+
+
+
+
+AutonomousDatabaseConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+
+
+
+@EachProperty(value="datasources",
+ primary="default")
+@Context
+ public class AutonomousDatabaseConfiguration
+
extends Object
+Configuration properties for the automated oracle wallet download and configuration.
+
+Since:
+2.5
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
com.oracle.bmc.database.model.GenerateAutonomousDatabaseWalletDetails.GenerateType
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
setWalletType (com.oracle.bmc.database.model.GenerateAutonomousDatabaseWalletDetails.GenerateType walletType)
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+AutonomousDatabaseConfiguration
+public AutonomousDatabaseConfiguration ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getOcid
+
+
+Returns:
+autonomous database ocid
+
+
+
+
+
+setOcid
+public void setOcid (String ocid)
+
+Parameters:
+ocid
- autonomous database ocid
+
+
+
+
+
+getWalletPassword
+public String getWalletPassword ()
+
+Returns:
+wallet password
+
+
+
+
+
+setWalletPassword
+public void setWalletPassword (String walletPassword)
+
+Parameters:
+walletPassword
- wallet password
+
+
+
+
+
+getWalletType
+public com.oracle.bmc.database.model.GenerateAutonomousDatabaseWalletDetails.GenerateType getWalletType ()
+
+Returns:
+wallet type
+
+
+
+
+
+setWalletType
+public void setWalletType (com.oracle.bmc.database.model.GenerateAutonomousDatabaseWalletDetails.GenerateType walletType)
+
+Parameters:
+walletType
- wallet type
+
+
+
+
+
+getServiceAlias
+public String getServiceAlias ()
+
+Returns:
+service alias
+
+
+
+
+
+setServiceAlias
+public void setServiceAlias (String serviceAlias)
+
+Parameters:
+serviceAlias
- service alias
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/OracleWalletArchiveProvider.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/OracleWalletArchiveProvider.html
new file mode 100644
index 000000000..5f3700952
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/OracleWalletArchiveProvider.html
@@ -0,0 +1,176 @@
+
+
+
+
+OracleWalletArchiveProvider (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.atp.jdbc.OracleWalletArchiveProvider
+
+
+
+@Singleton
+@Requires(beans=com.oracle.bmc.database.DatabaseClient.class)
+ public class OracleWalletArchiveProvider
+
extends Object
+Oracle archive wallet provider.
+
+Since:
+2.5
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleWalletArchiveProvider
+public OracleWalletArchiveProvider (com.oracle.bmc.database.Database databaseClient)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+loadWalletArchive
+
+
+
+Parameters:
+autonomousDatabaseConfiguration
- configuration
+Returns:
+wallet archive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/HikariPoolConfigurationListener.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/HikariPoolConfigurationListener.html
new file mode 100644
index 000000000..6066ffb96
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/HikariPoolConfigurationListener.html
@@ -0,0 +1,261 @@
+
+
+
+
+HikariPoolConfigurationListener (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener
+
+
+
+All Implemented Interfaces:
+io.micronaut.context.event.BeanInitializedEventListener<io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration>
, io.micronaut.core.order.Ordered
, EventListener
+
+
+@Singleton
+@Requires(classes=io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration.class) @Requires(sdk=JAVA,value="11")
+@Internal
+ public class HikariPoolConfigurationListener
+
extends Object
+implements io.micronaut.context.event.BeanInitializedEventListener<io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration>, io.micronaut.core.order.Ordered
+Hikari connection pool listener that downloads oracle wallet and extends the Hikari DatasourceConfiguration
.
+
+Since:
+2.5
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+
+
static final int
+
+
+
+
+
Fields inherited from interface io.micronaut.core.order.Ordered
+HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
int
+
+
+
io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration
+
onInitialized (io.micronaut.context.event.BeanInitializingEvent<io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration> event)
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+POSITION
+public static final int POSITION
+
+See Also:
+
+
+
+
+
+
+
+
+ORACLE_JDBC_ORACLE_DRIVER
+public static final String ORACLE_JDBC_ORACLE_DRIVER
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+HikariPoolConfigurationListener
+protected HikariPoolConfigurationListener (@Nullable
+ @Nullable OracleWalletArchiveProvider walletArchiveProvider,
+ @NonNull
+ @NonNull io.micronaut.context.BeanLocator beanLocator)
+Default constructor.
+
+Parameters:
+walletArchiveProvider
- The wallet archive provider
+beanLocator
- The bean locator
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getOrder
+public int getOrder ()
+
+Specified by:
+getOrder
in interface io.micronaut.core.order.Ordered
+
+
+
+
+
+onInitialized
+public io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration onInitialized (io.micronaut.context.event.BeanInitializingEvent<io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration> event)
+
+Specified by:
+onInitialized
in interface io.micronaut.context.event.BeanInitializedEventListener<io.micronaut.configuration.jdbc.hikari.DatasourceConfiguration>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/package-summary.html
new file mode 100644
index 000000000..da0756680
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/package-summary.html
@@ -0,0 +1,97 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.jdbc.hikari (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.atp.jdbc.hikari
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Hikari connection pool listener that downloads oracle wallet and extends the Hikari DatasourceConfiguration
.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/package-tree.html
new file mode 100644
index 000000000..6acca8d67
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/hikari/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.jdbc.hikari Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener (implements io.micronaut.context.event.BeanInitializedEventListener<T>, io.micronaut.core.order.Ordered)
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/package-summary.html
new file mode 100644
index 000000000..e2bbc1e35
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/package-summary.html
@@ -0,0 +1,101 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.jdbc (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.atp.jdbc
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Configuration properties for the automated oracle wallet download and configuration.
+
+
+
+
Oracle archive wallet provider.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/package-tree.html
new file mode 100644
index 000000000..1cbd6fcdb
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/package-tree.html
@@ -0,0 +1,72 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.jdbc Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/UcpPoolConfigurationListener.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/UcpPoolConfigurationListener.html
new file mode 100644
index 000000000..e7073e848
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/UcpPoolConfigurationListener.html
@@ -0,0 +1,244 @@
+
+
+
+
+UcpPoolConfigurationListener (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener
+
+
+
+All Implemented Interfaces:
+io.micronaut.context.event.BeanInitializedEventListener<io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration>
, io.micronaut.core.order.Ordered
, EventListener
+
+
+@Singleton
+@Requires(classes=oracle.ucp.jdbc.PoolDataSource.class)
+@Internal
+ public class UcpPoolConfigurationListener
+
extends Object
+implements io.micronaut.context.event.BeanInitializedEventListener<io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration>, io.micronaut.core.order.Ordered
+UCP connection pool listener that downloads oracle wallet and configures the PoolDataSource
.
+
+Since:
+2.5
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
static final int
+
+
+
+
+
Fields inherited from interface io.micronaut.core.order.Ordered
+HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
int
+
+
+
io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration
+
onInitialized (io.micronaut.context.event.BeanInitializingEvent<io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration> event)
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+POSITION
+public static final int POSITION
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+UcpPoolConfigurationListener
+protected UcpPoolConfigurationListener (@Nullable
+ @Nullable OracleWalletArchiveProvider walletArchiveProvider,
+ @NonNull
+ @NonNull io.micronaut.context.BeanLocator beanLocator)
+Default constructor.
+
+Parameters:
+walletArchiveProvider
- The wallet archive provider
+beanLocator
- The bean locator
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getOrder
+public int getOrder ()
+
+Specified by:
+getOrder
in interface io.micronaut.core.order.Ordered
+
+
+
+
+
+onInitialized
+public io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration onInitialized (io.micronaut.context.event.BeanInitializingEvent<io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration> event)
+
+Specified by:
+onInitialized
in interface io.micronaut.context.event.BeanInitializedEventListener<io.micronaut.configuration.jdbc.ucp.DatasourceConfiguration>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/package-summary.html
new file mode 100644
index 000000000..2c2f3c633
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/package-summary.html
@@ -0,0 +1,97 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.jdbc.ucp (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.atp.jdbc.ucp
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
UCP connection pool listener that downloads oracle wallet and configures the PoolDataSource
.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/package-tree.html
new file mode 100644
index 000000000..24a1342ef
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/jdbc/ucp/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.jdbc.ucp Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener (implements io.micronaut.context.event.BeanInitializedEventListener<T>, io.micronaut.core.order.Ordered)
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletArchive.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletArchive.html
new file mode 100644
index 000000000..df4f14e81
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletArchive.html
@@ -0,0 +1,215 @@
+
+
+
+
+WalletArchive (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+CanConfigureOracleDataSource
+
+
+
+Represents a Zip archive containing at least a cwallet.sso
or ewallet.p12
and
+ optionally a tnsnames.ora
.
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Configure a data source with the state held in this io.micronaut.oraclecloud.adb.wallet archive.
+
+
+
+
+
Indicates the database service alias (AKA TNS Alias) associated with this io.micronaut.oraclecloud.adb.wallet archive.
+
+
+
+
+
Specialize this io.micronaut.oraclecloud.adb.wallet archive to configure the specified service alias (AKA TNS Alias).
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+serviceAlias
+
+Indicates the database service alias (AKA TNS Alias) associated with this io.micronaut.oraclecloud.adb.wallet archive.
+ Since a io.micronaut.oraclecloud.adb.wallet may hold multiple sets of database credentials, this value identifies which
+ service will be used to configure a data source via
configure(OracleDataSourceAttributes)
+
+Returns:
+The service alias associated with this io.micronaut.oraclecloud.adb.wallet archive, or null if this io.micronaut.oraclecloud.adb.wallet archive
+ is not associated with a particular service
+See Also:
+
+
+
+
+
+
+
+
+with
+
+Specialize this io.micronaut.oraclecloud.adb.wallet archive to configure the specified service alias (AKA TNS Alias). If
+ the archive contains a
tnsnames.ora
and the connection descriptor for the service
+ alias is used to configure the JDBC url of the
OracleDataSourceAttributes
+
+Parameters:
+serviceAlias
- The alias of the database service to configure
+Returns:
+WalletArchive instance that will additionally configure the user credentials and URL
+ for the database
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletException.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletException.html
new file mode 100644
index 000000000..ab8d00748
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletException.html
@@ -0,0 +1,117 @@
+
+
+
+
+WalletException (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+Serializable
+
+
+
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class java.lang.Throwable
+
addSuppressed , fillInStackTrace , getCause , getLocalizedMessage , getMessage , getStackTrace , getSuppressed , initCause , printStackTrace , printStackTrace , printStackTrace , setStackTrace , toString
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletModule.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletModule.html
new file mode 100644
index 000000000..6184fbc28
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/WalletModule.html
@@ -0,0 +1,164 @@
+
+
+
+
+WalletModule (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+public class WalletModule
+
extends Object
+Entrypoint to the Wallet related API
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Instance Methods Concrete Methods
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+instance
+
+
+
+Returns:
+WalletModule instance
+
+
+
+
+
+wallets
+
+
+
+Returns:
+Wallets instance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/Wallets.Archives.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/Wallets.Archives.html
new file mode 100644
index 000000000..4543cf9d5
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/Wallets.Archives.html
@@ -0,0 +1,224 @@
+
+
+
+
+Wallets.Archives (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Enclosing class:
+Wallets
+
+
+public class Wallets.Archives
+
extends Object
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Read the a Wallet Archive containing at least a cwallet.sso
and optionally a
+ tnsnames.ora
+
+
+
+
+
Read the a Wallet Archive containing at least a ewallet.p12
and optionally a
+ tnsnames.ora
+
+
+
+
+
Read the a Wallet Archive containing at least a cwallet.sso
and optionally a
+ tnsnames.ora
+
+
+
+
+
Read the a Wallet Archive containing at least a ewallet.p12
and optionally a
+ tnsnames.ora
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+read
+
+Read the a Wallet Archive containing at least a cwallet.sso
and optionally a
+ tnsnames.ora
+
+Parameters:
+path
- The path of the zip archive
+Returns:
+WalletArchive instance
+Throws:
+IOException
- if an error occurs reading the archive
+
+
+
+
+
+read
+
+Read the a Wallet Archive containing at least a ewallet.p12
and optionally a
+ tnsnames.ora
+
+Parameters:
+path
- The path of the zip archive
+password
- The password used to protect ewallet.p12
+Returns:
+WalletArchive instance
+Throws:
+IOException
- if an error occurs reading the archive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/Wallets.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/Wallets.html
new file mode 100644
index 000000000..bfb3b381e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/Wallets.html
@@ -0,0 +1,289 @@
+
+
+
+
+Wallets (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+public class Wallets
+
extends Object
+Services for reading Oracle cwallet.sso
and ewallet.p12
wallets
+
+
+
+
+
+
+Nested Class Summary
+Nested Classes
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet.Builder
+
+
+
Create an auto login io.micronaut.oraclecloud.adb.wallet Wallet.Builder
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet.Builder
+
modify (io.micronaut.oraclecloud.atp.wallet.Wallet wallet)
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet.Builder
+
modify (io.micronaut.oraclecloud.atp.wallet.Wallet wallet,
+ char[] password)
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet
+
+
+
Read the contents of a cwallet.sso
io.micronaut.oraclecloud.adb.wallet
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet
+
+
+
Read the contents of an ewallet.p12
io.micronaut.oraclecloud.adb.wallet
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet
+
+
+
Read the contents of the specified io.micronaut.oraclecloud.adb.wallet folder or io.micronaut.oraclecloud.adb.wallet file.
+
+
io.micronaut.oraclecloud.atp.wallet.Wallet
+
+
+
Read the contents of the specified io.micronaut.oraclecloud.adb.wallet folder or io.micronaut.oraclecloud.adb.wallet file.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+builder
+public io.micronaut.oraclecloud.atp.wallet.Wallet.Builder builder ()
+ throws
IOException
+Create an auto login io.micronaut.oraclecloud.adb.wallet Wallet.Builder
+
+Returns:
+Wallet.Builder
instance
+Throws:
+IOException
- if an error occurs creating the io.micronaut.oraclecloud.adb.wallet
+
+
+
+
+
+modify
+public io.micronaut.oraclecloud.atp.wallet.Wallet.Builder modify (io.micronaut.oraclecloud.atp.wallet.Wallet wallet)
+ throws IOException
+
+Throws:
+IOException
+
+
+
+
+
+modify
+public io.micronaut.oraclecloud.atp.wallet.Wallet.Builder modify (io.micronaut.oraclecloud.atp.wallet.Wallet wallet,
+ char[] password)
+ throws IOException
+
+Throws:
+IOException
+
+
+
+
+
+
+
+
+read
+public io.micronaut.oraclecloud.atp.wallet.Wallet read (Path wallet)
+ throws IOException
+Read the contents of the specified io.micronaut.oraclecloud.adb.wallet folder or io.micronaut.oraclecloud.adb.wallet file.
+
+Parameters:
+wallet
- Path to the io.micronaut.oraclecloud.adb.wallet. If the specified location is a folder then the
+ cwallet.sso
located within that folder is read. If the location is a file then that file
+ is read as a auto login io.micronaut.oraclecloud.adb.wallet.
+Returns:
+Wallet instance
+Throws:
+IOException
- if an error occurs reading the specified location
+
+
+
+
+
+read
+public io.micronaut.oraclecloud.atp.wallet.Wallet read (Path wallet,
+ char[] password)
+ throws IOException
+Read the contents of the specified io.micronaut.oraclecloud.adb.wallet folder or io.micronaut.oraclecloud.adb.wallet file.
+
+Parameters:
+wallet
- Path to the io.micronaut.oraclecloud.adb.wallet. If the specified location is a folder then the
+ ewallet.p12
located within that folder is read. If the location is a file then that file
+ is read as a password protected io.micronaut.oraclecloud.adb.wallet.
+Returns:
+Wallet instance
+Throws:
+IOException
- if an error occurs reading the specified location
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/CanConfigureOracleDataSource.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/CanConfigureOracleDataSource.html
new file mode 100644
index 000000000..beaf62dda
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/CanConfigureOracleDataSource.html
@@ -0,0 +1,167 @@
+
+
+
+
+CanConfigureOracleDataSource (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+All Known Implementing Classes:
+WalletArchive
+
+
+@Internal
+ public interface CanConfigureOracleDataSource
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods Default Methods
+
+
+
+
+
+
default void
+
configure (oracle.jdbc.datasource.OracleCommonDataSource ods)
+
+
Convenience method to configure an OracleCommonDataSource
sub-type.
+
+
+
+
+
Configure a data source using the state in this instance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/OracleDataSourceAttributes.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/OracleDataSourceAttributes.html
new file mode 100644
index 000000000..c120627b2
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/OracleDataSourceAttributes.html
@@ -0,0 +1,263 @@
+
+
+
+
+OracleDataSourceAttributes (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+Type Parameters:
+T
- the data source generic type
+
+
+@Internal
+ public interface OracleDataSourceAttributes<T extends OracleDataSourceAttributes>
+Represents the attributes of a
DataSource
that a
Wallet
can configure.
+ Only the attributes that a io.micronaut.oraclecloud.adb.wallet can influence are enumerated in this type.
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods
+
+
+
+
+
+
char[]
+
+
+
The configured database password if any.
+
+
+
+
+
Configure the database password to use to connect to the database.
+
+
+
+
+
+
+
+
Configure the
SSLContext
used to create TLS connections to the database.
+
+
+
+
+
The configured JDBC URL if any.
+
+
+
+
+
Configure the JDBC url to use to connect to the database.
+
+
+
+
+
The configured database user if any.
+
+
+
+
+
Configure the database user to connect to.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+sslContext
+
+
+
+Returns:
+SSLContext instance, or null if no instance configured
+
+
+
+
+
+sslContext
+
+Configure the
SSLContext
used to create TLS connections to the database.
+
+Parameters:
+sslContext
- The SSLContext
holding the certificates used to secure access to
+ the database
+Returns:
+self
+
+
+
+
+
+url
+
+The configured JDBC URL if any.
+
+Returns:
+String instance or null if no JDBC url configured
+
+
+
+
+
+url
+
+Configure the JDBC url to use to connect to the database.
+
+Parameters:
+url
- The JDBC url of the database
+Returns:
+self
+
+
+
+
+
+user
+
+The configured database user if any.
+
+Returns:
+Database user name, or null if no username configured
+
+
+
+
+
+user
+
+Configure the database user to connect to.
+
+Parameters:
+user
- The database username
+Returns:
+self
+
+
+
+
+
+password
+char[] password ()
+The configured database password if any. Note a copy of the password is returned, the caller
+ is responsible for zeroing out the array once the password value has been consumed.
+
+Returns:
+char[] array holding a copy of the password, or null if no password has been
+ configured
+
+
+
+
+
+password
+T password (char[] password)
+Configure the database password to use to connect to the database.
+
+Parameters:
+password
- The password to use to connect to the database. The caller should zero out
+ this array after this method has been invoked. The implementor must create a copy of the
+ supplied array
+Returns:
+self
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/package-summary.html
new file mode 100644
index 000000000..fa6782cc2
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/package-summary.html
@@ -0,0 +1,101 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.wallet.datasource (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.atp.wallet.datasource
+
+
+
+
+
+
+
+
Interfaces
+
+
+
+
+
+
+
+
Represents the attributes of a
DataSource
that a
Wallet
can configure.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/package-tree.html
new file mode 100644
index 000000000..3a215beb3
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/datasource/package-tree.html
@@ -0,0 +1,68 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.wallet.datasource Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/package-summary.html
new file mode 100644
index 000000000..858684091
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/package-summary.html
@@ -0,0 +1,116 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.wallet (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+@Internal
+ package io.micronaut.oraclecloud.atp.wallet
+
+All classes in this package are considered internal and should not be used publicly.
+
+
+
+
+
+
+
+
+
All Classes and Interfaces Classes Exceptions
+
+
+
+
+
+
+
Represents a Zip archive containing at least a cwallet.sso
or ewallet.p12
and
+ optionally a tnsnames.ora
.
+
+
+
+
+
+
Entrypoint to the Wallet related API
+
+
+
+
Services for reading Oracle cwallet.sso
and ewallet.p12
wallets
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/package-tree.html
new file mode 100644
index 000000000..fc1fdd852
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/atp/wallet/package-tree.html
@@ -0,0 +1,87 @@
+
+
+
+
+io.micronaut.oraclecloud.atp.wallet Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/OracleCloudCertificationsConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/OracleCloudCertificationsConfiguration.html
new file mode 100644
index 000000000..3fded6e7d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/OracleCloudCertificationsConfiguration.html
@@ -0,0 +1,362 @@
+
+
+
+
+OracleCloudCertificationsConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Record Components:
+certificateId
- ocid of certificate
+versionNumber
- version number of certificate
+certificateVersionName
- certificate name
+enabled
- flag for enabling feature
+
+
+All Implemented Interfaces:
+io.micronaut.core.util.Toggleable
+
+
+@ConfigurationProperties("oci.certificates")
+ public record OracleCloudCertificationsConfiguration (
String certificateId, @Nullable
Long versionNumber, @Nullable
String certificateVersionName, @Nullable
Boolean enabled)
+
extends Record
+implements io.micronaut.core.util.Toggleable
+Allows the configuration of the Oracle Cloud certificate process.
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates an instance of a OracleCloudCertificationsConfiguration
record class.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the value of the
enabled
record component.
+
+
final boolean
+
+
+
Indicates whether some other object is "equal to" this one.
+
+
final int
+
+
+
Returns a hash code value for this object.
+
+
boolean
+
+
+
If Oracle Cloud certificate background and setup process should be enabled.
+
+
+
+
+
Returns a string representation of this record class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudCertificationsConfiguration
+public OracleCloudCertificationsConfiguration (String certificateId,
+ @Nullable
+ Long versionNumber,
+ @Nullable
+ String certificateVersionName,
+ @Nullable
+ Boolean enabled)
+Creates an instance of a OracleCloudCertificationsConfiguration
record class.
+
+Parameters:
+certificateId
- the value for the certificateId
record component
+versionNumber
- the value for the versionNumber
record component
+certificateVersionName
- the value for the certificateVersionName
record component
+enabled
- the value for the enabled
record component
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isEnabled
+public boolean isEnabled ()
+If Oracle Cloud certificate background and setup process should be enabled.
+
+Specified by:
+isEnabled
in interface io.micronaut.core.util.Toggleable
+Returns:
+True if Oracle Cloud certificate process is enabled.
+
+
+
+
+
+toString
+public final String toString ()
+Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
+
+Specified by:
+toString
in class Record
+Returns:
+a string representation of this object
+
+
+
+
+
+hashCode
+public final int hashCode ()
+Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
+
+Specified by:
+hashCode
in class Record
+Returns:
+a hash code value for this object
+
+
+
+
+
+equals
+public final boolean equals (Object o)
+Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with
Objects::equals(Object,Object)
.
+
+Specified by:
+equals
in class Record
+Parameters:
+o
- the object with which to compare
+Returns:
+true
if this object is the same as the o
argument; false
otherwise.
+
+
+
+
+
+certificateId
+
+
+
+Returns:
+the value of the certificateId
record component
+
+
+
+
+
+versionNumber
+@Nullable
+ public Long versionNumber ()
+
+
+Returns:
+the value of the versionNumber
record component
+
+
+
+
+
+certificateVersionName
+@Nullable
+ public String certificateVersionName ()
+
+
+Returns:
+the value of the certificateVersionName
record component
+
+
+
+
+
+enabled
+@Nullable
+ public Boolean enabled ()
+Returns the value of the
enabled
record component.
+
+Returns:
+the value of the enabled
record component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/background/OracleCloudCertificationRefresherTask.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/background/OracleCloudCertificationRefresherTask.html
new file mode 100644
index 000000000..7a0deda1f
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/background/OracleCloudCertificationRefresherTask.html
@@ -0,0 +1,176 @@
+
+
+
+
+OracleCloudCertificationRefresherTask (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.certificates.background.OracleCloudCertificationRefresherTask
+
+
+
+@Singleton
+@Requires(property="oci.certificates.enabled",
+ value="true")
+@Context
+@Internal
+ public final class OracleCloudCertificationRefresherTask
+
extends Object
+Background task to automatically refresh the certificates from an Oracle Cloud Certificate server on a configurable interval.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new Oracle Certificate cert refresher background task.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
Scheduled task to refresh certs from Oracle Cloud Certificate server.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudCertificationRefresherTask
+
+Constructs a new Oracle Certificate cert refresher background task.
+
+Parameters:
+oracleCloudCertificateService
- Oracle Cloud Certificate service
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+backgroundRenewal
+@Scheduled(fixedDelay="${oci.certificates.refresh.frequency:24h}",
+ initialDelay="${oci.certificates.refresh.delay:24h}")
+ public void backgroundRenewal ()
+Scheduled task to refresh certs from Oracle Cloud Certificate server.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/background/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/background/package-summary.html
new file mode 100644
index 000000000..c5a26b5f6
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/background/package-summary.html
@@ -0,0 +1,118 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.background (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.certificates.background
+
+Background jobs used to integrate with Oracle Cloud Certificates.
+
+Since:
+3.0.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Background task to automatically refresh the certificates from an Oracle Cloud Certificate server on a configurable interval.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/background/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/background/package-tree.html
new file mode 100644
index 000000000..53956a3a7
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/background/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.background Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/events/CertificateEvent.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/events/CertificateEvent.html
new file mode 100644
index 000000000..c34cfc904
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/events/CertificateEvent.html
@@ -0,0 +1,259 @@
+
+
+
+
+CertificateEvent (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Record Components:
+privateKey
- private key
+certificate
- X509 certificate file
+
+
+
+Event used to alert when a new Oracle Cloud certificate is ready for use.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates an instance of a CertificateEvent
record class.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
final boolean
+
+
+
Indicates whether some other object is "equal to" this one.
+
+
final int
+
+
+
Returns a hash code value for this object.
+
+
+
+
+
Returns the value of the
privateKey
record component.
+
+
+
+
+
Returns a string representation of this record class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+CertificateEvent
+
+Creates an instance of a CertificateEvent
record class.
+
+Parameters:
+privateKey
- the value for the privateKey
record component
+certificate
- the value for the certificate
record component
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+toString
+public final String toString ()
+Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
+
+Specified by:
+toString
in class Record
+Returns:
+a string representation of this object
+
+
+
+
+
+hashCode
+public final int hashCode ()
+Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
+
+Specified by:
+hashCode
in class Record
+Returns:
+a hash code value for this object
+
+
+
+
+
+equals
+public final boolean equals (Object o)
+Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with
Objects::equals(Object,Object)
.
+
+Specified by:
+equals
in class Record
+Parameters:
+o
- the object with which to compare
+Returns:
+true
if this object is the same as the o
argument; false
otherwise.
+
+
+
+
+
+privateKey
+
+Returns the value of the
privateKey
record component.
+
+Returns:
+the value of the privateKey
record component
+
+
+
+
+
+certificate
+
+
+
+Returns:
+the value of the certificate
record component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/events/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/events/package-summary.html
new file mode 100644
index 000000000..4a3a54f1e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/events/package-summary.html
@@ -0,0 +1,118 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.events (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.certificates.events
+
+Events used by Oracle Cloud Certificate tasks.
+
+Since:
+3.0.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+
+
+
Record Classes
+
+
+
+
+
+
Event used to alert when a new Oracle Cloud certificate is ready for use.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/events/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/events/package-tree.html
new file mode 100644
index 000000000..4aeeb2e5e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/events/package-tree.html
@@ -0,0 +1,75 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.events Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/package-summary.html
new file mode 100644
index 000000000..1a65fa6a5
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/package-summary.html
@@ -0,0 +1,118 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.certificates
+
+Logging classes for integration with Oracle Cloud.
+
+Since:
+3.0.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+
+
+
Record Classes
+
+
+
+
+
+
Allows the configuration of the Oracle Cloud certificate process.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/package-tree.html
new file mode 100644
index 000000000..217b4993b
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/package-tree.html
@@ -0,0 +1,75 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/services/OracleCloudCertificateService.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/services/OracleCloudCertificateService.html
new file mode 100644
index 000000000..0e6909127
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/services/OracleCloudCertificateService.html
@@ -0,0 +1,196 @@
+
+
+
+
+OracleCloudCertificateService (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.certificates.services.OracleCloudCertificateService
+
+
+
+@Singleton
+@Requires(classes=com.oracle.bmc.certificates.Certificates.class) @Requires(beans=com.oracle.bmc.certificates.Certificates.class) @Requires(property="oci.certificates.enabled",value="true")
+ public class OracleCloudCertificateService
+
extends Object
+Service to contact an Oracle Cloud Certificate service and setup a certificate on a given basis.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Constructs a new Oracle Cloud Certificate service.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Returns the certificate event.
+
+
void
+
+
+
Setup the certificate for HTTPS.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudCertificateService
+
+Constructs a new Oracle Cloud Certificate service.
+
+Parameters:
+oracleCloudCertificationsConfiguration
- Oracle Cloud Certificate configuration
+certificates
- Oracle Cloud Certificate client
+eventPublisher
- Application Event Publisher
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getCertificateEvent
+
+Returns the certificate event.
+
+Returns:
+certificate event
+
+
+
+
+
+refreshCertificate
+@Retryable(attempts="${oci.certificates.refresh.retry.attempts:3}",
+ delay="${oci.certificates.refresh.retry.delay:1s}")
+ public void refreshCertificate ()
+Setup the certificate for HTTPS.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/services/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/services/package-summary.html
new file mode 100644
index 000000000..94562091e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/services/package-summary.html
@@ -0,0 +1,118 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.services (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.certificates.services
+
+Service classes used to integrate with Oracle Cloud Certificates.
+
+Since:
+3.0.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Service to contact an Oracle Cloud Certificate service and setup a certificate on a given basis.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/services/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/services/package-tree.html
new file mode 100644
index 000000000..bd3fec832
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/services/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.services Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/DelegatedSslContext.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/DelegatedSslContext.html
new file mode 100644
index 000000000..e8c5b98ff
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/DelegatedSslContext.html
@@ -0,0 +1,237 @@
+
+
+
+
+DelegatedSslContext (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.netty.handler.ssl.SslContext
+
io.micronaut.oraclecloud.certificates.ssl.DelegatedSslContext
+
+
+
+
+@Internal
+ public final class DelegatedSslContext
+extends io.netty.handler.ssl.SslContext
+Allows for netty SslContext to be delegated to another as well as switched out at runtime.
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
io.netty.handler.ssl.ApplicationProtocolNegotiator
+
+
+
+
+
+
boolean
+
+
+
+
newEngine (io.netty.buffer.ByteBufAllocator alloc)
+
+
+
newEngine (io.netty.buffer.ByteBufAllocator alloc,
+ String peerHost,
+ int peerPort)
+
+
long
+
+
+
+
+
+
long
+
+
+
+
+
+
+
Methods inherited from class io.netty.handler.ssl.SslContext
+attributes, buildKeyManagerFactory, buildKeyStore, buildTrustManagerFactory, buildTrustManagerFactory, buildTrustManagerFactory, defaultClientProvider, defaultServerProvider, generateKeySpec, isServer, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newClientContext, newHandler, newHandler, newHandler, newHandler, newHandler, newHandler, newHandler, newHandler, newServerContext, newServerContext, newServerContext, newServerContext, newServerContext, newServerContext, newServerContext, newServerContext, newServerContext, newServerContext, nextProtocols, toPrivateKey, toPrivateKey, toX509Certificates, toX509Certificates
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isClient
+public boolean isClient ()
+
+Specified by:
+isClient
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+cipherSuites
+
+
+Specified by:
+cipherSuites
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+sessionCacheSize
+public long sessionCacheSize ()
+
+Overrides:
+sessionCacheSize
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+sessionTimeout
+public long sessionTimeout ()
+
+Overrides:
+sessionTimeout
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+applicationProtocolNegotiator
+public io.netty.handler.ssl.ApplicationProtocolNegotiator applicationProtocolNegotiator ()
+
+Specified by:
+applicationProtocolNegotiator
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+newEngine
+public SSLEngine newEngine (io.netty.buffer.ByteBufAllocator alloc)
+
+Specified by:
+newEngine
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+newEngine
+public SSLEngine newEngine (io.netty.buffer.ByteBufAllocator alloc,
+ String peerHost,
+ int peerPort)
+
+Specified by:
+newEngine
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+sessionContext
+
+
+Specified by:
+sessionContext
in class io.netty.handler.ssl.SslContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/OracleCloudSSLContextBuilder.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/OracleCloudSSLContextBuilder.html
new file mode 100644
index 000000000..4a4a407ab
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/OracleCloudSSLContextBuilder.html
@@ -0,0 +1,196 @@
+
+
+
+
+OracleCloudSSLContextBuilder (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.certificates.ssl.OracleCloudSSLContextBuilder
+
+
+
+All Implemented Interfaces:
+io.micronaut.http.server.netty.ssl.ServerSslBuilder
+
+
+@Singleton
+@Replaces(io.micronaut.http.server.netty.ssl.CertificateProvidedSslBuilder.class)
+ public final class OracleCloudSSLContextBuilder
+
extends Object
+implements io.micronaut.http.server.netty.ssl.ServerSslBuilder
+The Netty implementation of ServerSslBuilder
that generates an SslContext
to create a server handler
+ with to SSL support via a temporary self signed certificate that will be replaced by an Oracle Cloud certificate once acquired.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
Optional <io.netty.handler.ssl.SslContext>
+
+
+
Generates an SslContext that has an already expired self signed cert that should be replaced almost immediately by the Oracle Cloud Certificate server once it is downloaded.
+
+
io.micronaut.http.ssl.ServerSslConfiguration
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+buildQuic
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getSslConfiguration
+public io.micronaut.http.ssl.ServerSslConfiguration getSslConfiguration ()
+
+Specified by:
+getSslConfiguration
in interface io.micronaut.http.server.netty.ssl.ServerSslBuilder
+
+
+
+
+
+build
+public Optional <io.netty.handler.ssl.SslContext> build ()
+Generates an SslContext that has an already expired self signed cert that should be replaced almost immediately by the Oracle Cloud Certificate server once it is downloaded.
+
+Specified by:
+build
in interface io.micronaut.http.server.netty.ssl.ServerSslBuilder
+Returns:
+Optional SslContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/package-summary.html
new file mode 100644
index 000000000..6c17b9089
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/package-summary.html
@@ -0,0 +1,123 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.ssl (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.certificates.ssl
+
+Events used by Oracle Cloud Certificate tasks.
+
+Since:
+3.0.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Allows for netty SslContext to be delegated to another as well as switched out at runtime.
+
+
+
+
The Netty implementation of ServerSslBuilder
that generates an SslContext
to create a server handler
+ with to SSL support via a temporary self signed certificate that will be replaced by an Oracle Cloud certificate once acquired.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/package-tree.html
new file mode 100644
index 000000000..e1876da59
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/certificates/ssl/package-tree.html
@@ -0,0 +1,76 @@
+
+
+
+
+io.micronaut.oraclecloud.certificates.ssl Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.certificates.ssl.OracleCloudSSLContextBuilder (implements io.micronaut.http.server.netty.ssl.ServerSslBuilder)
+io.netty.handler.ssl.SslContext
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/SdkClients.Kind.html b/3.9.1/api/io/micronaut/oraclecloud/clients/SdkClients.Kind.html
new file mode 100644
index 000000000..973236cf1
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/SdkClients.Kind.html
@@ -0,0 +1,230 @@
+
+
+
+
+SdkClients.Kind (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
+
+
+
+
+Enum Constant Summary
+Enum Constants
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Returns the enum constant of this class with the specified name.
+
+
+
+
+
Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+
+
+
+
+
Methods inherited from class java.lang.Enum
+
clone , compareTo , describeConstable , equals , finalize , getDeclaringClass , hashCode , name , ordinal , toString , valueOf
+
+
+
+
+
+
+
+
+
+
+Enum Constant Details
+
+
+
+
+
+
+Method Details
+
+
+
+values
+
+Returns an array containing the constants of this enum class, in
+the order they are declared.
+
+Returns:
+an array containing the constants of this enum class, in the order they are declared
+
+
+
+
+
+valueOf
+
+Returns the enum constant of this class with the specified name.
+The string must match exactly an identifier used to declare an
+enum constant in this class. (Extraneous whitespace characters are
+not permitted.)
+
+Parameters:
+name
- the name of the enum constant to be returned.
+Returns:
+the enum constant with the specified name
+Throws:
+IllegalArgumentException
- if this enum class has no constant with the specified name
+NullPointerException
- if the argument is null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/SdkClients.html b/3.9.1/api/io/micronaut/oraclecloud/clients/SdkClients.html
new file mode 100644
index 000000000..f305028cb
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/SdkClients.html
@@ -0,0 +1,158 @@
+
+
+
+
+SdkClients (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Internal Annotation to trigger the creation of SDK clients.
+
+
+
+
+
+
+Nested Class Summary
+Nested Classes
+
+
+
+
+
static enum
+
+
+
the type of client to generate.
+
+
+
+
+
+
+
+Optional Element Summary
+Optional Elements
+
+
+
+
+
+
+
+
+
+
+Element Details
+
+
+
+value
+
+
+Returns:
+The type of client to generate.
+
+
+Default:
+ASYNC
+
+
+
+
+
+clientClasses
+
+
+Returns:
+The OCI SDK client class names to process.
+
+
+Default:
+{}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/clients/package-summary.html
new file mode 100644
index 000000000..112daaf8e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/package-summary.html
@@ -0,0 +1,109 @@
+
+
+
+
+io.micronaut.oraclecloud.clients (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.clients
+
+
+
+
+
+
+
+
All Classes and Interfaces Enum Classes Annotation Interfaces
+
+
+
+
+
+
+
Internal Annotation to trigger the creation of SDK clients.
+
+
+
+
the type of client to generate.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/clients/package-tree.html
new file mode 100644
index 000000000..c8c14c942
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/package-tree.html
@@ -0,0 +1,81 @@
+
+
+
+
+io.micronaut.oraclecloud.clients Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Annotation Interface Hierarchy
+
+
+
+Enum Class Hierarchy
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/processor/OracleCloudSdkProcessor.html b/3.9.1/api/io/micronaut/oraclecloud/clients/processor/OracleCloudSdkProcessor.html
new file mode 100644
index 000000000..3754533f1
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/processor/OracleCloudSdkProcessor.html
@@ -0,0 +1,263 @@
+
+
+
+
+OracleCloudSdkProcessor (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+Processor
+
+
+
+An annotation processor that generates the Oracle Cloud SDK integration
+ for Micronaut.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+
+
The package to which client factories will be written.
+
+
+
+
+
Processing environment option used to specify the client classes to process.
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
boolean
+
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+CLIENT_PACKAGE
+public static final String CLIENT_PACKAGE
+The package to which client factories will be written.
+
+See Also:
+
+
+
+
+
+
+
+
+OCI_SDK_CLIENT_CLASSES_OPTION
+public static final String OCI_SDK_CLIENT_CLASSES_OPTION
+Processing environment option used to specify the client classes to process.
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudSdkProcessor
+public OracleCloudSdkProcessor ()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/processor/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/clients/processor/package-summary.html
new file mode 100644
index 000000000..80614f108
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/processor/package-summary.html
@@ -0,0 +1,100 @@
+
+
+
+
+io.micronaut.oraclecloud.clients.processor (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.clients.processor
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
An annotation processor that generates the Oracle Cloud SDK integration
+ for Micronaut.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/processor/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/clients/processor/package-tree.html
new file mode 100644
index 000000000..009a9d64d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/processor/package-tree.html
@@ -0,0 +1,75 @@
+
+
+
+
+io.micronaut.oraclecloud.clients.processor Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/AsyncHandlerSink.html b/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/AsyncHandlerSink.html
new file mode 100644
index 000000000..0b21ceb14
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/AsyncHandlerSink.html
@@ -0,0 +1,196 @@
+
+
+
+
+AsyncHandlerSink (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.clients.reactor.AsyncHandlerSink<Req,Res>
+
+
+
+Type Parameters:
+Req
- The request type
+Res
- The response type
+
+
+All Implemented Interfaces:
+com.oracle.bmc.responses.AsyncHandler<Req,Res>
+
+
+public class AsyncHandlerSink<Req,Res>
+
extends Object
+implements com.oracle.bmc.responses.AsyncHandler<Req,Res>
+Bridges the AsyncHandler
interface to an RxJava MonoSink
.
+
+Since:
+2.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+AsyncHandlerSink
+public AsyncHandlerSink (reactor.core.publisher.MonoSink<Res > emitter)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+onSuccess
+public void onSuccess (Req req,
+ Res res)
+
+Specified by:
+onSuccess
in interface com.oracle.bmc.responses.AsyncHandler<Req ,Res >
+
+
+
+
+
+onError
+
+
+Specified by:
+onError
in interface com.oracle.bmc.responses.AsyncHandler<Req ,Res >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/package-summary.html
new file mode 100644
index 000000000..3bd22760e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/package-summary.html
@@ -0,0 +1,99 @@
+
+
+
+
+io.micronaut.oraclecloud.clients.reactor (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.clients.reactor
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Bridges the AsyncHandler
interface to an RxJava MonoSink
.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/package-tree.html
new file mode 100644
index 000000000..fe9a9d52f
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/reactor/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.clients.reactor Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.clients.reactor.AsyncHandlerSink <Req,Res> (implements com.oracle.bmc.responses.AsyncHandler<REQUEST,RESPONSE>)
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/AsyncHandlerEmitter.html b/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/AsyncHandlerEmitter.html
new file mode 100644
index 000000000..62ff705a4
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/AsyncHandlerEmitter.html
@@ -0,0 +1,196 @@
+
+
+
+
+AsyncHandlerEmitter (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.clients.rxjava2.AsyncHandlerEmitter<Req,Res>
+
+
+
+Type Parameters:
+Req
- The request type
+Res
- The response type
+
+
+All Implemented Interfaces:
+com.oracle.bmc.responses.AsyncHandler<Req,Res>
+
+
+public class AsyncHandlerEmitter<Req,Res>
+
extends Object
+implements com.oracle.bmc.responses.AsyncHandler<Req,Res>
+Bridges the AsyncHandler
interface to an RxJava SingleEmitter
.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+AsyncHandlerEmitter
+public AsyncHandlerEmitter (io.reactivex.SingleEmitter<Res > emitter)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+onSuccess
+public void onSuccess (Req req,
+ Res res)
+
+Specified by:
+onSuccess
in interface com.oracle.bmc.responses.AsyncHandler<Req ,Res >
+
+
+
+
+
+onError
+
+
+Specified by:
+onError
in interface com.oracle.bmc.responses.AsyncHandler<Req ,Res >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/package-summary.html
new file mode 100644
index 000000000..7d30a74eb
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/package-summary.html
@@ -0,0 +1,99 @@
+
+
+
+
+io.micronaut.oraclecloud.clients.rxjava2 (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.clients.rxjava2
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Bridges the AsyncHandler
interface to an RxJava SingleEmitter
.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/package-tree.html
new file mode 100644
index 000000000..f7b574f79
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/clients/rxjava2/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.clients.rxjava2 Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.clients.rxjava2.AsyncHandlerEmitter <Req,Res> (implements com.oracle.bmc.responses.AsyncHandler<REQUEST,RESPONSE>)
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/InstancePrincipalConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/core/InstancePrincipalConfiguration.html
new file mode 100644
index 000000000..b97e620c8
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/InstancePrincipalConfiguration.html
@@ -0,0 +1,272 @@
+
+
+
+
+InstancePrincipalConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.core.InstancePrincipalConfiguration
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.util.Toggleable
+
+
+@ConfigurationProperties("oci.config.instance-principal")
+@Requires(property="oci.config.instance-principal.enabled",
+ value="true")
+ public class InstancePrincipalConfiguration
+
extends Object
+implements io.micronaut.core.util.Toggleable
+Allows configuration of the InstancePrincipalsAuthenticationDetailsProvider
.
+
+Since:
+1.0.0
+Author:
+graemerocher, toddsharp
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider.InstancePrincipalsAuthenticationDetailsProviderBuilder
+
+
+
+
+
+
Get custom metadata base url.
+
+
boolean
+
+
+
void
+
+
+
void
+
+
+
Sets custom metadata base url.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+InstancePrincipalConfiguration
+public InstancePrincipalConfiguration ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isEnabled
+public boolean isEnabled ()
+
+Specified by:
+isEnabled
in interface io.micronaut.core.util.Toggleable
+
+
+
+
+
+setEnabled
+public void setEnabled (boolean enabled)
+
+Parameters:
+enabled
- Sets whether to enable instance principal authentication
+
+
+
+
+
+
+
+
+
+
+
+getBuilder
+public com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider.InstancePrincipalsAuthenticationDetailsProviderBuilder getBuilder ()
+
+Returns:
+The builder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudAuthConfigurationProperties.html b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudAuthConfigurationProperties.html
new file mode 100644
index 000000000..ce486f2d1
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudAuthConfigurationProperties.html
@@ -0,0 +1,259 @@
+
+
+
+
+OracleCloudAuthConfigurationProperties (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+
+
+
+@ConfigurationProperties("oci")
+ public class OracleCloudAuthConfigurationProperties
+
extends Object
+Configuration for Oracle Cloud auth config.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.auth.SimpleAuthenticationDetailsProvider.SimpleAuthenticationDetailsProviderBuilder
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+TENANT_ID
+public static final String TENANT_ID
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudAuthConfigurationProperties
+public OracleCloudAuthConfigurationProperties ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getBuilder
+public com.oracle.bmc.auth.SimpleAuthenticationDetailsProvider.SimpleAuthenticationDetailsProviderBuilder getBuilder ()
+
+Returns:
+The builder.
+
+
+
+
+
+setPrivateKeyFile
+public void setPrivateKeyFile (io.micronaut.core.io.Readable privateKeyFile)
+
+Parameters:
+privateKeyFile
- The private key location.
+
+
+
+
+
+setPrivateKey
+public void setPrivateKey (String privateKey)
+
+Parameters:
+privateKey
- The private key as a string
+
+
+
+
+
+setPassphrase
+public void setPassphrase (String passphrase)
+
+Parameters:
+passphrase
- Sets the passphrase
+
+
+
+
+
+setRegion
+public void setRegion (String region)
+
+Parameters:
+region
- Sets the region
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudClientConfigurationProperties.html b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudClientConfigurationProperties.html
new file mode 100644
index 000000000..dd8a4feb4
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudClientConfigurationProperties.html
@@ -0,0 +1,196 @@
+
+
+
+
+OracleCloudClientConfigurationProperties (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties
+
+
+
+@ConfigurationProperties("oci.client")
+ public class OracleCloudClientConfigurationProperties
+
extends Object
+Configuration for the AuthenticationDetailsProvider
.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration.CircuitBreakerConfigurationBuilder
+
+
+
com.oracle.bmc.ClientConfiguration.ClientConfigurationBuilder
+
+
+
com.oracle.bmc.retrier.RetryConfiguration.Builder
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudClientConfigurationProperties
+public OracleCloudClientConfigurationProperties ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getClientBuilder
+public com.oracle.bmc.ClientConfiguration.ClientConfigurationBuilder getClientBuilder ()
+
+Returns:
+Obtains the configuration builder.
+
+
+
+
+
+getRetryBuilder
+public com.oracle.bmc.retrier.RetryConfiguration.Builder getRetryBuilder ()
+
+Returns:
+The retry config.
+
+
+
+
+
+getCircuitBreakerBuilder
+public com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration.CircuitBreakerConfigurationBuilder getCircuitBreakerBuilder ()
+
+Returns:
+The circuit breaker config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudConfigCondition.html b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudConfigCondition.html
new file mode 100644
index 000000000..f92f03a3d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudConfigCondition.html
@@ -0,0 +1,181 @@
+
+
+
+
+OracleCloudConfigCondition (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+io.micronaut.context.condition.Condition
, Predicate <io.micronaut.context.condition.ConditionContext>
+
+
+public class OracleCloudConfigCondition
+
extends Object
+implements io.micronaut.context.condition.Condition
+A condition used to enable file based configuration if the file exists that is specified by either oci.config
or
+ available at $USE_HOME/.oci/config
.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
boolean
+
matches (io.micronaut.context.condition.ConditionContext context)
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
Methods inherited from interface io.micronaut.context.condition.Condition
+test
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudConfigCondition
+public OracleCloudConfigCondition ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+matches
+public boolean matches (io.micronaut.context.condition.ConditionContext context)
+
+Specified by:
+matches
in interface io.micronaut.context.condition.Condition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudConfigFileConfigurationProperties.html b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudConfigFileConfigurationProperties.html
new file mode 100644
index 000000000..4b9bc2f91
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudConfigFileConfigurationProperties.html
@@ -0,0 +1,365 @@
+
+
+
+
+OracleCloudConfigFileConfigurationProperties (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+Record Components:
+profile
- The profile to use.
+path
- A custom path for the OCI configuration file.
+enabled
- Whether to enable or disable using the OCI configuration file.
+sessionToken
- Whether to enable the configuration of a SessionTokenAuthenticationDetailsProvider
.
+
+
+All Implemented Interfaces:
+io.micronaut.core.util.Toggleable
+
+
+@ConfigurationProperties("oci.config")
+ public record OracleCloudConfigFileConfigurationProperties (@Nullable
String profile, @Nullable
String path, @Nullable
Boolean enabled, @Nullable
Boolean sessionToken)
+
extends Record
+implements io.micronaut.core.util.Toggleable
+Configuration properties for the local OCI config file (eg: $USE_HOME/.oci/config
).
+
+Since:
+3.6.0
+Author:
+Álvaro Sánchez-Mariscal
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates an instance of a OracleCloudConfigFileConfigurationProperties
record class.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
Returns the value of the
enabled
record component.
+
+
final boolean
+
+
+
Indicates whether some other object is "equal to" this one.
+
+
final int
+
+
+
Returns a hash code value for this object.
+
+
boolean
+
+
+
+
+
+
Returns the value of the
path
record component.
+
+
+
+
+
Returns the value of the
profile
record component.
+
+
+
+
+
+
+
+
Returns a string representation of this record class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudConfigFileConfigurationProperties
+public OracleCloudConfigFileConfigurationProperties (@Nullable
+ @Nullable String profile,
+ @Nullable
+ @Nullable String path,
+ @Nullable
+ @Nullable Boolean enabled,
+ @Nullable
+ @Nullable Boolean sessionToken)
+Creates an instance of a OracleCloudConfigFileConfigurationProperties
record class.
+
+Parameters:
+profile
- the value for the profile
record component
+path
- the value for the path
record component
+enabled
- the value for the enabled
record component
+sessionToken
- the value for the sessionToken
record component
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isEnabled
+public boolean isEnabled ()
+
+Specified by:
+isEnabled
in interface io.micronaut.core.util.Toggleable
+
+
+
+
+
+toString
+public final String toString ()
+Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
+
+Specified by:
+toString
in class Record
+Returns:
+a string representation of this object
+
+
+
+
+
+hashCode
+public final int hashCode ()
+Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
+
+Specified by:
+hashCode
in class Record
+Returns:
+a hash code value for this object
+
+
+
+
+
+equals
+public final boolean equals (Object o)
+Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with
Objects::equals(Object,Object)
.
+
+Specified by:
+equals
in class Record
+Parameters:
+o
- the object with which to compare
+Returns:
+true
if this object is the same as the o
argument; false
otherwise.
+
+
+
+
+
+profile
+@Nullable
+ public @Nullable String profile ()
+Returns the value of the
profile
record component.
+
+Returns:
+the value of the profile
record component
+
+
+
+
+
+path
+@Nullable
+ public @Nullable String path ()
+Returns the value of the
path
record component.
+
+Returns:
+the value of the path
record component
+
+
+
+
+
+enabled
+@Nullable
+ public @Nullable Boolean enabled ()
+Returns the value of the
enabled
record component.
+
+Returns:
+the value of the enabled
record component
+
+
+
+
+
+sessionToken
+@Nullable
+ public @Nullable Boolean sessionToken ()
+
+
+Returns:
+the value of the sessionToken
record component
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudCoreFactory.html b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudCoreFactory.html
new file mode 100644
index 000000000..f2ecd8707
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/OracleCloudCoreFactory.html
@@ -0,0 +1,527 @@
+
+
+
+
+OracleCloudCoreFactory (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+@Factory
+ public class OracleCloudCoreFactory
+
extends Object
+Sets up core beans for integration with Oracle cloud clients. The following beans are exposed:
+
+
+ AuthenticationDetailsProvider
+ ClientConfiguration.ClientConfigurationBuilder
+ ClientConfiguration
+
+
+See Also:
+
+
+ConfigFileAuthenticationDetailsProvider
+ResourcePrincipalAuthenticationDetailsProvider
+SimpleAuthenticationDetailsProvider
+
+
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+
+
Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
protected
+
+
+
protected
+
+
+
Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
protected com.oracle.bmc.ClientConfiguration
+
+
+
Configures the default ClientConfiguration
if no other configuration is present.
+
+
protected com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider
+
+
+
Configures a ConfigFileAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ a file is found at $USER_HOME/.oci/config
or specified by the user with oci.config.path
.
+
+
protected com.oracle.bmc.ClientConfiguration.ClientConfigurationBuilder
+
+
+
Produces a ClientConfiguration.ClientConfigurationBuilder
bean for the given properties.
+
+
+
+
+
+
+
+
protected com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider
+
+
+
Configures a InstancePrincipalsAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the specified by the user with oci.config.use-instance-principal
.
+
+
protected com.oracle.bmc.auth.ResourcePrincipalAuthenticationDetailsProvider
+
+
+
Configures a ResourcePrincipalAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the OCI_RESOURCE_PRINCIPAL_VERSION
variable is available in the environment.
+
+
protected com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider
+
+
+
Configures a SessionTokenAuthenticationDetailsProvider
.
+
+
protected com.oracle.bmc.auth.SimpleAuthenticationDetailsProvider
+
+
+
Configures a SimpleAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present.
+
+
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+ORACLE_CLOUD
+public static final String ORACLE_CLOUD
+
+See Also:
+
+
+
+
+
+
+
+
+ORACLE_CLOUD_CONFIG_PATH
+public static final String ORACLE_CLOUD_CONFIG_PATH
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+OKE_WORKLOAD_IDENTITY_PREFIX
+public static final String OKE_WORKLOAD_IDENTITY_PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudCoreFactory
+@Deprecated (forRemoval =true,
+ since ="3.6.0")
+protected OracleCloudCoreFactory (@Nullable @Property(name="oci.config.profile")
+ @Nullable String profile,
+ @Nullable @Property(name="oci.config.path")
+ @Nullable String configPath)
+Deprecated, for removal: This API element is subject to removal in a future version.
+
+
+
+Parameters:
+profile
- The configured profile
+configPath
- The configuration file path
+
+
+
+
+
+OracleCloudCoreFactory
+
+
+Parameters:
+ociConfigFileConfiguration
- The OCI config file configuration properties
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+configFileAuthenticationDetailsProvider
+@Singleton
+@Requires(condition=OracleCloudConfigCondition.class ) @Requires(missingProperty="oci.tenant-id") @Requires(missingProperty="oci.config.instance-principal") @Requires(missingProperty="oci.config.oke-workload-identity") @Requires(missingBeans=com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider.class) @Requires(property="oci.config.enabled",notEquals="false",defaultValue="true")
+@Primary
+ protected com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider configFileAuthenticationDetailsProvider ()
+ throws
IOException
+Configures a ConfigFileAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ a file is found at $USER_HOME/.oci/config
or specified by the user with oci.config.path
.
+
+Returns:
+The ConfigFileAuthenticationDetailsProvider
.
+Throws:
+IOException
- If an exception occurs reading configuration.
+See Also:
+
+
+ConfigFileAuthenticationDetailsProvider
+
+
+
+
+
+
+
+simpleAuthenticationDetailsProvider
+@Singleton
+@Requires(missingProperty="oci.config.instance-principal") @Requires(missingProperty="oci.config.oke-workload-identity") @Requires(missingBeans=com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider.class) @Requires(property="oci.tenant-id")
+@Primary
+ protected com.oracle.bmc.auth.SimpleAuthenticationDetailsProvider simpleAuthenticationDetailsProvider (OracleCloudAuthConfigurationProperties config)
+Configures a SimpleAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present.
+
+Parameters:
+config
- The config to use
+Returns:
+The SimpleAuthenticationDetailsProvider
.
+See Also:
+
+
+SimpleAuthenticationDetailsProvider
+
+
+
+
+
+
+
+resourcePrincipalAuthenticationDetailsProvider
+@Singleton
+@Requires(missingProperty="oci.config.instance-principal") @Requires(missingProperty="oci.config.oke-workload-identity") @Requires(property="OCI_RESOURCE_PRINCIPAL_VERSION")
+@Primary
+ protected com.oracle.bmc.auth.ResourcePrincipalAuthenticationDetailsProvider resourcePrincipalAuthenticationDetailsProvider ()
+Configures a ResourcePrincipalAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the OCI_RESOURCE_PRINCIPAL_VERSION
variable is available in the environment.
+
+Returns:
+The ResourcePrincipalAuthenticationDetailsProvider
.
+See Also:
+
+
+ResourcePrincipalAuthenticationDetailsProvider
+
+
+
+
+
+
+
+instancePrincipalAuthenticationDetailsProvider
+
+Configures a InstancePrincipalsAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the specified by the user with oci.config.use-instance-principal
.
+
+Parameters:
+instancePrincipalConfiguration
- The configuration
+Returns:
+The InstancePrincipalsAuthenticationDetailsProvider
.
+See Also:
+
+
+InstancePrincipalsAuthenticationDetailsProvider
+
+
+
+
+
+
+
+configurationBuilder
+
+Produces a ClientConfiguration.ClientConfigurationBuilder
bean for the given properties.
+
+Parameters:
+props
- The props
+Returns:
+The builder
+
+
+
+
+
+
+
+
+clientConfiguration
+@Singleton
+@Requires(missingBeans=com.oracle.bmc.ClientConfiguration.class)
+@Primary
+ protected com.oracle.bmc.ClientConfiguration clientConfiguration (com.oracle.bmc.ClientConfiguration.ClientConfigurationBuilder builder)
+Configures the default ClientConfiguration
if no other configuration is present.
+
+Parameters:
+builder
- The builder
+Returns:
+The default client configuration.
+
+
+
+
+
+sessionTokenAuthenticationDetailsProvider
+@Singleton
+@Requires(condition=OracleCloudConfigCondition.class ) @Requires(property="oci.config.session-token",notEquals="false",defaultValue="false") @Requires(property="oci.config.enabled",notEquals="false",defaultValue="true")
+@Primary
+ protected com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider sessionTokenAuthenticationDetailsProvider ()
+ throws
IOException
+Configures a SessionTokenAuthenticationDetailsProvider
.
+
+Returns:
+The SessionTokenAuthenticationDetailsProvider
.
+Throws:
+IOException
- If an exception occurs reading configuration.
+
+
+
+
+
+getProfile
+
+
+Returns:
+The configured profile.
+
+
+
+
+
+getConfigPath
+
+
+Returns:
+The configured config path.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/TenancyIdProvider.html b/3.9.1/api/io/micronaut/oraclecloud/core/TenancyIdProvider.html
new file mode 100644
index 000000000..af40ab8a7
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/TenancyIdProvider.html
@@ -0,0 +1,141 @@
+
+
+
+
+TenancyIdProvider (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+Functional Interface:
+This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
+
+
+
+Interface that supplies the Tenant ID.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods
+
+
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getTenancyId
+@Nullable
+ @Nullable String getTenancyId ()
+
+Returns:
+Returns the configured tenant id.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/core/package-summary.html
new file mode 100644
index 000000000..60dcedd20
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/package-summary.html
@@ -0,0 +1,126 @@
+
+
+
+
+io.micronaut.oraclecloud.core (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.core
+
+
+
+
+
+
+
+
All Classes and Interfaces Interfaces Classes Record Classes
+
+
+
+
+
+
+
Allows configuration of the InstancePrincipalsAuthenticationDetailsProvider
.
+
+
+
+
Configuration for Oracle Cloud auth config.
+
+
+
+
Configuration for the AuthenticationDetailsProvider
.
+
+
+
+
A condition used to enable file based configuration if the file exists that is specified by either oci.config
or
+ available at $USE_HOME/.oci/config
.
+
+
+
+
Configuration properties for the local OCI config file (eg: $USE_HOME/.oci/config
).
+
+
+
+
Sets up core beans for integration with Oracle cloud clients.
+
+
+
+
Interface that supplies the Tenant ID.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/core/package-tree.html
new file mode 100644
index 000000000..cf8a34597
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/package-tree.html
@@ -0,0 +1,86 @@
+
+
+
+
+io.micronaut.oraclecloud.core Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/sdk/AbstractSdkClientFactory.html b/3.9.1/api/io/micronaut/oraclecloud/core/sdk/AbstractSdkClientFactory.html
new file mode 100644
index 000000000..bdd08a9f4
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/sdk/AbstractSdkClientFactory.html
@@ -0,0 +1,235 @@
+
+
+
+
+AbstractSdkClientFactory (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.core.sdk.AbstractSdkClientFactory<B,T>
+
+
+
+Type Parameters:
+B
- The builder type
+T
- The client type
+
+
+public abstract class AbstractSdkClientFactory<B extends com.oracle.bmc.common.ClientBuilderBase<B,T>,T>
+
extends Object
+Abstract base factory for SDK objects.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
protected
+
AbstractSdkClientFactory (B builder,
+ com.oracle.bmc.ClientConfiguration clientConfiguration,
+ @Nullable com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ @Nullable com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory)
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods Concrete Methods
+
+
+
+
+
+
+
build (B clientBuilder,
+ @NonNull com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider)
+
+
Builds the client based on its builder to make sure user can configure
+ required parameters in the builder.
+
+
+
+
+
final void
+
setProvider (@Nullable com.oracle.bmc.http.client.HttpProvider provider)
+
+
Set the HTTP provider for this client.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+AbstractSdkClientFactory
+protected AbstractSdkClientFactory (B builder,
+ com.oracle.bmc.ClientConfiguration clientConfiguration,
+ @Nullable
+ @Nullable com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ @Nullable
+ @Nullable com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory)
+Default constructor.
+
+Parameters:
+builder
- The builder
+clientConfiguration
- The client config
+clientConfigurator
- The client configurator (optional)
+requestSignerFactory
- The request signer factory (optional)
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getBuilder
+@NonNull
+ protected B getBuilder ()
+
+Returns:
+The builder
+
+
+
+
+
+build
+@NonNull
+ protected abstract T build (@NonNull
+ B clientBuilder,
+ @NonNull
+ @NonNull com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider)
+Builds the client based on its builder to make sure user can configure
+ required parameters in the builder.
+
+Parameters:
+clientBuilder
- The builder for client
+authenticationDetailsProvider
- The authentication details provider
+Returns:
+The client to build
+
+
+
+
+
+setProvider
+@Inject
+@Internal
+ public final void setProvider (@Nullable
+ @Nullable com.oracle.bmc.http.client.HttpProvider provider)
+Set the HTTP provider for this client. This is injected by the application context, in order
+ to reuse the HTTP provider.
+
+Parameters:
+provider
- The provider to inject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/sdk/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/core/sdk/package-summary.html
new file mode 100644
index 000000000..6b5d61301
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/sdk/package-summary.html
@@ -0,0 +1,95 @@
+
+
+
+
+io.micronaut.oraclecloud.core.sdk (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.core.sdk
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Abstract base factory for SDK objects.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/core/sdk/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/core/sdk/package-tree.html
new file mode 100644
index 000000000..dc9a7fb47
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/core/sdk/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.core.sdk Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.OracleCloudVault.html b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.OracleCloudVault.html
new file mode 100644
index 000000000..392021a18
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.OracleCloudVault.html
@@ -0,0 +1,233 @@
+
+
+
+
+OracleCloudVaultConfiguration.OracleCloudVault (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+
+
+
+Enclosing class:
+OracleCloudVaultConfiguration
+
+
+@EachProperty(value="vaults",
+ list=true)
+ public static class OracleCloudVaultConfiguration.OracleCloudVault
+
extends Object
+An Oracle Cloud Vault.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
The compartment OCID where the vault resides.
+
+
+
+
+
The OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+
void
+
+
+
Sets the compartment OCID where the vault resides.
+
+
void
+
+
+
Sets the OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudVault
+public OracleCloudVault ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getOcid
+
+The OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+Returns:
+The OCID of the vault.
+
+
+
+
+
+setOcid
+public void setOcid (String ocid)
+Sets the OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+Parameters:
+ocid
- the ocid of the vault
+
+
+
+
+
+getCompartmentOcid
+public String getCompartmentOcid ()
+The compartment OCID where the vault resides.
+
+Returns:
+The compartment OCID.
+
+
+
+
+
+setCompartmentOcid
+public void setCompartmentOcid (String compartmentOcid)
+Sets the compartment OCID where the vault resides.
+
+Parameters:
+compartmentOcid
- The compartment OCID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration.html
new file mode 100644
index 000000000..3b1d8ac11
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration.html
@@ -0,0 +1,191 @@
+
+
+
+
+OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.discovery.config.ConfigDiscoveryConfiguration
+
io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration
+
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.util.Toggleable
+
+
+Enclosing class:
+OracleCloudVaultConfiguration
+
+
+@ConfigurationProperties("config")
+ public static class OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration
+extends io.micronaut.discovery.config.ConfigDiscoveryConfiguration
+The Discovery Configuration class for Oracle Cloud Vault.
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from class io.micronaut.discovery.config.ConfigDiscoveryConfiguration
+io.micronaut.discovery.config.ConfigDiscoveryConfiguration.Format
+
+
+
+
+
+Field Summary
+Fields
+
+
+
Fields inherited from class io.micronaut.discovery.config.ConfigDiscoveryConfiguration
+DEFAULT_ENABLED, DEFAULT_PATH
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class io.micronaut.discovery.config.ConfigDiscoveryConfiguration
+getFormat, getPath, isEnabled, setEnabled, setFormat, setPath
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudVaultClientDiscoveryConfiguration
+public OracleCloudVaultClientDiscoveryConfiguration ()
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.html
new file mode 100644
index 000000000..e0207fa04
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfiguration.html
@@ -0,0 +1,261 @@
+
+
+
+
+OracleCloudVaultConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+
+
+
+@ConfigurationProperties("oci.vault")
+ public class OracleCloudVaultConfiguration
+
extends Object
+OracleCloudVault Client.
+
+Since:
+1.4.0
+Author:
+toddsharp
+
+
+
+
+
+
+
+Nested Class Summary
+Nested Classes
+
+
+
+
+
static class
+
+
+
An Oracle Cloud Vault.
+
+
static class
+
+
+
The Discovery Configuration class for Oracle Cloud Vault.
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudVaultConfiguration
+public OracleCloudVaultConfiguration ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getDiscoveryConfiguration
+
+
+Returns:
+The discovery service configuration
+
+
+
+
+
+getVaults
+
+
+
+Returns:
+A list of Vaults to retrieve
+
+
+
+
+
+setVaults
+
+
+
+Parameters:
+vaults
- A list of Vaults
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfigurationClient.html b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfigurationClient.html
new file mode 100644
index 000000000..2734aab0f
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/OracleCloudVaultConfigurationClient.html
@@ -0,0 +1,218 @@
+
+
+
+
+OracleCloudVaultConfigurationClient (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfigurationClient
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.naming.Described
, io.micronaut.discovery.config.ConfigurationClient
+
+
+@Singleton
+@Requires(classes={com.oracle.bmc.secrets.Secrets.class,com.oracle.bmc.vault.Vaults.class}) @Requires(beans={com.oracle.bmc.vault.Vaults.class,com.oracle.bmc.secrets.Secrets.class}) @Requires(property="oci.vault")
+ public class OracleCloudVaultConfigurationClient
+
extends Object
+implements io.micronaut.discovery.config.ConfigurationClient
+A ConfigurationClient
for Oracle Cloud Vault Configuration.
+
+Since:
+1.4.0
+Author:
+toddsharp
+
+
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface io.micronaut.discovery.config.ConfigurationClient
+CONFIGURATION_PREFIX, ENABLED, READ_TIMEOUT
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
org.reactivestreams.Publisher<io.micronaut.context.env.PropertySource>
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
Methods inherited from interface io.micronaut.core.naming.Described
+getDescription
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudVaultConfigurationClient
+public OracleCloudVaultConfigurationClient (OracleCloudVaultConfiguration oracleCloudVaultClientConfiguration,
+ @Named("io") @Nullable
+ @Nullable ExecutorService executorService,
+ com.oracle.bmc.secrets.Secrets secretsClient,
+ com.oracle.bmc.vault.Vaults vaultsClient)
+Default Constructor.
+
+Parameters:
+oracleCloudVaultClientConfiguration
- Oracle CloudVault Client Configuration
+executorService
- Executor Service
+secretsClient
- The secrets client
+vaultsClient
- The vaults client
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getPropertySources
+public org.reactivestreams.Publisher<io.micronaut.context.env.PropertySource> getPropertySources (io.micronaut.context.env.Environment environment)
+
+Specified by:
+getPropertySources
in interface io.micronaut.discovery.config.ConfigurationClient
+
+
+
+
+
+getDescription
+public String getDescription ()
+
+Specified by:
+getDescription
in interface io.micronaut.core.naming.Described
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/package-summary.html
new file mode 100644
index 000000000..f2c64991e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/package-summary.html
@@ -0,0 +1,107 @@
+
+
+
+
+io.micronaut.oraclecloud.discovery.vault (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+@Requires(property="micronaut.config-client.enabled",value="true",defaultValue="false") @Requires(property="oci.vault.config.enabled",value="true")
+@Configuration
+ package io.micronaut.oraclecloud.discovery.vault
+
+Classes related to using Oracle Cloud Vault as a distributed configuration client.
+
+Since:
+2.0.0
+Author:
+toddsharp
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
OracleCloudVault Client.
+
+
+
+
An Oracle Cloud Vault.
+
+
+
+
The Discovery Configuration class for Oracle Cloud Vault.
+
+
+
+
A ConfigurationClient
for Oracle Cloud Vault Configuration.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/package-tree.html
new file mode 100644
index 000000000..ef3e87a0d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/discovery/vault/package-tree.html
@@ -0,0 +1,78 @@
+
+
+
+
+io.micronaut.oraclecloud.discovery.vault Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/OciFunction.html b/3.9.1/api/io/micronaut/oraclecloud/function/OciFunction.html
new file mode 100644
index 000000000..7ccaa28e3
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/OciFunction.html
@@ -0,0 +1,274 @@
+
+
+
+
+OciFunction (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+AutoCloseable
+
+
+Direct Known Subclasses:
+HttpFunction
+
+
+
+Parent class that can be used for Oracle Cloud functions.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
OciFunction (io.micronaut.context.ApplicationContext applicationContext)
+
+
Construct a function with the given context.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
+
+
protected boolean
+
+
+
final @NonNull io.micronaut.context.ApplicationContext
+
+
+
protected @NonNull io.micronaut.context.ApplicationContextBuilder
+
+
+
Construct the application context with the given builder.
+
+
protected void
+
setup (com.fnproject.fn.api.RuntimeContext ctx)
+
+
Setup method that can be overridden by users to add customizations.
+
+
final void
+
+
+
Sets of the function and creates the application context.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OciFunction
+public OciFunction ()
+Default constructor. Uses a self managed application context.
+
+
+
+
+OciFunction
+public OciFunction (io.micronaut.context.ApplicationContext applicationContext)
+Construct a function with the given context.
+
+Parameters:
+applicationContext
- The application context
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+setupContext
+public final void setupContext (com.fnproject.fn.api.RuntimeContext ctx)
+Sets of the function and creates the application context.
+
+Parameters:
+ctx
- The application context.
+
+
+
+
+
+setup
+protected void setup (com.fnproject.fn.api.RuntimeContext ctx)
+Setup method that can be overridden by users to add customizations.
+
+Parameters:
+ctx
- The runtime context
+
+
+
+
+
+enableSharedJackson
+protected boolean enableSharedJackson ()
+
+Returns:
+Whether Micronaut's shared Jackson object mapper should be used.
+
+
+
+
+
+getApplicationContext
+@NonNull
+ public final @NonNull io.micronaut.context.ApplicationContext getApplicationContext ()
+
+Returns:
+The application context.
+
+
+
+
+
+newApplicationContextBuilder
+@NonNull
+ protected @NonNull io.micronaut.context.ApplicationContextBuilder newApplicationContextBuilder (com.fnproject.fn.api.RuntimeContext ctx)
+Construct the application context with the given builder.
+
+Parameters:
+ctx
- The context
+Returns:
+The builder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/FnMultiValueMap.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/FnMultiValueMap.html
new file mode 100644
index 000000000..b96b3cb81
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/FnMultiValueMap.html
@@ -0,0 +1,298 @@
+
+
+
+
+FnMultiValueMap (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.convert.ConversionServiceProvider
, io.micronaut.core.convert.value.ConvertibleMultiValues<String >
, io.micronaut.core.convert.value.ConvertibleValues<List <String >>
, io.micronaut.core.value.ValueResolver<CharSequence >
, Iterable <Map.Entry <String ,List <String >>>
+
+
+@Internal
+ public class FnMultiValueMap
+
extends Object
+implements io.micronaut.core.convert.value.ConvertibleMultiValues<String >
+Implementation for Project.fn of a multi value map.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
protected io.micronaut.core.convert.ConversionService
+
+
+
+
+
Fields inherited from interface io.micronaut.core.convert.value.ConvertibleValues
+EMPTY
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
+
get (CharSequence name,
+ io.micronaut.core.convert.ArgumentConversionContext<T> conversionContext)
+
+
+
+
+
+
+
+
void
+
+
+
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
Methods inherited from interface io.micronaut.core.convert.value.ConvertibleMultiValues
+forEach, forEachValue, getFirst, getFirst, getFirst, getFirst, getFirst, isEmpty, iterator
+
+
Methods inherited from interface io.micronaut.core.convert.value.ConvertibleValues
+asMap, asMap, asProperties, contains, getConversionService, getValue, getValueType, subMap, subMap, subMap
+
+
+
Methods inherited from interface io.micronaut.core.value.ValueResolver
+get, get, get
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+conversionService
+protected io.micronaut.core.convert.ConversionService conversionService
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+FnMultiValueMap
+public FnMultiValueMap (Map <String ,List <String >> map,
+ io.micronaut.core.convert.ConversionService conversionService)
+Default constructor.
+
+Parameters:
+map
- The target map. Never null
+conversionService
- The conversion service
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getAll
+
+
+Specified by:
+getAll
in interface io.micronaut.core.convert.value.ConvertibleMultiValues<String >
+
+
+
+
+
+get
+
+
+Specified by:
+get
in interface io.micronaut.core.convert.value.ConvertibleMultiValues<String >
+
+
+
+
+
+names
+
+
+Specified by:
+names
in interface io.micronaut.core.convert.value.ConvertibleValues<List <String >>
+
+
+
+
+
+values
+
+
+Specified by:
+values
in interface io.micronaut.core.convert.value.ConvertibleValues<List <String >>
+
+
+
+
+
+get
+public <T> Optional <T> get (CharSequence name,
+ io.micronaut.core.convert.ArgumentConversionContext<T> conversionContext)
+
+Specified by:
+get
in interface io.micronaut.core.value.ValueResolver<CharSequence >
+
+
+
+
+
+setConversionService
+public void setConversionService (@NonNull
+ @NonNull io.micronaut.core.convert.ConversionService conversionService)
+
+Parameters:
+conversionService
- The conversion service.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/HttpFunction.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/HttpFunction.html
new file mode 100644
index 000000000..06107d963
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/HttpFunction.html
@@ -0,0 +1,259 @@
+
+
+
+
+HttpFunction (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+AutoCloseable
+
+
+@Singleton
+ public class HttpFunction
+
extends OciFunction
+A parent HttpFunction for authoring Project.fn gateway functions.
+
+Since:
+1.0.0
+Author:
+graemerocher
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+
+
protected
+
HttpFunction (io.micronaut.context.ApplicationContext applicationContext)
+
+
Constructor for using a shared application context.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
final @NonNull io.micronaut.servlet.http.ServletHttpHandler<com.fnproject.fn.api.InputEvent,com.fnproject.fn.api.OutputEvent>
+
+
+
com.fnproject.fn.api.OutputEvent
+
handleRequest (com.fnproject.fn.api.httpgateway.HTTPGatewayContext gatewayContext,
+ com.fnproject.fn.api.InputEvent inputEvent)
+
+
Main entry point for Gateway functions for Project.fn.
+
+
protected final void
+
setup (com.fnproject.fn.api.RuntimeContext ctx)
+
+
Setup method that can be overridden by users to add customizations.
+
+
protected void
+
setupGateway (@NonNull com.fnproject.fn.api.RuntimeContext ctx)
+
+
Method that subclasses can override to customize gateway setup.
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+HttpFunction
+public HttpFunction ()
+Default constructor.
+
+
+
+
+HttpFunction
+@Inject
+ protected HttpFunction (io.micronaut.context.ApplicationContext applicationContext)
+Constructor for using a shared application context.
+
+Parameters:
+applicationContext
- The application context
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+setup
+protected final void setup (com.fnproject.fn.api.RuntimeContext ctx)
+
+Setup method that can be overridden by users to add customizations.
+
+Overrides:
+setup
in class OciFunction
+Parameters:
+ctx
- The runtime context
+
+
+
+
+
+setupGateway
+protected void setupGateway (@NonNull
+ @NonNull com.fnproject.fn.api.RuntimeContext ctx)
+Method that subclasses can override to customize gateway setup.
+
+Parameters:
+ctx
- The context
+
+
+
+
+
+getHttpHandler
+@NonNull
+ public final @NonNull io.micronaut.servlet.http.ServletHttpHandler<com.fnproject.fn.api.InputEvent,com.fnproject.fn.api.OutputEvent> getHttpHandler ()
+
+Returns:
+The HTTP handler.
+
+
+
+
+
+handleRequest
+public com.fnproject.fn.api.OutputEvent handleRequest (com.fnproject.fn.api.httpgateway.HTTPGatewayContext gatewayContext,
+ com.fnproject.fn.api.InputEvent inputEvent)
+Main entry point for Gateway functions for Project.fn.
+
+Parameters:
+gatewayContext
- The gateway context
+inputEvent
- The input event
+Returns:
+The output event
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/package-summary.html
new file mode 100644
index 000000000..304c2b6f4
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/package-summary.html
@@ -0,0 +1,101 @@
+
+
+
+
+io.micronaut.oraclecloud.function.http (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.function.http
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Implementation for Project.fn of a multi value map.
+
+
+
+
A parent HttpFunction for authoring Project.fn gateway functions.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/package-tree.html
new file mode 100644
index 000000000..34241a246
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/package-tree.html
@@ -0,0 +1,76 @@
+
+
+
+
+io.micronaut.oraclecloud.function.http Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.function.http.FnMultiValueMap (implements io.micronaut.core.convert.value.ConvertibleMultiValues<V>)
+io.micronaut.oraclecloud.function.OciFunction (implements java.lang.AutoCloseable )
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/test/FnHttpTest.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/test/FnHttpTest.html
new file mode 100644
index 000000000..5bbccedaf
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/test/FnHttpTest.html
@@ -0,0 +1,360 @@
+
+
+
+
+FnHttpTest (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+public final class FnHttpTest
+
extends Object
+Testing support for functions.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Concrete Methods
+
+
+
+
+
+
static <I> io.micronaut.http.HttpResponse<String >
+
+
+
Invoke a function via HTTP.
+
+
static <I> io.micronaut.http.HttpResponse<String >
+
+
+
Invoke a function via HTTP.
+
+
static <I> io.micronaut.http.HttpResponse<String >
+
invoke (io.micronaut.http.HttpRequest<I> request)
+
+
Invoke a function via HTTP.
+
+
static <I,
+O> io.micronaut.http.HttpResponse<O>
+
invoke (io.micronaut.http.HttpRequest<I> request,
+ io.micronaut.core.type.Argument<O> resultType)
+
+
Invoke a function via HTTP.
+
+
static <I,
+O> io.micronaut.http.HttpResponse<O>
+
invoke (io.micronaut.http.HttpRequest<I> request,
+ io.micronaut.core.type.Argument<O> resultType,
+ List <Class <?>> sharedClasses)
+
+
Invoke a function via HTTP.
+
+
static <I,
+O> io.micronaut.http.HttpResponse<O>
+
invoke (io.micronaut.http.HttpRequest<I> request,
+ Class <O> resultType)
+
+
Invoke a function via HTTP.
+
+
static <I,
+O> io.micronaut.http.HttpResponse<O>
+
invoke (io.micronaut.http.HttpRequest<I> request,
+ Class <O> resultType,
+ List <Class <?>> sharedClasses)
+
+
Invoke a function via HTTP.
+
+
static <I> io.micronaut.http.HttpResponse<String >
+
invoke (io.micronaut.http.HttpRequest<I> request,
+ List <Class <?>> sharedClasses)
+
+
Invoke a function via HTTP.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+FnHttpTest
+public FnHttpTest ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+invoke
+public static <I>
+
io.micronaut.http.HttpResponse<String > invoke (io.micronaut.http.HttpRequest<I> request)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The body type
+Parameters:
+request
- The request
+Returns:
+The result
+
+
+
+
+
+invoke
+public static <I>
+
io.micronaut.http.HttpResponse<String > invoke (io.micronaut.http.HttpRequest<I> request,
+ List <Class <?>> sharedClasses)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The body type
+Parameters:
+request
- The request
+sharedClasses
- optional classes to share between the test classloader and the FN classloader
+Returns:
+The result
+
+
+
+
+
+invoke
+public static <I>
+
io.micronaut.http.HttpResponse<String > invoke (io.micronaut.http.HttpMethod method,
+ String uri)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The body type
+Parameters:
+method
- The http method
+uri
- The uri
+Returns:
+The result
+
+
+
+
+
+invoke
+public static <I>
+
io.micronaut.http.HttpResponse<String > invoke (io.micronaut.http.HttpMethod method,
+ String uri,
+ List <Class <?>> sharedClasses)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The body type
+Parameters:
+method
- The http method
+uri
- The uri
+sharedClasses
- optional classes to share between the test classloader and the FN classloader
+Returns:
+The result
+
+
+
+
+
+invoke
+public static <I,
+O>
+
io.micronaut.http.HttpResponse<O> invoke (io.micronaut.http.HttpRequest<I> request,
+ Class <O> resultType)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The input type
+O
- The output type
+Parameters:
+request
- The request
+resultType
- The result type
+Returns:
+The response
+
+
+
+
+
+invoke
+public static <I,
+O>
+
io.micronaut.http.HttpResponse<O> invoke (io.micronaut.http.HttpRequest<I> request,
+ Class <O> resultType,
+ List <Class <?>> sharedClasses)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The input type
+O
- The output type
+Parameters:
+request
- The request
+resultType
- The result type
+sharedClasses
- optional classes to share between the test classloader and the FN classloader
+Returns:
+The response
+
+
+
+
+
+invoke
+public static <I,
+O>
+io.micronaut.http.HttpResponse<O> invoke (io.micronaut.http.HttpRequest<I> request,
+ io.micronaut.core.type.Argument<O> resultType)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The input type
+O
- The output type
+Parameters:
+request
- The request
+resultType
- The result type
+Returns:
+The response
+
+
+
+
+
+invoke
+public static <I,
+O>
+
io.micronaut.http.HttpResponse<O> invoke (io.micronaut.http.HttpRequest<I> request,
+ io.micronaut.core.type.Argument<O> resultType,
+ List <Class <?>> sharedClasses)
+Invoke a function via HTTP.
+
+Type Parameters:
+I
- The input type
+O
- The output type
+Parameters:
+request
- The request
+resultType
- The result type
+sharedClasses
- optional classes to share between the test classloader and the FN classloader
+Returns:
+The response
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/test/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/test/package-summary.html
new file mode 100644
index 000000000..619cb9e35
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/test/package-summary.html
@@ -0,0 +1,95 @@
+
+
+
+
+io.micronaut.oraclecloud.function.http.test (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.function.http.test
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Testing support for functions.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/http/test/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/function/http/test/package-tree.html
new file mode 100644
index 000000000..98bfc24c6
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/http/test/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.function.http.test Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.function.http.test.FnHttpTest
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/function/package-summary.html
new file mode 100644
index 000000000..2a031cdea
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/package-summary.html
@@ -0,0 +1,95 @@
+
+
+
+
+io.micronaut.oraclecloud.function (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.function
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Parent class that can be used for Oracle Cloud functions.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/function/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/function/package-tree.html
new file mode 100644
index 000000000..7c139a336
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/function/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.function Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/ManagedNettyHttpProvider.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/ManagedNettyHttpProvider.html
new file mode 100644
index 000000000..1329d2aba
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/ManagedNettyHttpProvider.html
@@ -0,0 +1,219 @@
+
+
+
+
+ManagedNettyHttpProvider (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.httpclient.netty.ManagedNettyHttpProvider
+
+
+
+All Implemented Interfaces:
+com.oracle.bmc.http.client.HttpProvider
+
+
+@Singleton
+@Internal
+ public class ManagedNettyHttpProvider
+
extends Object
+implements com.oracle.bmc.http.client.HttpProvider
+HttpProvider
implementation similar to
NettyHttpProvider
, but managed by an
+
ApplicationContext
.
+
+Since:
+3.0.0
+Author:
+Jonas Konrad
+
+
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface com.oracle.bmc.http.client.HttpProvider
+ADD_DEPENDENCY_SUGGESTION
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.http.client.Serializer
+
+
+
com.oracle.bmc.http.client.HttpClientBuilder
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+ManagedNettyHttpProvider
+@Inject
+ public ManagedNettyHttpProvider (io.micronaut.http.client.HttpClientRegistry<?> mnHttpClientRegistry,
+ @Named("blocking") @Nullable
+ @Nullable ExecutorService ioExecutor,
+ io.micronaut.serde.ObjectMapper jsonMapper,
+ OciSerdeConfiguration ociSerdeConfiguration,
+ OciSerializationConfiguration ociSerializationConfiguration)
+
+
+
+
+ManagedNettyHttpProvider
+public ManagedNettyHttpProvider (io.micronaut.http.client.HttpClient mnHttpClient,
+ ExecutorService ioExecutor)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+newBuilder
+public com.oracle.bmc.http.client.HttpClientBuilder newBuilder ()
+
+Specified by:
+newBuilder
in interface com.oracle.bmc.http.client.HttpProvider
+
+
+
+
+
+getSerializer
+public com.oracle.bmc.http.client.Serializer getSerializer ()
+
+Specified by:
+getSerializer
in interface com.oracle.bmc.http.client.HttpProvider
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/NettyClientProperties.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/NettyClientProperties.html
new file mode 100644
index 000000000..b4b45fb4b
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/NettyClientProperties.html
@@ -0,0 +1,153 @@
+
+
+
+
+NettyClientProperties (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.httpclient.netty.NettyClientProperties
+
+
+
+public final class NettyClientProperties
+
extends Object
+Client properties
+ specific to the netty client.
+
+Author:
+Jonas Konrad
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+
+
static final com.oracle.bmc.http.client.ClientProperty<String >
+
+
+
The Micronaut HTTP client service ID to use for this client.
+
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+SERVICE_ID
+public static final com.oracle.bmc.http.client.ClientProperty<String > SERVICE_ID
+The Micronaut HTTP client service ID to use for this client. The client is configured using
+ the micronaut.http.services.<service-id>.*
configuration properties. The default
+ service ID is "oci".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/NettyHttpProvider.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/NettyHttpProvider.html
new file mode 100644
index 000000000..963ad379f
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/NettyHttpProvider.html
@@ -0,0 +1,194 @@
+
+
+
+
+NettyHttpProvider (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+com.oracle.bmc.http.client.HttpProvider
+
+
+public final class NettyHttpProvider
+
extends Object
+implements com.oracle.bmc.http.client.HttpProvider
+Netty-based implementation of
HttpProvider
. This is only used for SPI
+ (
HttpProvider.getDefault()
), there is also
ManagedNettyHttpProvider
.
+
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface com.oracle.bmc.http.client.HttpProvider
+ADD_DEPENDENCY_SUGGESTION
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Construct a netty-based HttpProvider
.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.http.client.Serializer
+
+
+
com.oracle.bmc.http.client.HttpClientBuilder
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+NettyHttpProvider
+public NettyHttpProvider ()
+Construct a netty-based HttpProvider
.
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+newBuilder
+public com.oracle.bmc.http.client.HttpClientBuilder newBuilder ()
+
+Specified by:
+newBuilder
in interface com.oracle.bmc.http.client.HttpProvider
+
+
+
+
+
+getSerializer
+public com.oracle.bmc.http.client.Serializer getSerializer ()
+
+Specified by:
+getSerializer
in interface com.oracle.bmc.http.client.HttpProvider
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/package-summary.html
new file mode 100644
index 000000000..f3aad4926
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/package-summary.html
@@ -0,0 +1,105 @@
+
+
+
+
+io.micronaut.oraclecloud.httpclient.netty (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.httpclient.netty
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
HttpProvider
implementation similar to
NettyHttpProvider
, but managed by an
+
ApplicationContext
.
+
+
+
+
Client properties
+ specific to the netty client.
+
+
+
+
Netty-based implementation of HttpProvider
.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/package-tree.html
new file mode 100644
index 000000000..3ce759d92
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/package-tree.html
@@ -0,0 +1,73 @@
+
+
+
+
+io.micronaut.oraclecloud.httpclient.netty Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/OciSdkModelSerdeVisitor.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/OciSdkModelSerdeVisitor.html
new file mode 100644
index 000000000..fd28cec4d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/OciSdkModelSerdeVisitor.html
@@ -0,0 +1,278 @@
+
+
+
+
+OciSdkModelSerdeVisitor (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.order.Ordered
, io.micronaut.core.util.Toggleable
, io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+
+
+@Internal
+ public class OciSdkModelSerdeVisitor
+
extends Object
+implements io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+Type element visitor vising oci sdk models and enums.
+
+ Initiates the creation of serializable introspections for the models and enums. The introspections
+ are written to a separate .introspection package. The introspections need to be used with the
+ oraclecloud-httpclient-netty which defines the explicitly set property filter required for
+ correct serialization.
+
+Since:
+2.3.2
+Author:
+Andriy Dmytruk
+
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
+io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface io.micronaut.core.order.Ordered
+HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
int
+
+
+
@NonNull io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind
+
+
+
void
+
visitClass (io.micronaut.inject.ast.ClassElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+
void
+
visitConstructor (io.micronaut.inject.ast.ConstructorElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+
void
+
visitField (io.micronaut.inject.ast.FieldElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+
void
+
visitMethod (io.micronaut.inject.ast.MethodElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
Methods inherited from interface io.micronaut.core.util.Toggleable
+isEnabled
+
+
Methods inherited from interface io.micronaut.inject.visitor.TypeElementVisitor
+finish, getClassType, getElementType, getSupportedAnnotationNames, getSupportedOptions, start, visitEnumConstant
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OciSdkModelSerdeVisitor
+public OciSdkModelSerdeVisitor ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getOrder
+public int getOrder ()
+
+Specified by:
+getOrder
in interface io.micronaut.core.order.Ordered
+
+
+
+
+
+getVisitorKind
+@NonNull
+ public @NonNull io.micronaut.inject.visitor.TypeElementVisitor.VisitorKind getVisitorKind ()
+
+Specified by:
+getVisitorKind
in interface io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+
+
+
+
+
+visitClass
+public void visitClass (io.micronaut.inject.ast.ClassElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+Specified by:
+visitClass
in interface io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+
+
+
+
+
+visitField
+public void visitField (io.micronaut.inject.ast.FieldElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+Specified by:
+visitField
in interface io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+
+
+
+
+
+visitConstructor
+public void visitConstructor (io.micronaut.inject.ast.ConstructorElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+Specified by:
+visitConstructor
in interface io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+
+
+
+
+
+visitMethod
+public void visitMethod (io.micronaut.inject.ast.MethodElement element,
+ io.micronaut.inject.visitor.VisitorContext context)
+
+Specified by:
+visitMethod
in interface io.micronaut.inject.visitor.TypeElementVisitor<Object ,Object >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/package-summary.html
new file mode 100644
index 000000000..14f70b4e5
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/package-summary.html
@@ -0,0 +1,95 @@
+
+
+
+
+io.micronaut.oraclecloud.httpclient.netty.visitor (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.httpclient.netty.visitor
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Type element visitor vising oci sdk models and enums.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/package-tree.html
new file mode 100644
index 000000000..9be840c9e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/httpclient/netty/visitor/package-tree.html
@@ -0,0 +1,71 @@
+
+
+
+
+io.micronaut.oraclecloud.httpclient.netty.visitor Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor (implements io.micronaut.inject.visitor.TypeElementVisitor<C,E>)
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/logging/OracleCloudAppender.html b/3.9.1/api/io/micronaut/oraclecloud/logging/OracleCloudAppender.html
new file mode 100644
index 000000000..0dc8e5180
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/logging/OracleCloudAppender.html
@@ -0,0 +1,474 @@
+
+
+
+
+OracleCloudAppender (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
ch.qos.logback.core.spi.ContextAwareBase
+
ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
+
io.micronaut.oraclecloud.logging.OracleCloudAppender
+
+
+
+
+
+All Implemented Interfaces:
+ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>
, ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
, ch.qos.logback.core.spi.ContextAware
, ch.qos.logback.core.spi.FilterAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
, ch.qos.logback.core.spi.LifeCycle
+
+
+@Internal
+ public final class OracleCloudAppender
+extends ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
+implements ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+Oracle Cloud log appender for logback.
+
+Since:
+2.2.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+Field Summary
+
+
Fields inherited from class ch.qos.logback.core.AppenderBase
+name, started
+
+
Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
+context
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
void
+
addAppender (ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> newAppender)
+
+
void
+
+
+
protected void
+
append (ch.qos.logback.classic.spi.ILoggingEvent eventObject)
+
+
void
+
+
+
boolean
+
detachAppender (ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> appender)
+
+
boolean
+
+
+
ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+
int
+
+
+
long
+
+
+
int
+
+
+
+
+
+
+
+
+
+
+
+
boolean
+
isAttached (ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> appender)
+
+
Iterator <ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>>
+
+
+
void
+
setEncoder (ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> encoder)
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class ch.qos.logback.core.AppenderBase
+addFilter, clearAllFilters, doAppend, getCopyOfAttachedFiltersList, getFilterChainDecision, getName, isStarted, setName, toString
+
+
Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase
+addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
+
+
+
Methods inherited from interface ch.qos.logback.core.spi.ContextAware
+addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudAppender
+public OracleCloudAppender ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getQueueSize
+public int getQueueSize ()
+
+
+
+
+setQueueSize
+public void setQueueSize (int queueSize)
+
+
+
+
+getPublishPeriod
+public long getPublishPeriod ()
+
+
+
+
+setPublishPeriod
+public void setPublishPeriod (long publishPeriod)
+
+
+
+
+addBlackListLoggerName
+public void addBlackListLoggerName (String blackListLoggerName)
+
+
+
+
+
+
+
+setLogId
+public void setLogId (String logId)
+
+
+
+
+
+
+
+setSource
+public void setSource (String source)
+
+
+
+
+
+
+
+setSubject
+public void setSubject (String subject)
+
+
+
+
+getMaxBatchSize
+public int getMaxBatchSize ()
+
+
+
+
+setMaxBatchSize
+public void setMaxBatchSize (int maxBatchSize)
+
+
+
+
+
+
+
+setType
+public void setType (String type)
+
+
+
+
+start
+public void start ()
+
+Specified by:
+start
in interface ch.qos.logback.core.spi.LifeCycle
+Overrides:
+start
in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+stop
+public void stop ()
+
+Specified by:
+stop
in interface ch.qos.logback.core.spi.LifeCycle
+Overrides:
+stop
in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+append
+protected void append (ch.qos.logback.classic.spi.ILoggingEvent eventObject)
+
+Specified by:
+append
in class ch.qos.logback.core.AppenderBase<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+getEncoder
+public ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> getEncoder ()
+
+
+
+
+setEncoder
+public void setEncoder (ch.qos.logback.core.encoder.Encoder<ch.qos.logback.classic.spi.ILoggingEvent> encoder)
+
+
+
+
+addAppender
+public void addAppender (ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> newAppender)
+
+Specified by:
+addAppender
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+iteratorForAppenders
+public Iterator <ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent>> iteratorForAppenders ()
+
+Specified by:
+iteratorForAppenders
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+getAppender
+public ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> getAppender (String name)
+
+Specified by:
+getAppender
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+isAttached
+public boolean isAttached (ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> appender)
+
+Specified by:
+isAttached
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+detachAndStopAllAppenders
+public void detachAndStopAllAppenders ()
+
+Specified by:
+detachAndStopAllAppenders
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+detachAppender
+public boolean detachAppender (ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> appender)
+
+Specified by:
+detachAppender
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+detachAppender
+public boolean detachAppender (String name)
+
+Specified by:
+detachAppender
in interface ch.qos.logback.core.spi.AppenderAttachable<ch.qos.logback.classic.spi.ILoggingEvent>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/logging/OracleCloudJsonFormatter.html b/3.9.1/api/io/micronaut/oraclecloud/logging/OracleCloudJsonFormatter.html
new file mode 100644
index 000000000..840c2f423
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/logging/OracleCloudJsonFormatter.html
@@ -0,0 +1,178 @@
+
+
+
+
+OracleCloudJsonFormatter (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+ch.qos.logback.contrib.json.JsonFormatter
+
+
+@Internal
+ public final class OracleCloudJsonFormatter
+
extends Object
+implements ch.qos.logback.contrib.json.JsonFormatter
+OracleCloudJsonFormatter implementation of the JsonFormatter
.
+
+Since:
+2.2.0
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudJsonFormatter
+public OracleCloudJsonFormatter ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+toJsonString
+
+
+Specified by:
+toJsonString
in interface ch.qos.logback.contrib.json.JsonFormatter
+Throws:
+IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/logging/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/logging/package-summary.html
new file mode 100644
index 000000000..c2b55e474
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/logging/package-summary.html
@@ -0,0 +1,91 @@
+
+
+
+
+io.micronaut.oraclecloud.logging (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.logging
+
+Logging classes for integration with Oracle Cloud.
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Oracle Cloud log appender for logback.
+
+
+
+
OracleCloudJsonFormatter implementation of the JsonFormatter
.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/logging/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/logging/package-tree.html
new file mode 100644
index 000000000..07e2f4611
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/logging/package-tree.html
@@ -0,0 +1,80 @@
+
+
+
+
+io.micronaut.oraclecloud.logging Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+ch.qos.logback.core.spi.ContextAwareBase (implements ch.qos.logback.core.spi.ContextAware)
+
+ch.qos.logback.core.AppenderBase<E> (implements ch.qos.logback.core.Appender<E>)
+
+io.micronaut.oraclecloud.logging.OracleCloudAppender (implements ch.qos.logback.core.spi.AppenderAttachable<E>)
+
+
+
+
+io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter (implements ch.qos.logback.contrib.json.JsonFormatter)
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/MonitoringIngestionClient.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/MonitoringIngestionClient.html
new file mode 100644
index 000000000..630c2de9e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/MonitoringIngestionClient.html
@@ -0,0 +1,255 @@
+
+
+
+
+MonitoringIngestionClient (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.monitoring.MonitoringIngestionClient
+
+
+
+@Singleton
+ public class MonitoringIngestionClient
+
extends Object
+Oracle SDK provides MonitoringClient
that is constructed with default https://telemetry.<region>.oraclecloud.com
endpoint.
+ For sending metrics to the Oracle Cloud Monitoring service the MonitoringClient.postMetricData(PostMetricDataRequest)
is used
+ but the endpoint must be configured to https://telemetry-ingestion.<region>.oraclecloud.com
. This bean encapsulates creation
+ and configuration of the MonitoringClient
to use MonitoringClient.postMetricData(PostMetricDataRequest)
+ so the MonitoringClient
concerns are separated into two singleton beans.
+
+Since:
+1.2
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
MonitoringIngestionClient (com.oracle.bmc.ClientConfiguration clientConfiguration,
+ @Nullable com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ @Nullable com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory,
+ com.oracle.bmc.auth.RegionProvider regionProvider,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider)
+
+
MonitoringIngestionClient (com.oracle.bmc.ClientConfiguration clientConfiguration,
+ @Nullable com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ @Nullable com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory,
+ com.oracle.bmc.auth.RegionProvider regionProvider,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ @Nullable com.oracle.bmc.http.client.HttpProvider httpProvider)
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.monitoring.MonitoringClient
+
+
+
Gets the MonitoringClient
delegate.
+
+
com.oracle.bmc.monitoring.responses.PostMetricDataResponse
+
postMetricData (com.oracle.bmc.monitoring.requests.PostMetricDataRequest request)
+
+
Post PostMetricDataRequest
.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+MonitoringIngestionClient
+public MonitoringIngestionClient (com.oracle.bmc.ClientConfiguration clientConfiguration,
+ @Nullable
+ @Nullable com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ @Nullable
+ @Nullable com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory,
+ com.oracle.bmc.auth.RegionProvider regionProvider,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
+ @Nullable
+ @Nullable com.oracle.bmc.http.client.HttpProvider httpProvider)
+
+
+Parameters:
+clientConfiguration
- client configuration
+clientConfigurator
- client configurator
+requestSignerFactory
- request signer factory
+regionProvider
- region provider
+authenticationDetailsProvider
- authentication details provider
+httpProvider
- HTTP provider
+
+
+
+
+
+MonitoringIngestionClient
+@Deprecated
+public MonitoringIngestionClient (com.oracle.bmc.ClientConfiguration clientConfiguration,
+ @Nullable
+ @Nullable com.oracle.bmc.http.ClientConfigurator clientConfigurator,
+ @Nullable
+ @Nullable com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory,
+ com.oracle.bmc.auth.RegionProvider regionProvider,
+ com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider)
+Deprecated.
+
+
+
+
+Parameters:
+clientConfiguration
- client configuration
+clientConfigurator
- client configurator
+requestSignerFactory
- request signer factory
+regionProvider
- region provider
+authenticationDetailsProvider
- authentication details provider
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getDelegate
+public com.oracle.bmc.monitoring.MonitoringClient getDelegate ()
+Gets the MonitoringClient
delegate.
+
+Returns:
+monitoring client
+
+
+
+
+
+postMetricData
+public com.oracle.bmc.monitoring.responses.PostMetricDataResponse postMetricData (com.oracle.bmc.monitoring.requests.PostMetricDataRequest request)
+Post PostMetricDataRequest
.
+
+Parameters:
+request
- request
+Returns:
+response
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/OracleCloudMeterRegistryFactory.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/OracleCloudMeterRegistryFactory.html
new file mode 100644
index 000000000..851fd495a
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/OracleCloudMeterRegistryFactory.html
@@ -0,0 +1,225 @@
+
+
+
+
+OracleCloudMeterRegistryFactory (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+
+
+
+@Factory
+ public class OracleCloudMeterRegistryFactory
+
extends Object
+The OracleCloudMeterRegistryFactory that will configure and create an oracle cloud monitoring meter registry.
+
+Since:
+1.2
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
static final org.slf4j.Logger
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Creates OracleCloudMeterRegistryFactory.
+
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+LOG
+public static final org.slf4j.Logger LOG
+
+
+
+
+ORACLECLOUD_METRICS_CONFIG
+public static final String ORACLECLOUD_METRICS_CONFIG
+
+See Also:
+
+
+
+
+
+
+
+
+ORACLECLOUD_METRICS_ENABLED
+public static final String ORACLECLOUD_METRICS_ENABLED
+
+See Also:
+
+
+
+
+
+
+
+
+ORACLECLOUD_RAW_METRICS_ENABLED
+public static final String ORACLECLOUD_RAW_METRICS_ENABLED
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudMeterRegistryFactory
+public OracleCloudMeterRegistryFactory (TenancyIdProvider tenancyIdProvider,
+ io.micronaut.runtime.ApplicationConfiguration applicationConfiguration)
+Creates OracleCloudMeterRegistryFactory.
+
+Parameters:
+tenancyIdProvider
- tenancy id provider
+applicationConfiguration
- micronaut application configuration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudConfig.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudConfig.html
new file mode 100644
index 000000000..52eb1cb2d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudConfig.html
@@ -0,0 +1,326 @@
+
+
+
+
+OracleCloudConfig (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+All Superinterfaces:
+io.micrometer.core.instrument.config.MeterRegistryConfig
, io.micrometer.core.instrument.push.PushRegistryConfig
, io.micrometer.core.instrument.step.StepRegistryConfig
+
+
+public interface OracleCloudConfig
+extends io.micrometer.core.instrument.step.StepRegistryConfig
+
+
+Since:
+1.2
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Field Summary
+Fields
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Default Methods
+
+
+
+
+
+
+
+
+
Application name used as a default dimension for MetricDataDetails
.
+
+
default com.oracle.bmc.monitoring.model.PostMetricDataDetails.BatchAtomicity
+
+
+
default int
+
+
+
+
+
+
default boolean
+
+
+
Flag whether meter description should be sent to monitoring service.
+
+
+
+
+
+
+
+
+
+
+
A resource group is a custom string that can be used as a filter.
+
+
default io.micrometer.core.instrument.config.validate.Validated<?>
+
+
+
+
+
+
+
Methods inherited from interface io.micrometer.core.instrument.config.MeterRegistryConfig
+get, requireValid
+
+
Methods inherited from interface io.micrometer.core.instrument.push.PushRegistryConfig
+connectTimeout, enabled, numThreads, readTimeout, step
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+
+
+See Also:
+
+
+
+
+
+
+
+
+NAMESPACE_REGEX
+static final String NAMESPACE_REGEX
+
+See Also:
+
+
+
+
+
+
+
+
+NAMESPACE_PATTERN
+static final Pattern NAMESPACE_PATTERN
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+prefix
+
+
+Specified by:
+prefix
in interface io.micrometer.core.instrument.config.MeterRegistryConfig
+
+
+
+
+
+batchAtomicity
+default com.oracle.bmc.monitoring.model.PostMetricDataDetails.BatchAtomicity batchAtomicity ()
+
+Returns:
+batch atomicity behaviour
+
+
+
+
+
+applicationName
+default String applicationName ()
+Application name used as a default dimension for MetricDataDetails
.
+
+Returns:
+application name
+
+
+
+
+
+namespace
+
+
+Returns:
+metric namespace.
+
+
+
+
+
+compartmentId
+default String compartmentId ()
+
+Returns:
+metrics compartment id, if not provided then OCI SDK tenantId is used.
+
+
+
+
+
+resourceGroup
+default String resourceGroup ()
+A resource group is a custom string that can be used as a filter.
+
+Returns:
+resource group
+
+
+
+
+
+description
+default boolean description ()
+Flag whether meter description should be sent to monitoring service.
+
+Returns:
+description flag
+
+
+
+
+
+batchSize
+default int batchSize ()
+
+Specified by:
+batchSize
in interface io.micrometer.core.instrument.push.PushRegistryConfig
+Returns:
+maximum number of metrics sent in one request, defaults to 50.
+
+
+
+
+
+validate
+default io.micrometer.core.instrument.config.validate.Validated<?> validate ()
+
+Specified by:
+validate
in interface io.micrometer.core.instrument.config.MeterRegistryConfig
+Specified by:
+validate
in interface io.micrometer.core.instrument.push.PushRegistryConfig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudMeterRegistry.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudMeterRegistry.html
new file mode 100644
index 000000000..d6d7abb00
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudMeterRegistry.html
@@ -0,0 +1,269 @@
+
+
+
+
+OracleCloudMeterRegistry (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micrometer.core.instrument.MeterRegistry
+
io.micrometer.core.instrument.push.PushMeterRegistry
+
io.micrometer.core.instrument.step.StepMeterRegistry
+
io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMeterRegistry
+
+
+
+
+
+
+public class OracleCloudMeterRegistry
+extends io.micrometer.core.instrument.step.StepMeterRegistry
+StepMeterRegistry
for Oracle Cloud Monitoring that produces aggregated data.
+
+Since:
+1.2
+Author:
+Pavol Gressa
+
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from class io.micrometer.core.instrument.MeterRegistry
+io.micrometer.core.instrument.MeterRegistry.Config, io.micrometer.core.instrument.MeterRegistry.More
+
+
+
+
+
+Field Summary
+Fields
+
+
+
Fields inherited from class io.micrometer.core.instrument.MeterRegistry
+clock
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
protected List <com.oracle.bmc.monitoring.model.MetricDataDetails>
+
+
+
protected void
+
+
+
+
+
+
+
Methods inherited from class io.micrometer.core.instrument.step.StepMeterRegistry
+close, defaultHistogramConfig, newCounter, newDistributionSummary, newFunctionCounter, newFunctionTimer, newGauge, newLongTaskTimer, newMeter, newTimer, start, stop
+
+
Methods inherited from class io.micrometer.core.instrument.push.PushMeterRegistry
+getLastScheduledPublishStartTime, isPublishing, start, waitForInProgressScheduledPublish
+
+
Methods inherited from class io.micrometer.core.instrument.MeterRegistry
+clear, config, counter, counter, find, forEachMeter, gauge, gauge, gauge, gauge, gaugeCollectionSize, gaugeMapSize, get, getConventionName, getConventionTags, getMeters, isClosed, meterRegistrationFailed, more, newLongTaskTimer, newTimeGauge, remove, remove, removeByPreFilterId, summary, summary, timer, timer
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudMeterRegistry
+
+
+
+
+
+OracleCloudMeterRegistry
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getMetricData
+protected List <com.oracle.bmc.monitoring.model.MetricDataDetails> getMetricData ()
+
+Returns:
+list of all Meter
data transformed into MetricDataDetails
+
+
+
+
+
+getBaseTimeUnit
+
+
+Specified by:
+getBaseTimeUnit
in class io.micrometer.core.instrument.MeterRegistry
+
+
+
+
+
+publish
+protected void publish ()
+
+Specified by:
+publish
in class io.micrometer.core.instrument.push.PushMeterRegistry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudMetricsNamingConvention.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudMetricsNamingConvention.html
new file mode 100644
index 000000000..a229758c4
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudMetricsNamingConvention.html
@@ -0,0 +1,250 @@
+
+
+
+
+OracleCloudMetricsNamingConvention (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention
+
+
+
+All Implemented Interfaces:
+io.micrometer.core.instrument.config.NamingConvention
+
+
+public class OracleCloudMetricsNamingConvention
+
extends Object
+implements io.micrometer.core.instrument.config.NamingConvention
+NamingConvention
for Oracle Cloud Monitoring.
+
+Since:
+1.2
+Author:
+Pavol Gressa
+See Also:
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface io.micrometer.core.instrument.config.NamingConvention
+camelCase, dot, identity, slashes, snakeCase, upperCamelCase
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
name (String name,
+ io.micrometer.core.instrument.Meter.Type type,
+ String baseUnit)
+
+
A valid name value starts with an alphabetical character and includes only alphanumeric characters, dots,
+ underscores, hyphens, and dollar signs.
+
+
+
+
+
A valid dimension key includes only printable ASCII, excluding periods (.) and spaces.
+
+
+
+
+
A valid dimension value includes only Unicode characters.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
Methods inherited from interface io.micrometer.core.instrument.config.NamingConvention
+name
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudMetricsNamingConvention
+public OracleCloudMetricsNamingConvention ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+name
+public String name (String name,
+ io.micrometer.core.instrument.Meter.Type type,
+ @Nullable
+ String baseUnit)
+A valid name value starts with an alphabetical character and includes only alphanumeric characters, dots,
+ underscores, hyphens, and dollar signs. The `oci_` prefix is reserved. Avoid entering confidential information.
+
+Specified by:
+name
in interface io.micrometer.core.instrument.config.NamingConvention
+Parameters:
+name
- name
+type
- type
+baseUnit
- baseUnit
+Returns:
+sanitized name
+
+
+
+
+
+tagKey
+
+A valid dimension key includes only printable ASCII, excluding periods (.) and spaces. The character limit for
+ a dimension key is 256.
+
+Specified by:
+tagKey
in interface io.micrometer.core.instrument.config.NamingConvention
+Parameters:
+key
- key
+Returns:
+sanitized tag key
+
+
+
+
+
+tagValue
+
+A valid dimension value includes only Unicode characters. The character limit for a dimension value is 256.
+ Empty strings are not allowed for keys or values. Avoid entering confidential information.
+
+Specified by:
+tagValue
in interface io.micrometer.core.instrument.config.NamingConvention
+Parameters:
+value
- value
+Returns:
+sanitized tag value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudRawMeterRegistry.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudRawMeterRegistry.html
new file mode 100644
index 000000000..eb5bd104d
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/OracleCloudRawMeterRegistry.html
@@ -0,0 +1,328 @@
+
+
+
+
+OracleCloudRawMeterRegistry (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micrometer.core.instrument.MeterRegistry
+
io.micrometer.core.instrument.push.PushMeterRegistry
+
io.micrometer.core.instrument.step.StepMeterRegistry
+
io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudRawMeterRegistry
+
+
+
+
+
+
+public class OracleCloudRawMeterRegistry
+extends io.micrometer.core.instrument.step.StepMeterRegistry
+StepMeterRegistry
for Oracle Cloud Monitoring that produces raw data.
+
+Since:
+3.6
+Author:
+Nemanja Mikic
+
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from class io.micrometer.core.instrument.MeterRegistry
+io.micrometer.core.instrument.MeterRegistry.Config, io.micrometer.core.instrument.MeterRegistry.More
+
+
+
+
+
+Field Summary
+Fields
+
+
+
Fields inherited from class io.micrometer.core.instrument.MeterRegistry
+clock
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
+
+
+
protected List <com.oracle.bmc.monitoring.model.MetricDataDetails>
+
+
+
io.micrometer.core.instrument.Counter
+
newCounter (io.micrometer.core.instrument.Meter.Id id)
+
+
io.micrometer.core.instrument.DistributionSummary
+
newDistributionSummary (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ double scale)
+
+
io.micrometer.core.instrument.Timer
+
newTimer (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ io.micrometer.core.instrument.distribution.pause.PauseDetector pauseDetector)
+
+
protected void
+
+
+
+
+
+
+
Methods inherited from class io.micrometer.core.instrument.step.StepMeterRegistry
+close, defaultHistogramConfig, newFunctionCounter, newFunctionTimer, newGauge, newLongTaskTimer, newMeter, start, stop
+
+
Methods inherited from class io.micrometer.core.instrument.push.PushMeterRegistry
+getLastScheduledPublishStartTime, isPublishing, start, waitForInProgressScheduledPublish
+
+
Methods inherited from class io.micrometer.core.instrument.MeterRegistry
+clear, config, counter, counter, find, forEachMeter, gauge, gauge, gauge, gauge, gaugeCollectionSize, gaugeMapSize, get, getConventionName, getConventionTags, getMeters, isClosed, meterRegistrationFailed, more, newLongTaskTimer, newTimeGauge, remove, remove, removeByPreFilterId, summary, summary, timer, timer
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudRawMeterRegistry
+
+
+
+
+
+OracleCloudRawMeterRegistry
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+newTimer
+public io.micrometer.core.instrument.Timer newTimer (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ io.micrometer.core.instrument.distribution.pause.PauseDetector pauseDetector)
+
+Overrides:
+newTimer
in class io.micrometer.core.instrument.step.StepMeterRegistry
+Parameters:
+id
- The id that uniquely identifies the timer.
+distributionStatisticConfig
- Configuration for published distribution
+ statistics.
+pauseDetector
- The pause detector to use for coordinated omission
+ compensation.
+Returns:
+
+
+
+
+
+newCounter
+public io.micrometer.core.instrument.Counter newCounter (io.micrometer.core.instrument.Meter.Id id)
+
+Overrides:
+newCounter
in class io.micrometer.core.instrument.step.StepMeterRegistry
+Parameters:
+id
- The id that uniquely identifies the counter.
+Returns:
+
+
+
+
+
+newDistributionSummary
+public io.micrometer.core.instrument.DistributionSummary newDistributionSummary (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ double scale)
+
+Overrides:
+newDistributionSummary
in class io.micrometer.core.instrument.step.StepMeterRegistry
+Parameters:
+id
- The id that uniquely identifies the distribution summary.
+distributionStatisticConfig
- Configuration for published distribution
+ statistics.
+scale
- Multiply every recorded sample by this factor.
+Returns:
+
+
+
+
+
+getMetricData
+protected List <com.oracle.bmc.monitoring.model.MetricDataDetails> getMetricData ()
+
+
+
+
+getBaseTimeUnit
+
+
+Specified by:
+getBaseTimeUnit
in class io.micrometer.core.instrument.MeterRegistry
+
+
+
+
+
+publish
+protected void publish ()
+
+Specified by:
+publish
in class io.micrometer.core.instrument.push.PushMeterRegistry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/package-summary.html
new file mode 100644
index 000000000..3a0e88220
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/package-summary.html
@@ -0,0 +1,115 @@
+
+
+
+
+io.micronaut.oraclecloud.monitoring.micrometer (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.monitoring.micrometer
+
+
+
+
+
+
+
+
All Classes and Interfaces Interfaces Classes
+
+
+
+
+
+
+
+
+
StepMeterRegistry
for Oracle Cloud Monitoring that produces aggregated data.
+
+
+
+
NamingConvention
for Oracle Cloud Monitoring.
+
+
+
+
StepMeterRegistry
for Oracle Cloud Monitoring that produces raw data.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/package-tree.html
new file mode 100644
index 000000000..1428ae26e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/micrometer/package-tree.html
@@ -0,0 +1,103 @@
+
+
+
+
+io.micronaut.oraclecloud.monitoring.micrometer Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micrometer.core.instrument.MeterRegistry
+
+io.micrometer.core.instrument.push.PushMeterRegistry
+
+io.micrometer.core.instrument.step.StepMeterRegistry
+
+
+
+
+
+
+io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention (implements io.micrometer.core.instrument.config.NamingConvention)
+
+
+
+
+
+Interface Hierarchy
+
+io.micrometer.core.instrument.config.MeterRegistryConfig
+
+io.micrometer.core.instrument.push.PushRegistryConfig
+
+io.micrometer.core.instrument.step.StepRegistryConfig
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/package-summary.html
new file mode 100644
index 000000000..0e64bae0e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/package-summary.html
@@ -0,0 +1,101 @@
+
+
+
+
+io.micronaut.oraclecloud.monitoring (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.monitoring
+
+
+
+
+
+
+
+
Classes
+
+
+
+
+
+
Oracle SDK provides MonitoringClient
that is constructed with default https://telemetry.<region>.oraclecloud.com
endpoint.
+
+
+
+
The OracleCloudMeterRegistryFactory that will configure and create an oracle cloud monitoring meter registry.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/package-tree.html
new file mode 100644
index 000000000..c6b0c29bb
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/package-tree.html
@@ -0,0 +1,72 @@
+
+
+
+
+io.micronaut.oraclecloud.monitoring Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudCounter.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudCounter.html
new file mode 100644
index 000000000..1dbc5801e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudCounter.html
@@ -0,0 +1,222 @@
+
+
+
+
+OracleCloudCounter (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micrometer.core.instrument.AbstractMeter
+
io.micrometer.core.instrument.step.StepCounter
+
io.micronaut.oraclecloud.monitoring.primitives.OracleCloudCounter
+
+
+
+
+
+All Implemented Interfaces:
+io.micrometer.core.instrument.Counter
, io.micrometer.core.instrument.Meter
, OracleCloudDatapointProducer
+
+
+@Internal
+ public final class OracleCloudCounter
+
extends io.micrometer.core.instrument.step.StepCounter
+implements OracleCloudDatapointProducer
+A StepCounter
that tracks list of raw Datapoint
.
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Counter
+io.micrometer.core.instrument.Counter.Builder
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter
+io.micrometer.core.instrument.Meter.Builder, io.micrometer.core.instrument.Meter.Id, io.micrometer.core.instrument.Meter.MeterProvider<T extends io.micrometer.core.instrument.Meter>, io.micrometer.core.instrument.Meter.Type
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
OracleCloudCounter (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.Clock clock,
+ long stepMillis)
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
List <com.oracle.bmc.monitoring.model.Datapoint>
+
+
+
Returns list of datapoints that will be sent.
+
+
void
+
+
+
+
+
+
+
Methods inherited from class io.micrometer.core.instrument.step.StepCounter
+_closingRollover, count
+
+
Methods inherited from class io.micrometer.core.instrument.AbstractMeter
+equals, getId, hashCode
+
+
+
Methods inherited from interface io.micrometer.core.instrument.Counter
+increment, measure
+
+
Methods inherited from interface io.micrometer.core.instrument.Meter
+close, getId, match, use
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudCounter
+public OracleCloudCounter (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.Clock clock,
+ long stepMillis)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+increment
+public void increment (double amount)
+
+Specified by:
+increment
in interface io.micrometer.core.instrument.Counter
+Overrides:
+increment
in class io.micrometer.core.instrument.step.StepCounter
+
+
+
+
+
+getDatapoints
+public List <com.oracle.bmc.monitoring.model.Datapoint> getDatapoints ()
+
+Returns list of datapoints that will be sent.
+
+Specified by:
+getDatapoints
in interface OracleCloudDatapointProducer
+Returns:
+list of Datapoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudDatapointProducer.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudDatapointProducer.html
new file mode 100644
index 000000000..dda375f83
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudDatapointProducer.html
@@ -0,0 +1,153 @@
+
+
+
+
+OracleCloudDatapointProducer (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter
+io.micrometer.core.instrument.Meter.Builder, io.micrometer.core.instrument.Meter.Id, io.micrometer.core.instrument.Meter.MeterProvider<T extends io.micrometer.core.instrument.Meter>, io.micrometer.core.instrument.Meter.Type
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods
+
+
+
+
+
+
List <com.oracle.bmc.monitoring.model.Datapoint>
+
+
+
Returns list of datapoints that will be sent.
+
+
+
+
+
+
Methods inherited from interface io.micrometer.core.instrument.Meter
+close, getId, match, measure, use
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getDatapoints
+List <com.oracle.bmc.monitoring.model.Datapoint> getDatapoints ()
+Returns list of datapoints that will be sent.
+
+Returns:
+list of Datapoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudDistributionSummary.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudDistributionSummary.html
new file mode 100644
index 000000000..ae8d4e074
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudDistributionSummary.html
@@ -0,0 +1,242 @@
+
+
+
+
+OracleCloudDistributionSummary (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micrometer.core.instrument.AbstractMeter
+
io.micrometer.core.instrument.AbstractDistributionSummary
+
io.micrometer.core.instrument.step.StepDistributionSummary
+
io.micronaut.oraclecloud.monitoring.primitives.OracleCloudDistributionSummary
+
+
+
+
+
+
+All Implemented Interfaces:
+io.micrometer.core.instrument.distribution.HistogramSupport
, io.micrometer.core.instrument.DistributionSummary
, io.micrometer.core.instrument.Meter
, OracleCloudDatapointProducer
+
+
+public class OracleCloudDistributionSummary
+
extends io.micrometer.core.instrument.step.StepDistributionSummary
+implements OracleCloudDatapointProducer
+A StepDistributionSummary
that tracks list of raw Datapoint
.
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.DistributionSummary
+io.micrometer.core.instrument.DistributionSummary.Builder
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter
+io.micrometer.core.instrument.Meter.Builder, io.micrometer.core.instrument.Meter.Id, io.micrometer.core.instrument.Meter.MeterProvider<T extends io.micrometer.core.instrument.Meter>, io.micrometer.core.instrument.Meter.Type
+
+
+
+
+
+Field Summary
+
+
Fields inherited from class io.micrometer.core.instrument.AbstractDistributionSummary
+histogram
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
OracleCloudDistributionSummary (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.Clock clock,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ double scale,
+ long stepMillis,
+ boolean supportsAggregablePercentiles)
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
List <com.oracle.bmc.monitoring.model.Datapoint>
+
+
+
Returns list of datapoints that will be sent.
+
+
protected void
+
+
+
+
+
+
+
Methods inherited from class io.micrometer.core.instrument.step.StepDistributionSummary
+_closingRollover, count, max, measure, totalAmount
+
+
Methods inherited from class io.micrometer.core.instrument.AbstractDistributionSummary
+defaultHistogram, record, takeSnapshot
+
+
Methods inherited from class io.micrometer.core.instrument.AbstractMeter
+equals, getId, hashCode
+
+
+
Methods inherited from interface io.micrometer.core.instrument.DistributionSummary
+histogramCountAtValue, mean, percentile
+
+
Methods inherited from interface io.micrometer.core.instrument.distribution.HistogramSupport
+takeSnapshot
+
+
Methods inherited from interface io.micrometer.core.instrument.Meter
+close, getId, match, use
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudDistributionSummary
+public OracleCloudDistributionSummary (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.Clock clock,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ double scale,
+ long stepMillis,
+ boolean supportsAggregablePercentiles)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+recordNonNegative
+protected void recordNonNegative (double amount)
+
+Overrides:
+recordNonNegative
in class io.micrometer.core.instrument.step.StepDistributionSummary
+
+
+
+
+
+getDatapoints
+public List <com.oracle.bmc.monitoring.model.Datapoint> getDatapoints ()
+
+Returns list of datapoints that will be sent.
+
+Specified by:
+getDatapoints
in interface OracleCloudDatapointProducer
+Returns:
+list of Datapoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudTimer.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudTimer.html
new file mode 100644
index 000000000..13317b2ca
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/OracleCloudTimer.html
@@ -0,0 +1,246 @@
+
+
+
+
+OracleCloudTimer (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micrometer.core.instrument.AbstractMeter
+
io.micrometer.core.instrument.AbstractTimer
+
io.micrometer.core.instrument.step.StepTimer
+
io.micronaut.oraclecloud.monitoring.primitives.OracleCloudTimer
+
+
+
+
+
+
+All Implemented Interfaces:
+io.micrometer.core.instrument.distribution.HistogramSupport
, io.micrometer.core.instrument.Meter
, io.micrometer.core.instrument.Timer
, OracleCloudDatapointProducer
+
+
+
+A StepTimer
that tracks list of raw Datapoint
.
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter
+io.micrometer.core.instrument.Meter.Builder, io.micrometer.core.instrument.Meter.Id, io.micrometer.core.instrument.Meter.MeterProvider<T extends io.micrometer.core.instrument.Meter>, io.micrometer.core.instrument.Meter.Type
+
+
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Timer
+io.micrometer.core.instrument.Timer.Builder, io.micrometer.core.instrument.Timer.ResourceSample, io.micrometer.core.instrument.Timer.Sample
+
+
+
+
+
+Field Summary
+
+
Fields inherited from class io.micrometer.core.instrument.AbstractTimer
+clock, histogram
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
OracleCloudTimer (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.Clock clock,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ io.micrometer.core.instrument.distribution.pause.PauseDetector pauseDetector,
+ TimeUnit baseTimeUnit,
+ long stepDurationMillis,
+ boolean supportsAggregablePercentiles)
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
List <com.oracle.bmc.monitoring.model.Datapoint>
+
+
+
Returns list of datapoints that will be sent.
+
+
protected void
+
+
+
+
+
+
+
Methods inherited from class io.micrometer.core.instrument.step.StepTimer
+_closingRollover, count, max, totalTime
+
+
Methods inherited from class io.micrometer.core.instrument.AbstractTimer
+baseTimeUnit, close, defaultHistogram, record, record, record, record, record, record, record, recordCallable, takeSnapshot
+
+
Methods inherited from class io.micrometer.core.instrument.AbstractMeter
+equals, getId, hashCode
+
+
+
Methods inherited from interface io.micrometer.core.instrument.distribution.HistogramSupport
+takeSnapshot
+
+
Methods inherited from interface io.micrometer.core.instrument.Meter
+close, getId, match, use
+
+
Methods inherited from interface io.micrometer.core.instrument.Timer
+histogramCountAtValue, mean, measure, percentile, record, wrap, wrap, wrap
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OracleCloudTimer
+public OracleCloudTimer (io.micrometer.core.instrument.Meter.Id id,
+ io.micrometer.core.instrument.Clock clock,
+ io.micrometer.core.instrument.distribution.DistributionStatisticConfig distributionStatisticConfig,
+ io.micrometer.core.instrument.distribution.pause.PauseDetector pauseDetector,
+ TimeUnit baseTimeUnit,
+ long stepDurationMillis,
+ boolean supportsAggregablePercentiles)
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+recordNonNegative
+protected void recordNonNegative (long amount,
+ TimeUnit unit)
+
+Overrides:
+recordNonNegative
in class io.micrometer.core.instrument.step.StepTimer
+
+
+
+
+
+getDatapoints
+public List <com.oracle.bmc.monitoring.model.Datapoint> getDatapoints ()
+
+Returns list of datapoints that will be sent.
+
+Specified by:
+getDatapoints
in interface OracleCloudDatapointProducer
+Returns:
+list of Datapoint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/package-summary.html
new file mode 100644
index 000000000..68fae7e11
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/package-summary.html
@@ -0,0 +1,115 @@
+
+
+
+
+io.micronaut.oraclecloud.monitoring.primitives (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.monitoring.primitives
+
+
+
+
+
+
+
+
All Classes and Interfaces Interfaces Classes
+
+
+
+
+
+
+
A StepCounter
that tracks list of raw Datapoint
.
+
+
+
+
A Meter that collects raw Datapoint
.
+
+
+
+
A StepDistributionSummary
that tracks list of raw Datapoint
.
+
+
+
+
A StepTimer
that tracks list of raw Datapoint
.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/package-tree.html
new file mode 100644
index 000000000..5aeef4446
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/monitoring/primitives/package-tree.html
@@ -0,0 +1,107 @@
+
+
+
+
+io.micronaut.oraclecloud.monitoring.primitives Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micrometer.core.instrument.AbstractMeter (implements io.micrometer.core.instrument.Meter)
+
+io.micrometer.core.instrument.AbstractDistributionSummary (implements io.micrometer.core.instrument.DistributionSummary)
+
+io.micrometer.core.instrument.step.StepDistributionSummary
+
+
+
+
+io.micrometer.core.instrument.AbstractTimer (implements io.micrometer.core.instrument.Timer)
+
+io.micrometer.core.instrument.step.StepTimer
+
+
+
+
+io.micrometer.core.instrument.step.StepCounter (implements io.micrometer.core.instrument.Counter)
+
+
+
+
+
+
+
+
+
+Interface Hierarchy
+
+io.micrometer.core.instrument.Meter
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeHttpClientConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeHttpClientConfiguration.html
new file mode 100644
index 000000000..66f54e471
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeHttpClientConfiguration.html
@@ -0,0 +1,191 @@
+
+
+
+
+OkeHttpClientConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.http.client.HttpClientConfiguration
+
io.micronaut.http.client.DefaultHttpClientConfiguration
+
io.micronaut.oraclecloud.oke.workload.identity.OkeHttpClientConfiguration
+
+
+
+
+
+@ConfigurationProperties("micronaut.http.oci-oke.client")
+ public class OkeHttpClientConfiguration
+extends io.micronaut.http.client.DefaultHttpClientConfiguration
+The HTTP client configuration for OKE Workload Identity client.
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from class io.micronaut.http.client.DefaultHttpClientConfiguration
+io.micronaut.http.client.DefaultHttpClientConfiguration.DefaultConnectionPoolConfiguration, io.micronaut.http.client.DefaultHttpClientConfiguration.DefaultWebSocketCompressionConfiguration
+
+
Nested classes/interfaces inherited from class io.micronaut.http.client.HttpClientConfiguration
+io.micronaut.http.client.HttpClientConfiguration.ConnectionPoolConfiguration, io.micronaut.http.client.HttpClientConfiguration.WebSocketCompressionConfiguration
+
+
+
+
+
+Field Summary
+Fields
+
+
+
Fields inherited from class io.micronaut.http.client.HttpClientConfiguration
+DEFAULT_ALLOW_BLOCK_EVENT_LOOP, DEFAULT_CONNECTION_POOL_IDLE_TIMEOUT_SECONDS, DEFAULT_EXCEPTION_ON_ERROR_STATUS, DEFAULT_FOLLOW_REDIRECTS, DEFAULT_MAX_CONTENT_LENGTH, DEFAULT_READ_IDLE_TIMEOUT_MINUTES, DEFAULT_READ_TIMEOUT_SECONDS, DEFAULT_SHUTDOWN_QUIET_PERIOD_MILLISECONDS, DEFAULT_SHUTDOWN_TIMEOUT_MILLISECONDS
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
Methods inherited from class io.micronaut.http.client.DefaultHttpClientConfiguration
+getConnectionPoolConfiguration, getWebSocketCompressionConfiguration, setClientSslConfiguration
+
+
Methods inherited from class io.micronaut.http.client.HttpClientConfiguration
+getAlpnModes, getChannelOptions, getConnectionPoolIdleTimeout, getConnectTimeout, getConnectTtl, getDefaultCharset, getEventLoopGroup, getHttpVersion, getLoggerName, getLogLevel, getMaxContentLength, getNumOfThreads, getPlaintextMode, getProxyAddress, getProxyPassword, getProxySelector, getProxyType, getProxyUsername, getReadIdleTimeout, getReadTimeout, getShutdownQuietPeriod, getShutdownTimeout, getSslConfiguration, getThreadFactory, isAllowBlockEventLoop, isExceptionOnErrorStatus, isFollowRedirects, resolveProxy, setAllowBlockEventLoop, setAlpnModes, setChannelOptions, setConnectionPoolIdleTimeout, setConnectTimeout, setConnectTtl, setDefaultCharset, setEventLoopGroup, setExceptionOnErrorStatus, setFollowRedirects, setHttpVersion, setLoggerName, setLogLevel, setMaxContentLength, setNumOfThreads, setPlaintextMode, setProxyAddress, setProxyPassword, setProxySelector, setProxyType, setProxyUsername, setReadIdleTimeout, setReadTimeout, setShutdownQuietPeriod, setShutdownTimeout, setSslConfiguration, setThreadFactory
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Field Details
+
+
+
+PREFIX
+public static final String PREFIX
+
+See Also:
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OkeHttpClientConfiguration
+public OkeHttpClientConfiguration ()
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeWorkloadIdentityConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeWorkloadIdentityConfiguration.html
new file mode 100644
index 000000000..c083d1574
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeWorkloadIdentityConfiguration.html
@@ -0,0 +1,197 @@
+
+
+
+
+OkeWorkloadIdentityConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration
+
+
+
+All Implemented Interfaces:
+io.micronaut.core.util.Toggleable
+
+
+@ConfigurationProperties("oci.config.oke-workload-identity")
+@Requires(property="oci.config.oke-workload-identity.enabled",
+ value="true")
+ public class OkeWorkloadIdentityConfiguration
+
extends Object
+implements io.micronaut.core.util.Toggleable
+Allows configuration of the OkeWorkloadIdentityAuthenticationDetailsProvider
.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
com.oracle.bmc.auth.okeworkloadidentity.OkeWorkloadIdentityAuthenticationDetailsProvider.OkeWorkloadIdentityAuthenticationDetailsProviderBuilder
+
+
+
boolean
+
+
+
void
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OkeWorkloadIdentityConfiguration
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isEnabled
+public boolean isEnabled ()
+
+Specified by:
+isEnabled
in interface io.micronaut.core.util.Toggleable
+
+
+
+
+
+setEnabled
+public void setEnabled (boolean enabled)
+
+Parameters:
+enabled
- Sets whether to enable instance principal authentication
+
+
+
+
+
+getBuilder
+public com.oracle.bmc.auth.okeworkloadidentity.OkeWorkloadIdentityAuthenticationDetailsProvider.OkeWorkloadIdentityAuthenticationDetailsProviderBuilder getBuilder ()
+
+Returns:
+The builder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeWorkloadIdentityFactory.html b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeWorkloadIdentityFactory.html
new file mode 100644
index 000000000..7c51f2a34
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/OkeWorkloadIdentityFactory.html
@@ -0,0 +1,196 @@
+
+
+
+
+OkeWorkloadIdentityFactory (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+java.lang.Object
+
io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityFactory
+
+
+
+@Factory
+ public class OkeWorkloadIdentityFactory
+
extends Object
+Sets up core beans for integration with Oracle cloud clients. The following beans are exposed:
+
+
+ AuthenticationDetailsProvider
+ ClientConfiguration.ClientConfigurationBuilder
+ ClientConfiguration
+
+
+See Also:
+
+
+ConfigFileAuthenticationDetailsProvider
+ResourcePrincipalAuthenticationDetailsProvider
+SimpleAuthenticationDetailsProvider
+
+
+
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Concrete Methods
+
+
+
+
+
+
protected com.oracle.bmc.auth.okeworkloadidentity.OkeWorkloadIdentityAuthenticationDetailsProvider
+
+
+
Configures a OkeWorkloadIdentityAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the specified by the user with oci.config.use-instance-principal
.
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OkeWorkloadIdentityFactory
+public OkeWorkloadIdentityFactory ()
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+okeWorkloadIdentityAuthenticationDetailsProvider
+
+Configures a OkeWorkloadIdentityAuthenticationDetailsProvider
if no other AuthenticationDetailsProvider
is present and
+ the specified by the user with oci.config.use-instance-principal
.
+
+Parameters:
+okeWorkloadIdentityConfiguration
- The configuration
+Returns:
+The OkeWorkloadIdentityAuthenticationDetailsProvider
.
+See Also:
+
+
+OkeWorkloadIdentityAuthenticationDetailsProvider
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/package-summary.html
new file mode 100644
index 000000000..648e9852a
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/package-summary.html
@@ -0,0 +1,92 @@
+
+
+
+
+io.micronaut.oraclecloud.oke.workload.identity (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.oke.workload.identity
+
+
+
+
+
Classes
+
+
+
+
+
+
The HTTP client configuration for OKE Workload Identity client.
+
+
+
+
Allows configuration of the OkeWorkloadIdentityAuthenticationDetailsProvider
.
+
+
+
+
Sets up core beans for integration with Oracle cloud clients.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/package-tree.html
new file mode 100644
index 000000000..37f9bd554
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/oke/workload/identity/package-tree.html
@@ -0,0 +1,81 @@
+
+
+
+
+io.micronaut.oraclecloud.oke.workload.identity Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.http.client.HttpClientConfiguration
+
+io.micronaut.http.client.DefaultHttpClientConfiguration
+
+
+
+
+io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration (implements io.micronaut.core.util.Toggleable)
+io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityFactory
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/serde/OciSdkMicronautSerializer.html b/3.9.1/api/io/micronaut/oraclecloud/serde/OciSdkMicronautSerializer.html
new file mode 100644
index 000000000..3ba8f9a74
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/serde/OciSdkMicronautSerializer.html
@@ -0,0 +1,244 @@
+
+
+
+
+OciSdkMicronautSerializer (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+All Implemented Interfaces:
+com.oracle.bmc.http.client.Serializer
+
+
+@Internal
+ public final class OciSdkMicronautSerializer
+
extends Object
+implements com.oracle.bmc.http.client.Serializer
+Implementation of
Serializer
based on micronaut serde using
ObjectMapper
.
+
+ Use
getDefaultSerializer()
method to get the default implementation
+ configured for use inside an Oracle Cloud SDK HTTP client.
+
+
+
+
+
+
+Constructor Summary
+Constructors
+
+
+
+
+
+
Create Serializer from micronaut serde ObjectMapper
.
+
+
+
+
+
+
+
+Method Summary
+
+
All Methods Static Methods Instance Methods Concrete Methods
+
+
+
+
+
+
static io.micronaut.serde.ObjectMapper
+
+
+
static com.oracle.bmc.http.client.Serializer
+
+
+
<T> T
+
+
+
<T> T
+
+
+
+
+
+
+
+
+
+
Methods inherited from class java.lang.Object
+
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
+
+
+
+
+
+
+
+
+
+Constructor Details
+
+
+
+OciSdkMicronautSerializer
+public OciSdkMicronautSerializer (io.micronaut.json.JsonMapper objectMapper)
+Create Serializer from micronaut serde ObjectMapper
.
+
+Parameters:
+objectMapper
- the object mapper
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+readValue
+
+
+Specified by:
+readValue
in interface com.oracle.bmc.http.client.Serializer
+Throws:
+IOException
+
+
+
+
+
+readValue
+
+
+Specified by:
+readValue
in interface com.oracle.bmc.http.client.Serializer
+Throws:
+IOException
+
+
+
+
+
+writeValueAsString
+
+
+Specified by:
+writeValueAsString
in interface com.oracle.bmc.http.client.Serializer
+Throws:
+IOException
+
+
+
+
+
+getDefaultObjectMapper
+public static io.micronaut.serde.ObjectMapper getDefaultObjectMapper ()
+
+Returns:
+The implementation of object mapper configured for oci java sdk
+
+
+
+
+
+getDefaultSerializer
+public static com.oracle.bmc.http.client.Serializer getDefaultSerializer ()
+
+Returns:
+The implementation of serializer configured for oci java sdk
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/serde/OciSerdeConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/serde/OciSerdeConfiguration.html
new file mode 100644
index 000000000..b3ba36942
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/serde/OciSerdeConfiguration.html
@@ -0,0 +1,158 @@
+
+
+
+
+OciSerdeConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+All Superinterfaces:
+io.micronaut.serde.config.SerdeConfiguration
+
+
+@ConfigurationProperties("oci.serde")
+@Bean(typed=OciSerdeConfiguration.class )
+@Internal
+ public interface OciSerdeConfiguration
+extends io.micronaut.serde.config.SerdeConfiguration
+
+
+
+
+
+
+Nested Class Summary
+
+
Nested classes/interfaces inherited from interface io.micronaut.serde.config.SerdeConfiguration
+io.micronaut.serde.config.SerdeConfiguration.NumericTimeUnit, io.micronaut.serde.config.SerdeConfiguration.TimeShape
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface io.micronaut.serde.config.SerdeConfiguration
+DEFAULT_INET_ADDRESS_AS_NUMERIC, PREFIX
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods
+
+
+
+
Methods inherited from interface io.micronaut.serde.config.SerdeConfiguration
+getDateFormat, getIncludedIntrospectionPackages, getLocale, getMaximumNestingDepth, getNumericTimeUnit, getTimeWriteShape, getTimeZone, isInetAddressAsNumeric
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+isWriteBinaryAsArray
+@Bindable(defaultValue="false")
+ boolean isWriteBinaryAsArray ()
+
+Specified by:
+isWriteBinaryAsArray
in interface io.micronaut.serde.config.SerdeConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/serde/OciSerializationConfiguration.html b/3.9.1/api/io/micronaut/oraclecloud/serde/OciSerializationConfiguration.html
new file mode 100644
index 000000000..eebe53cbc
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/serde/OciSerializationConfiguration.html
@@ -0,0 +1,149 @@
+
+
+
+
+OciSerializationConfiguration (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+All Superinterfaces:
+io.micronaut.serde.config.SerializationConfiguration
+
+
+@ConfigurationProperties("oci.serde.serialization")
+@Bean(typed=OciSerializationConfiguration.class )
+@Internal
+ public interface OciSerializationConfiguration
+extends io.micronaut.serde.config.SerializationConfiguration
+
+
+
+
+
+
+Field Summary
+
+
Fields inherited from interface io.micronaut.serde.config.SerializationConfiguration
+PREFIX
+
+
+
+
+
+Method Summary
+
+
All Methods Instance Methods Abstract Methods
+
+
+
+
+
+
io.micronaut.serde.config.annotation.SerdeConfig.SerInclude
+
+
+
+
+
+
+
Methods inherited from interface io.micronaut.serde.config.SerializationConfiguration
+isAlwaysSerializeErrorsAsList
+
+
+
+
+
+
+
+
+
+Method Details
+
+
+
+getInclusion
+@Bindable(defaultValue="NON_NULL")
+ io.micronaut.serde.config.annotation.SerdeConfig.SerInclude getInclusion ()
+
+Specified by:
+getInclusion
in interface io.micronaut.serde.config.SerializationConfiguration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/serde/package-summary.html b/3.9.1/api/io/micronaut/oraclecloud/serde/package-summary.html
new file mode 100644
index 000000000..5ce6e673e
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/serde/package-summary.html
@@ -0,0 +1,94 @@
+
+
+
+
+io.micronaut.oraclecloud.serde (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+package io.micronaut.oraclecloud.serde
+
+
+
+
+
All Classes and Interfaces Interfaces Classes
+
+
+
+
+
+
+
Implementation of Serializer
based on micronaut serde using ObjectMapper
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/io/micronaut/oraclecloud/serde/package-tree.html b/3.9.1/api/io/micronaut/oraclecloud/serde/package-tree.html
new file mode 100644
index 000000000..747db21e1
--- /dev/null
+++ b/3.9.1/api/io/micronaut/oraclecloud/serde/package-tree.html
@@ -0,0 +1,86 @@
+
+
+
+
+io.micronaut.oraclecloud.serde Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+Interface Hierarchy
+
+io.micronaut.serde.config.SerdeConfiguration
+
+
+io.micronaut.serde.config.SerializationConfiguration
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/api/jquery-ui.overrides.css b/3.9.1/api/jquery-ui.overrides.css
new file mode 100644
index 000000000..facf852c2
--- /dev/null
+++ b/3.9.1/api/jquery-ui.overrides.css
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active,
+a.ui-button:active,
+.ui-button:active,
+.ui-button.ui-state-active:hover {
+ /* Overrides the color of selection used in jQuery UI */
+ background: #F8981D;
+ border: 1px solid #F8981D;
+}
diff --git a/3.9.1/api/legal/ADDITIONAL_LICENSE_INFO b/3.9.1/api/legal/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 000000000..ff700cd09
--- /dev/null
+++ b/3.9.1/api/legal/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1,37 @@
+ ADDITIONAL INFORMATION ABOUT LICENSING
+
+Certain files distributed by Oracle America, Inc. and/or its affiliates are
+subject to the following clarification and special exception to the GPLv2,
+based on the GNU Project exception for its Classpath libraries, known as the
+GNU Classpath Exception.
+
+Note that Oracle includes multiple, independent programs in this software
+package. Some of those programs are provided under licenses deemed
+incompatible with the GPLv2 by the Free Software Foundation and others.
+For example, the package includes programs licensed under the Apache
+License, Version 2.0 and may include FreeType. Such programs are licensed
+to you under their original licenses.
+
+Oracle facilitates your further distribution of this package by adding the
+Classpath Exception to the necessary parts of its GPLv2 code, which permits
+you to use that code in combination with other independent modules not
+licensed under the GPLv2. However, note that this would not permit you to
+commingle code under an incompatible license with Oracle's GPLv2 licensed
+code by, for example, cutting and pasting such code into a file also
+containing Oracle's GPLv2 licensed code and then distributing the result.
+
+Additionally, if you were to remove the Classpath Exception from any of the
+files to which it applies and distribute the result, you would likely be
+required to license some or all of the other code in that distribution under
+the GPLv2 as well, and since the GPLv2 is incompatible with the license terms
+of some items included in the distribution by Oracle, removing the Classpath
+Exception could therefore effectively compromise your ability to further
+distribute the package.
+
+Failing to distribute notices associated with some files may also create
+unexpected legal consequences.
+
+Proceed with caution and we recommend that you obtain the advice of a lawyer
+skilled in open source matters before removing the Classpath Exception or
+making modifications to this package which may subsequently be redistributed
+and/or involve the use of third party software.
diff --git a/3.9.1/api/legal/ASSEMBLY_EXCEPTION b/3.9.1/api/legal/ASSEMBLY_EXCEPTION
new file mode 100644
index 000000000..065b8d902
--- /dev/null
+++ b/3.9.1/api/legal/ASSEMBLY_EXCEPTION
@@ -0,0 +1,27 @@
+
+OPENJDK ASSEMBLY EXCEPTION
+
+The OpenJDK source code made available by Oracle America, Inc. (Oracle) at
+openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU
+General Public License version 2
+only ("GPL2"), with the following clarification and special exception.
+
+ Linking this OpenJDK Code statically or dynamically with other code
+ is making a combined work based on this library. Thus, the terms
+ and conditions of GPL2 cover the whole combination.
+
+ As a special exception, Oracle gives you permission to link this
+ OpenJDK Code with certain code licensed by Oracle as indicated at
+ http://openjdk.java.net/legal/exception-modules-2007-05-08.html
+ ("Designated Exception Modules") to produce an executable,
+ regardless of the license terms of the Designated Exception Modules,
+ and to copy and distribute the resulting executable under GPL2,
+ provided that the Designated Exception Modules continue to be
+ governed by the licenses under which they were offered by Oracle.
+
+As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code
+to build an executable that includes those portions of necessary code that
+Oracle could not provide under GPL2 (or that Oracle has provided under GPL2
+with the Classpath exception). If you modify or add to the OpenJDK code,
+that new GPL2 code may still be combined with Designated Exception Modules
+if the new code is made subject to this exception by its copyright holder.
diff --git a/3.9.1/api/legal/LICENSE b/3.9.1/api/legal/LICENSE
new file mode 100644
index 000000000..8b400c7ab
--- /dev/null
+++ b/3.9.1/api/legal/LICENSE
@@ -0,0 +1,347 @@
+The GNU General Public License (GPL)
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to share
+and change it. By contrast, the GNU General Public License is intended to
+guarantee your freedom to share and change free software--to make sure the
+software is free for all its users. This General Public License applies to
+most of the Free Software Foundation's software and to any other program whose
+authors commit to using it. (Some other Free Software Foundation software is
+covered by the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom to
+distribute copies of free software (and charge for this service if you wish),
+that you receive source code or can get it if you want it, that you can change
+the software or use pieces of it in new free programs; and that you know you
+can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny
+you these rights or to ask you to surrender the rights. These restrictions
+translate to certain responsibilities for you if you distribute copies of the
+software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for
+a fee, you must give the recipients all the rights that you have. You must
+make sure that they, too, receive or can get the source code. And you must
+show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If the
+software is modified by someone else and passed on, we want its recipients to
+know that what they have is not the original, so that any problems introduced
+by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program proprietary.
+To prevent this, we have made it clear that any patent must be licensed for
+everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+placed by the copyright holder saying it may be distributed under the terms of
+this General Public License. The "Program", below, refers to any such program
+or work, and a "work based on the Program" means either the Program or any
+derivative work under copyright law: that is to say, a work containing the
+Program or a portion of it, either verbatim or with modifications and/or
+translated into another language. (Hereinafter, translation is included
+without limitation in the term "modification".) Each licensee is addressed as
+"you".
+
+Activities other than copying, distribution and modification are not covered by
+this License; they are outside its scope. The act of running the Program is
+not restricted, and the output from the Program is covered only if its contents
+constitute a work based on the Program (independent of having been made by
+running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as
+you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this License
+and to the absence of any warranty; and give any other recipients of the
+Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may
+at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus
+forming a work based on the Program, and copy and distribute such modifications
+or work under the terms of Section 1 above, provided that you also meet all of
+these conditions:
+
+ a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in whole or
+ in part contains or is derived from the Program or any part thereof, to be
+ licensed as a whole at no charge to all third parties under the terms of
+ this License.
+
+ c) If the modified program normally reads commands interactively when run,
+ you must cause it, when started running for such interactive use in the
+ most ordinary way, to print or display an announcement including an
+ appropriate copyright notice and a notice that there is no warranty (or
+ else, saying that you provide a warranty) and that users may redistribute
+ the program under these conditions, and telling the user how to view a copy
+ of this License. (Exception: if the Program itself is interactive but does
+ not normally print such an announcement, your work based on the Program is
+ not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If identifiable
+sections of that work are not derived from the Program, and can be reasonably
+considered independent and separate works in themselves, then this License, and
+its terms, do not apply to those sections when you distribute them as separate
+works. But when you distribute the same sections as part of a whole which is a
+work based on the Program, the distribution of the whole must be on the terms
+of this License, whose permissions for other licensees extend to the entire
+whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest your
+rights to work written entirely by you; rather, the intent is to exercise the
+right to control the distribution of derivative or collective works based on
+the Program.
+
+In addition, mere aggregation of another work not based on the Program with the
+Program (or with a work based on the Program) on a volume of a storage or
+distribution medium does not bring the other work under the scope of this
+License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+Section 2) in object code or executable form under the terms of Sections 1 and
+2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2 above
+ on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three years, to
+ give any third party, for a charge no more than your cost of physically
+ performing source distribution, a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of Sections 1
+ and 2 above on a medium customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed only
+ for noncommercial distribution and only if you received the program in
+ object code or executable form with such an offer, in accord with
+ Subsection b above.)
+
+The source code for a work means the preferred form of the work for making
+modifications to it. For an executable work, complete source code means all
+the source code for all modules it contains, plus any associated interface
+definition files, plus the scripts used to control compilation and installation
+of the executable. However, as a special exception, the source code
+distributed need not include anything that is normally distributed (in either
+source or binary form) with the major components (compiler, kernel, and so on)
+of the operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the source
+code from the same place counts as distribution of the source code, even though
+third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+expressly provided under this License. Any attempt otherwise to copy, modify,
+sublicense or distribute the Program is void, and will automatically terminate
+your rights under this License. However, parties who have received copies, or
+rights, from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not signed it.
+However, nothing else grants you permission to modify or distribute the Program
+or its derivative works. These actions are prohibited by law if you do not
+accept this License. Therefore, by modifying or distributing the Program (or
+any work based on the Program), you indicate your acceptance of this License to
+do so, and all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the Program),
+the recipient automatically receives a license from the original licensor to
+copy, distribute or modify the Program subject to these terms and conditions.
+You may not impose any further restrictions on the recipients' exercise of the
+rights granted herein. You are not responsible for enforcing compliance by
+third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues), conditions
+are imposed on you (whether by court order, agreement or otherwise) that
+contradict the conditions of this License, they do not excuse you from the
+conditions of this License. If you cannot distribute so as to satisfy
+simultaneously your obligations under this License and any other pertinent
+obligations, then as a consequence you may not distribute the Program at all.
+For example, if a patent license would not permit royalty-free redistribution
+of the Program by all those who receive copies directly or indirectly through
+you, then the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply and
+the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any patents or
+other property right claims or to contest validity of any such claims; this
+section has the sole purpose of protecting the integrity of the free software
+distribution system, which is implemented by public license practices. Many
+people have made generous contributions to the wide range of software
+distributed through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing to
+distribute software through any other system and a licensee cannot impose that
+choice.
+
+This section is intended to make thoroughly clear what is believed to be a
+consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+countries either by patents or by copyrighted interfaces, the original
+copyright holder who places the Program under this License may add an explicit
+geographical distribution limitation excluding those countries, so that
+distribution is permitted only in or among countries not thus excluded. In
+such case, this License incorporates the limitation as if written in the body
+of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the
+General Public License from time to time. Such new versions will be similar in
+spirit to the present version, but may differ in detail to address new problems
+or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any later
+version", you have the option of following the terms and conditions either of
+that version or of any later version published by the Free Software Foundation.
+If the Program does not specify a version number of this License, you may
+choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+whose distribution conditions are different, write to the author to ask for
+permission. For software which is copyrighted by the Free Software Foundation,
+write to the Free Software Foundation; we sometimes make exceptions for this.
+Our decision will be guided by the two goals of preserving the free status of
+all derivatives of our free software and of promoting the sharing and reuse of
+software generally.
+
+NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
+THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
+STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
+PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
+PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
+ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
+PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
+BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
+OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible
+use to the public, the best way to achieve this is to make it free software
+which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach
+them to the start of each source file to most effectively convey the exclusion
+of warranty; and each file should have at least the "copyright" line and a
+pointer to where the full notice is found.
+
+ One line to give the program's name and a brief idea of what it does.
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it
+starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
+ with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
+ software, and you are welcome to redistribute it under certain conditions;
+ type 'show c' for details.
+
+The hypothetical commands 'show w' and 'show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than 'show w' and 'show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school,
+if any, to sign a "copyright disclaimer" for the program, if necessary. Here
+is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ 'Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ signature of Ty Coon, 1 April 1989
+
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.
+
+
+"CLASSPATH" EXCEPTION TO THE GPL
+
+Certain source files distributed by Oracle America and/or its affiliates are
+subject to the following clarification and special exception to the GPL, but
+only where Oracle has expressly included in the particular source file's header
+the words "Oracle designates this particular file as subject to the "Classpath"
+exception as provided by Oracle in the LICENSE file that accompanied this code."
+
+ Linking this library statically or dynamically with other modules is making
+ a combined work based on this library. Thus, the terms and conditions of
+ the GNU General Public License cover the whole combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,
+ and to copy and distribute the resulting executable under terms of your
+ choice, provided that you also meet, for each linked independent module,
+ the terms and conditions of the license of that module. An independent
+ module is a module which is not derived from or based on this library. If
+ you modify this library, you may extend this exception to your version of
+ the library, but you are not obligated to do so. If you do not wish to do
+ so, delete this exception statement from your version.
diff --git a/3.9.1/api/legal/jquery.md b/3.9.1/api/legal/jquery.md
new file mode 100644
index 000000000..d468b3183
--- /dev/null
+++ b/3.9.1/api/legal/jquery.md
@@ -0,0 +1,72 @@
+## jQuery v3.6.1
+
+### jQuery License
+```
+jQuery v 3.6.1
+Copyright OpenJS Foundation and other contributors, https://openjsf.org/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************
+
+The jQuery JavaScript Library v3.6.1 also includes Sizzle.js
+
+Sizzle.js includes the following license:
+
+Copyright JS Foundation and other contributors, https://js.foundation/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/sizzle
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+*********************
+
+```
diff --git a/3.9.1/api/legal/jqueryUI.md b/3.9.1/api/legal/jqueryUI.md
new file mode 100644
index 000000000..8bda9d7a8
--- /dev/null
+++ b/3.9.1/api/legal/jqueryUI.md
@@ -0,0 +1,49 @@
+## jQuery UI v1.13.2
+
+### jQuery UI License
+```
+Copyright jQuery Foundation and other contributors, https://jquery.org/
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/jquery/jquery-ui
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code contained within the demos directory.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+All files located in the node_modules and external directories are
+externally maintained libraries used by this software which have their
+own licenses; we recommend you read them, as their terms may differ from
+the terms above.
+
+```
diff --git a/3.9.1/api/member-search-index.js b/3.9.1/api/member-search-index.js
new file mode 100644
index 000000000..d672df53e
--- /dev/null
+++ b/3.9.1/api/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"io.micronaut.oraclecloud.core.sdk","c":"AbstractSdkClientFactory","l":"AbstractSdkClientFactory(B, ClientConfiguration, ClientConfigurator, RequestSignerFactory)","u":"%3Cinit%3E(B,com.oracle.bmc.ClientConfiguration,com.oracle.bmc.http.ClientConfigurator,com.oracle.bmc.http.signing.RequestSignerFactory)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"addAppender(Appender)","u":"addAppender(ch.qos.logback.core.Appender)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"addBlackListLoggerName(String)","u":"addBlackListLoggerName(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"AGENT_CONFIG"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"append(ILoggingEvent)","u":"append(ch.qos.logback.classic.spi.ILoggingEvent)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"applicationName()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"applicationProtocolNegotiator()"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"archives()"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients.Kind","l":"ASYNC"},{"p":"io.micronaut.oraclecloud.clients.rxjava2","c":"AsyncHandlerEmitter","l":"AsyncHandlerEmitter(SingleEmitter)","u":"%3Cinit%3E(io.reactivex.SingleEmitter)"},{"p":"io.micronaut.oraclecloud.clients.reactor","c":"AsyncHandlerSink","l":"AsyncHandlerSink(MonoSink)","u":"%3Cinit%3E(reactor.core.publisher.MonoSink)"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"AutonomousDatabaseConfiguration()","u":"%3Cinit%3E()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"AVAILABILITY_DOMAIN"},{"p":"io.micronaut.oraclecloud.certificates.background","c":"OracleCloudCertificationRefresherTask","l":"backgroundRenewal()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"batchAtomicity()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"batchSize()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"OracleCloudSSLContextBuilder","l":"build()"},{"p":"io.micronaut.oraclecloud.core.sdk","c":"AbstractSdkClientFactory","l":"build(B, AbstractAuthenticationDetailsProvider)","u":"build(B,com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"builder()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"CANONICAL_REGION_NAME"},{"p":"io.micronaut.oraclecloud.certificates.events","c":"CertificateEvent","l":"certificate()"},{"p":"io.micronaut.oraclecloud.certificates.events","c":"CertificateEvent","l":"CertificateEvent(PrivateKey, X509Certificate)","u":"%3Cinit%3E(java.security.PrivateKey,java.security.cert.X509Certificate)"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"certificateId()"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"certificateVersionName()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"cipherSuites()"},{"p":"io.micronaut.oraclecloud.clients.processor","c":"OracleCloudSdkProcessor","l":"CLIENT_PACKAGE"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients","l":"clientClasses()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"clientConfiguration(ClientConfiguration.ClientConfigurationBuilder)","u":"clientConfiguration(com.oracle.bmc.ClientConfiguration.ClientConfigurationBuilder)"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"close()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"COMPARTMENT_ID"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"compartmentId()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"configFileAuthenticationDetailsProvider()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"configurationBuilder(OracleCloudClientConfigurationProperties)","u":"configurationBuilder(io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties)"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"CanConfigureOracleDataSource","l":"configure(OracleCommonDataSource)","u":"configure(oracle.jdbc.datasource.OracleCommonDataSource)"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"CanConfigureOracleDataSource","l":"configure(T)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"WalletArchive","l":"configure(T)"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"conversionService"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"DEFAULT_ENABLED"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"DEFAULT_URL"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"DEFAULT_V2_URL"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"DEFAULT_V2_VNIC_URL"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"DEFAULT_VERSION"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"DEFAULT_VNIC_URL"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"description()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"detachAndStopAllAppenders()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"detachAppender(Appender)","u":"detachAppender(ch.qos.logback.core.Appender)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"detachAppender(String)","u":"detachAppender(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"DISPLAY_NAME"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"enabled()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"enabled()"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"enableSharedJackson()"},{"p":"io.micronaut.oraclecloud.certificates.events","c":"CertificateEvent","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"FAULT_DOMAIN"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"FnHttpTest()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"FnMultiValueMap(Map>, ConversionService)","u":"%3Cinit%3E(java.util.Map,io.micronaut.core.convert.ConversionService)"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"get(CharSequence)","u":"get(java.lang.CharSequence)"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"get(CharSequence, ArgumentConversionContext)","u":"get(java.lang.CharSequence,io.micronaut.core.convert.ArgumentConversionContext)"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"getAll(CharSequence)","u":"getAll(java.lang.CharSequence)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getAppender(String)","u":"getAppender(java.lang.String)"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"getApplicationContext()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMeterRegistry","l":"getBaseTimeUnit()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"getBaseUrl()"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"getBuilder()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"getBuilder()"},{"p":"io.micronaut.oraclecloud.core.sdk","c":"AbstractSdkClientFactory","l":"getBuilder()"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeWorkloadIdentityConfiguration","l":"getBuilder()"},{"p":"io.micronaut.oraclecloud.certificates.services","c":"OracleCloudCertificateService","l":"getCertificateEvent()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudClientConfigurationProperties","l":"getCircuitBreakerBuilder()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudClientConfigurationProperties","l":"getClientBuilder()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVault","l":"getCompartmentOcid()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudInstanceMetadata","l":"getComputePlatform()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"getConfigPath()"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudCounter","l":"getDatapoints()"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudDatapointProducer","l":"getDatapoints()"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudDistributionSummary","l":"getDatapoints()"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudTimer","l":"getDatapoints()"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSdkMicronautSerializer","l":"getDefaultObjectMapper()"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSdkMicronautSerializer","l":"getDefaultSerializer()"},{"p":"io.micronaut.oraclecloud.monitoring","c":"MonitoringIngestionClient","l":"getDelegate()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfigurationClient","l":"getDescription()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration","l":"getDiscoveryConfiguration()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getEncoder()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudInstanceMetadata","l":"getFaultDomain()"},{"p":"io.micronaut.oraclecloud.function.http","c":"HttpFunction","l":"getHttpHandler()"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSerializationConfiguration","l":"getInclusion()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"getInstanceDocumentUrl()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getLogId()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getMaxBatchSize()"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"getMetadataBaseUrl()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"getMetadataUrl()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMeterRegistry","l":"getMetricData()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudRawMeterRegistry","l":"getMetricData()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"getName()"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"getOcid()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVault","l":"getOcid()"},{"p":"io.micronaut.oraclecloud.atp.jdbc.hikari","c":"HikariPoolConfigurationListener","l":"getOrder()"},{"p":"io.micronaut.oraclecloud.atp.jdbc.ucp","c":"UcpPoolConfigurationListener","l":"getOrder()"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"getOrder()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"getProfile()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfigurationClient","l":"getPropertySources(Environment)","u":"getPropertySources(io.micronaut.context.env.Environment)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getPublishPeriod()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getQueueSize()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudClientConfigurationProperties","l":"getRetryBuilder()"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"ManagedNettyHttpProvider","l":"getSerializer()"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"NettyHttpProvider","l":"getSerializer()"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"getServiceAlias()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getSource()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"OracleCloudSSLContextBuilder","l":"getSslConfiguration()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getSubject()"},{"p":"io.micronaut.oraclecloud.core","c":"TenancyIdProvider","l":"getTenancyId()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"getType()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"getUrl()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration","l":"getVaults()"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"getVisitorKind()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"getVnicUrl()"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"getWalletPassword()"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"getWalletType()"},{"p":"io.micronaut.oraclecloud.function.http","c":"HttpFunction","l":"handleRequest(HTTPGatewayContext, InputEvent)","u":"handleRequest(com.fnproject.fn.api.httpgateway.HTTPGatewayContext,com.fnproject.fn.api.InputEvent)"},{"p":"io.micronaut.oraclecloud.certificates.events","c":"CertificateEvent","l":"hashCode()"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"hashCode()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"hashCode()"},{"p":"io.micronaut.oraclecloud.atp.jdbc.hikari","c":"HikariPoolConfigurationListener","l":"HikariPoolConfigurationListener(OracleWalletArchiveProvider, BeanLocator)","u":"%3Cinit%3E(io.micronaut.oraclecloud.atp.jdbc.OracleWalletArchiveProvider,io.micronaut.context.BeanLocator)"},{"p":"io.micronaut.oraclecloud.function.http","c":"HttpFunction","l":"HttpFunction()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.function.http","c":"HttpFunction","l":"HttpFunction(ApplicationContext)","u":"%3Cinit%3E(io.micronaut.context.ApplicationContext)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"ID"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"IMAGE"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudCounter","l":"increment(double)"},{"p":"io.micronaut.oraclecloud.clients.processor","c":"OracleCloudSdkProcessor","l":"init(ProcessingEnvironment)","u":"init(javax.annotation.processing.ProcessingEnvironment)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"WalletModule","l":"instance()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"instancePrincipalAuthenticationDetailsProvider(InstancePrincipalConfiguration)","u":"instancePrincipalAuthenticationDetailsProvider(io.micronaut.oraclecloud.core.InstancePrincipalConfiguration)"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"InstancePrincipalConfiguration()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpMethod, String)","u":"invoke(io.micronaut.http.HttpMethod,java.lang.String)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpMethod, String, List>)","u":"invoke(io.micronaut.http.HttpMethod,java.lang.String,java.util.List)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpRequest)","u":"invoke(io.micronaut.http.HttpRequest)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpRequest, Argument)","u":"invoke(io.micronaut.http.HttpRequest,io.micronaut.core.type.Argument)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpRequest, Argument, List>)","u":"invoke(io.micronaut.http.HttpRequest,io.micronaut.core.type.Argument,java.util.List)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpRequest, Class)","u":"invoke(io.micronaut.http.HttpRequest,java.lang.Class)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpRequest, Class, List>)","u":"invoke(io.micronaut.http.HttpRequest,java.lang.Class,java.util.List)"},{"p":"io.micronaut.oraclecloud.function.http.test","c":"FnHttpTest","l":"invoke(HttpRequest, List>)","u":"invoke(io.micronaut.http.HttpRequest,java.util.List)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"isAttached(Appender)","u":"isAttached(ch.qos.logback.core.Appender)"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"isClient()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"isEnabled()"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"isEnabled()"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"isEnabled()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"isEnabled()"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeWorkloadIdentityConfiguration","l":"isEnabled()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"isV1Enabled()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"isV2Enabled()"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSerdeConfiguration","l":"isWriteBinaryAsArray()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"iteratorForAppenders()"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"OracleWalletArchiveProvider","l":"loadWalletArchive(AutonomousDatabaseConfiguration)","u":"loadWalletArchive(io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration)"},{"p":"io.micronaut.oraclecloud.monitoring","c":"OracleCloudMeterRegistryFactory","l":"LOG"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"MAC"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"NettyClientProperties","l":"MANAGED_PROVIDER"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"ManagedNettyHttpProvider","l":"ManagedNettyHttpProvider(HttpClient, ExecutorService)","u":"%3Cinit%3E(io.micronaut.http.client.HttpClient,java.util.concurrent.ExecutorService)"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"ManagedNettyHttpProvider","l":"ManagedNettyHttpProvider(HttpClientRegistry>, ExecutorService, ObjectMapper, OciSerdeConfiguration, OciSerializationConfiguration)","u":"%3Cinit%3E(io.micronaut.http.client.HttpClientRegistry,java.util.concurrent.ExecutorService,io.micronaut.serde.ObjectMapper,io.micronaut.oraclecloud.serde.OciSerdeConfiguration,io.micronaut.oraclecloud.serde.OciSerializationConfiguration)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigCondition","l":"matches(ConditionContext)","u":"matches(io.micronaut.context.condition.ConditionContext)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"METADATA_SERVICE_URL"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"modify(Wallet)","u":"modify(io.micronaut.oraclecloud.atp.wallet.Wallet)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"modify(Wallet, char[])","u":"modify(io.micronaut.oraclecloud.atp.wallet.Wallet,char[])"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"MONITORING_DISABLED"},{"p":"io.micronaut.oraclecloud.monitoring","c":"MonitoringIngestionClient","l":"MonitoringIngestionClient(ClientConfiguration, ClientConfigurator, RequestSignerFactory, RegionProvider, AbstractAuthenticationDetailsProvider)","u":"%3Cinit%3E(com.oracle.bmc.ClientConfiguration,com.oracle.bmc.http.ClientConfigurator,com.oracle.bmc.http.signing.RequestSignerFactory,com.oracle.bmc.auth.RegionProvider,com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider)"},{"p":"io.micronaut.oraclecloud.monitoring","c":"MonitoringIngestionClient","l":"MonitoringIngestionClient(ClientConfiguration, ClientConfigurator, RequestSignerFactory, RegionProvider, AbstractAuthenticationDetailsProvider, HttpProvider)","u":"%3Cinit%3E(com.oracle.bmc.ClientConfiguration,com.oracle.bmc.http.ClientConfigurator,com.oracle.bmc.http.signing.RequestSignerFactory,com.oracle.bmc.auth.RegionProvider,com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider,com.oracle.bmc.http.client.HttpProvider)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMetricsNamingConvention","l":"name(String, Meter.Type, String)","u":"name(java.lang.String,io.micrometer.core.instrument.Meter.Type,java.lang.String)"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"names()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"NAMESPACE_PATTERN"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"NAMESPACE_REGEX"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"namespace()"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"NettyHttpProvider","l":"NettyHttpProvider()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"newApplicationContextBuilder(RuntimeContext)","u":"newApplicationContextBuilder(com.fnproject.fn.api.RuntimeContext)"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"ManagedNettyHttpProvider","l":"newBuilder()"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"NettyHttpProvider","l":"newBuilder()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudRawMeterRegistry","l":"newCounter(Meter.Id)","u":"newCounter(io.micrometer.core.instrument.Meter.Id)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudRawMeterRegistry","l":"newDistributionSummary(Meter.Id, DistributionStatisticConfig, double)","u":"newDistributionSummary(io.micrometer.core.instrument.Meter.Id,io.micrometer.core.instrument.distribution.DistributionStatisticConfig,double)"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"newEngine(ByteBufAllocator)","u":"newEngine(io.netty.buffer.ByteBufAllocator)"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"newEngine(ByteBufAllocator, String, int)","u":"newEngine(io.netty.buffer.ByteBufAllocator,java.lang.String,int)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudRawMeterRegistry","l":"newTimer(Meter.Id, DistributionStatisticConfig, PauseDetector)","u":"newTimer(io.micrometer.core.instrument.Meter.Id,io.micrometer.core.instrument.distribution.DistributionStatisticConfig,io.micrometer.core.instrument.distribution.pause.PauseDetector)"},{"p":"io.micronaut.oraclecloud.clients.processor","c":"OracleCloudSdkProcessor","l":"OCI_SDK_CLIENT_CLASSES_OPTION"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"OciFunction()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"OciFunction(ApplicationContext)","u":"%3Cinit%3E(io.micronaut.context.ApplicationContext)"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSdkMicronautSerializer","l":"OciSdkMicronautSerializer(JsonMapper)","u":"%3Cinit%3E(io.micronaut.json.JsonMapper)"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"OciSdkModelSerdeVisitor()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"OKE_WORKLOAD_IDENTITY_PREFIX"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeHttpClientConfiguration","l":"OkeHttpClientConfiguration()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeWorkloadIdentityFactory","l":"okeWorkloadIdentityAuthenticationDetailsProvider(OkeWorkloadIdentityConfiguration)","u":"okeWorkloadIdentityAuthenticationDetailsProvider(io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration)"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeWorkloadIdentityConfiguration","l":"OkeWorkloadIdentityConfiguration(OkeHttpClientConfiguration)","u":"%3Cinit%3E(io.micronaut.oraclecloud.oke.workload.identity.OkeHttpClientConfiguration)"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeWorkloadIdentityFactory","l":"OkeWorkloadIdentityFactory()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.clients.reactor","c":"AsyncHandlerSink","l":"onError(Req, Throwable)","u":"onError(Req,java.lang.Throwable)"},{"p":"io.micronaut.oraclecloud.clients.rxjava2","c":"AsyncHandlerEmitter","l":"onError(Req, Throwable)","u":"onError(Req,java.lang.Throwable)"},{"p":"io.micronaut.oraclecloud.atp.jdbc.hikari","c":"HikariPoolConfigurationListener","l":"onInitialized(BeanInitializingEvent)","u":"onInitialized(io.micronaut.context.event.BeanInitializingEvent)"},{"p":"io.micronaut.oraclecloud.atp.jdbc.ucp","c":"UcpPoolConfigurationListener","l":"onInitialized(BeanInitializingEvent)","u":"onInitialized(io.micronaut.context.event.BeanInitializingEvent)"},{"p":"io.micronaut.oraclecloud.clients.reactor","c":"AsyncHandlerSink","l":"onSuccess(Req, Res)","u":"onSuccess(Req,Res)"},{"p":"io.micronaut.oraclecloud.clients.rxjava2","c":"AsyncHandlerEmitter","l":"onSuccess(Req, Res)","u":"onSuccess(Req,Res)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"ORACLE_CLOUD"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"ORACLE_CLOUD_CONFIG_PATH"},{"p":"io.micronaut.oraclecloud.atp.jdbc.hikari","c":"HikariPoolConfigurationListener","l":"ORACLE_JDBC_ORACLE_DRIVER"},{"p":"io.micronaut.oraclecloud.monitoring","c":"OracleCloudMeterRegistryFactory","l":"ORACLECLOUD_METRICS_CONFIG"},{"p":"io.micronaut.oraclecloud.monitoring","c":"OracleCloudMeterRegistryFactory","l":"ORACLECLOUD_METRICS_ENABLED"},{"p":"io.micronaut.oraclecloud.monitoring","c":"OracleCloudMeterRegistryFactory","l":"ORACLECLOUD_RAW_METRICS_ENABLED"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"OracleCloudAppender()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"OracleCloudAuthConfigurationProperties()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.certificates.services","c":"OracleCloudCertificateService","l":"OracleCloudCertificateService(OracleCloudCertificationsConfiguration, Certificates, ApplicationEventPublisher)","u":"%3Cinit%3E(io.micronaut.oraclecloud.certificates.OracleCloudCertificationsConfiguration,com.oracle.bmc.certificates.Certificates,io.micronaut.context.event.ApplicationEventPublisher)"},{"p":"io.micronaut.oraclecloud.certificates.background","c":"OracleCloudCertificationRefresherTask","l":"OracleCloudCertificationRefresherTask(OracleCloudCertificateService)","u":"%3Cinit%3E(io.micronaut.oraclecloud.certificates.services.OracleCloudCertificateService)"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"OracleCloudCertificationsConfiguration(String, Long, String, Boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.String,java.lang.Boolean)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudClientConfigurationProperties","l":"OracleCloudClientConfigurationProperties()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMeterRegistry","l":"oracleCloudConfig"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigCondition","l":"OracleCloudConfigCondition()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"OracleCloudConfigFileConfigurationProperties(String, String, Boolean, Boolean)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Boolean)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"OracleCloudCoreFactory(OracleCloudConfigFileConfigurationProperties)","u":"%3Cinit%3E(io.micronaut.oraclecloud.core.OracleCloudConfigFileConfigurationProperties)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"OracleCloudCoreFactory(String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudCounter","l":"OracleCloudCounter(Meter.Id, Clock, long)","u":"%3Cinit%3E(io.micrometer.core.instrument.Meter.Id,io.micrometer.core.instrument.Clock,long)"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudDistributionSummary","l":"OracleCloudDistributionSummary(Meter.Id, Clock, DistributionStatisticConfig, double, long, boolean)","u":"%3Cinit%3E(io.micrometer.core.instrument.Meter.Id,io.micrometer.core.instrument.Clock,io.micrometer.core.instrument.distribution.DistributionStatisticConfig,double,long,boolean)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudInstanceMetadata","l":"OracleCloudInstanceMetadata()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudJsonFormatter","l":"OracleCloudJsonFormatter()","u":"%3Cinit%3E()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"OracleCloudMetadataConfiguration()","u":"%3Cinit%3E()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataResolver","l":"OracleCloudMetadataResolver()","u":"%3Cinit%3E()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataResolver","l":"OracleCloudMetadataResolver(JsonMapper, OracleCloudMetadataConfiguration)","u":"%3Cinit%3E(io.micronaut.json.JsonMapper,io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMeterRegistry","l":"OracleCloudMeterRegistry(OracleCloudConfig, Clock, Provider)","u":"%3Cinit%3E(io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig,io.micrometer.core.instrument.Clock,jakarta.inject.Provider)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMeterRegistry","l":"OracleCloudMeterRegistry(OracleCloudConfig, Clock, Provider, ThreadFactory)","u":"%3Cinit%3E(io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig,io.micrometer.core.instrument.Clock,jakarta.inject.Provider,java.util.concurrent.ThreadFactory)"},{"p":"io.micronaut.oraclecloud.monitoring","c":"OracleCloudMeterRegistryFactory","l":"OracleCloudMeterRegistryFactory(TenancyIdProvider, ApplicationConfiguration)","u":"%3Cinit%3E(io.micronaut.oraclecloud.core.TenancyIdProvider,io.micronaut.runtime.ApplicationConfiguration)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMetricsNamingConvention","l":"OracleCloudMetricsNamingConvention()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudRawMeterRegistry","l":"OracleCloudRawMeterRegistry(OracleCloudConfig, Clock, Provider)","u":"%3Cinit%3E(io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig,io.micrometer.core.instrument.Clock,jakarta.inject.Provider)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudRawMeterRegistry","l":"OracleCloudRawMeterRegistry(OracleCloudConfig, Clock, Provider, ThreadFactory)","u":"%3Cinit%3E(io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudConfig,io.micrometer.core.instrument.Clock,jakarta.inject.Provider,java.util.concurrent.ThreadFactory)"},{"p":"io.micronaut.oraclecloud.clients.processor","c":"OracleCloudSdkProcessor","l":"OracleCloudSdkProcessor()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"OracleCloudSSLContextBuilder","l":"OracleCloudSSLContextBuilder(ServerSslConfiguration)","u":"%3Cinit%3E(io.micronaut.http.ssl.ServerSslConfiguration)"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudTimer","l":"OracleCloudTimer(Meter.Id, Clock, DistributionStatisticConfig, PauseDetector, TimeUnit, long, boolean)","u":"%3Cinit%3E(io.micrometer.core.instrument.Meter.Id,io.micrometer.core.instrument.Clock,io.micrometer.core.instrument.distribution.DistributionStatisticConfig,io.micrometer.core.instrument.distribution.pause.PauseDetector,java.util.concurrent.TimeUnit,long,boolean)"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVault","l":"OracleCloudVault()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration","l":"OracleCloudVaultClientDiscoveryConfiguration()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration","l":"OracleCloudVaultConfiguration()","u":"%3Cinit%3E()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfigurationClient","l":"OracleCloudVaultConfigurationClient(OracleCloudVaultConfiguration, ExecutorService, Secrets, Vaults)","u":"%3Cinit%3E(io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration,java.util.concurrent.ExecutorService,com.oracle.bmc.secrets.Secrets,com.oracle.bmc.vault.Vaults)"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"OracleWalletArchiveProvider","l":"OracleWalletArchiveProvider(Database)","u":"%3Cinit%3E(com.oracle.bmc.database.Database)"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"password()"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"password(char[])"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"path()"},{"p":"io.micronaut.oraclecloud.atp.jdbc.hikari","c":"HikariPoolConfigurationListener","l":"POSITION"},{"p":"io.micronaut.oraclecloud.atp.jdbc.ucp","c":"UcpPoolConfigurationListener","l":"POSITION"},{"p":"io.micronaut.oraclecloud.monitoring","c":"MonitoringIngestionClient","l":"postMetricData(PostMetricDataRequest)","u":"postMetricData(com.oracle.bmc.monitoring.requests.PostMetricDataRequest)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeHttpClientConfiguration","l":"PREFIX"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"prefix()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"PRIVATE_IP"},{"p":"io.micronaut.oraclecloud.certificates.events","c":"CertificateEvent","l":"privateKey()"},{"p":"io.micronaut.oraclecloud.clients.processor","c":"OracleCloudSdkProcessor","l":"process(Set extends TypeElement>, RoundEnvironment)","u":"process(java.util.Set,javax.annotation.processing.RoundEnvironment)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"profile()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMeterRegistry","l":"publish()"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients.Kind","l":"REACTOR"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets.Archives","l":"read(InputStream)","u":"read(java.io.InputStream)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"read(InputStream)","u":"read(java.io.InputStream)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets.Archives","l":"read(InputStream, char[])","u":"read(java.io.InputStream,char[])"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"read(InputStream, char[])","u":"read(java.io.InputStream,char[])"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets.Archives","l":"read(Path)","u":"read(java.nio.file.Path)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"read(Path)","u":"read(java.nio.file.Path)"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets.Archives","l":"read(Path, char[])","u":"read(java.nio.file.Path,char[])"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"Wallets","l":"read(Path, char[])","u":"read(java.nio.file.Path,char[])"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSdkMicronautSerializer","l":"readValue(byte[], Class)","u":"readValue(byte[],java.lang.Class)"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSdkMicronautSerializer","l":"readValue(String, Class)","u":"readValue(java.lang.String,java.lang.Class)"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudDistributionSummary","l":"recordNonNegative(double)"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","c":"OracleCloudTimer","l":"recordNonNegative(long, TimeUnit)","u":"recordNonNegative(long,java.util.concurrent.TimeUnit)"},{"p":"io.micronaut.oraclecloud.certificates.services","c":"OracleCloudCertificateService","l":"refreshCertificate()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"REGION"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataResolver","l":"resolve(Environment)","u":"resolve(io.micronaut.context.env.Environment)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"resourceGroup()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"resourcePrincipalAuthenticationDetailsProvider()"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients.Kind","l":"RXJAVA2"},{"p":"io.micronaut.oraclecloud.httpclient.netty","c":"NettyClientProperties","l":"SERVICE_ID"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"WalletArchive","l":"serviceAlias()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"sessionCacheSize()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"sessionContext()"},{"p":"io.micronaut.oraclecloud.certificates.ssl","c":"DelegatedSslContext","l":"sessionTimeout()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"sessionToken()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"sessionTokenAuthenticationDetailsProvider()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVault","l":"setCompartmentOcid(String)","u":"setCompartmentOcid(java.lang.String)"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"setConversionService(ConversionService)","u":"setConversionService(io.micronaut.core.convert.ConversionService)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setEnabled(boolean)"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"setEnabled(boolean)"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","c":"OkeWorkloadIdentityConfiguration","l":"setEnabled(boolean)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setEncoder(Encoder)","u":"setEncoder(ch.qos.logback.core.encoder.Encoder)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudInstanceMetadata","l":"setFaultDomain(String)","u":"setFaultDomain(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setInstanceDocumentUrl(String)","u":"setInstanceDocumentUrl(java.lang.String)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setLogId(String)","u":"setLogId(java.lang.String)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setMaxBatchSize(int)"},{"p":"io.micronaut.oraclecloud.core","c":"InstancePrincipalConfiguration","l":"setMetadataBaseUrl(String)","u":"setMetadataBaseUrl(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setMetadataUrl(String)","u":"setMetadataUrl(java.lang.String)"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"setOcid(String)","u":"setOcid(java.lang.String)"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVault","l":"setOcid(String)","u":"setOcid(java.lang.String)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"setPassphrase(String)","u":"setPassphrase(java.lang.String)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"setPrivateKey(String)","u":"setPrivateKey(java.lang.String)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"setPrivateKeyFile(Readable)","u":"setPrivateKeyFile(io.micronaut.core.io.Readable)"},{"p":"io.micronaut.oraclecloud.core.sdk","c":"AbstractSdkClientFactory","l":"setProvider(HttpProvider)","u":"setProvider(com.oracle.bmc.http.client.HttpProvider)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setPublishPeriod(long)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setQueueSize(int)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"setRegion(String)","u":"setRegion(java.lang.String)"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"setServiceAlias(String)","u":"setServiceAlias(java.lang.String)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setSource(String)","u":"setSource(java.lang.String)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setSubject(String)","u":"setSubject(java.lang.String)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"setType(String)","u":"setType(java.lang.String)"},{"p":"io.micronaut.oraclecloud.function.http","c":"HttpFunction","l":"setup(RuntimeContext)","u":"setup(com.fnproject.fn.api.RuntimeContext)"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"setup(RuntimeContext)","u":"setup(com.fnproject.fn.api.RuntimeContext)"},{"p":"io.micronaut.oraclecloud.function","c":"OciFunction","l":"setupContext(RuntimeContext)","u":"setupContext(com.fnproject.fn.api.RuntimeContext)"},{"p":"io.micronaut.oraclecloud.function.http","c":"HttpFunction","l":"setupGateway(RuntimeContext)","u":"setupGateway(com.fnproject.fn.api.RuntimeContext)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setUrl(String)","u":"setUrl(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setV1Enabled(boolean)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setV2Enabled(boolean)"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration","l":"setVaults(List)","u":"setVaults(java.util.List)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataConfiguration","l":"setVnicUrl(String)","u":"setVnicUrl(java.lang.String)"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"setWalletPassword(String)","u":"setWalletPassword(java.lang.String)"},{"p":"io.micronaut.oraclecloud.atp.jdbc","c":"AutonomousDatabaseConfiguration","l":"setWalletType(GenerateAutonomousDatabaseWalletDetails.GenerateType)","u":"setWalletType(com.oracle.bmc.database.model.GenerateAutonomousDatabaseWalletDetails.GenerateType)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"SHAPE"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"simpleAuthenticationDetailsProvider(OracleCloudAuthConfigurationProperties)","u":"simpleAuthenticationDetailsProvider(io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties)"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"sslContext()"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"sslContext(SSLContext)","u":"sslContext(javax.net.ssl.SSLContext)"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"start()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"STATE"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudAppender","l":"stop()"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMetricsNamingConvention","l":"tagKey(String)","u":"tagKey(java.lang.String)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudMetricsNamingConvention","l":"tagValue(String)","u":"tagValue(java.lang.String)"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudAuthConfigurationProperties","l":"TENANT_ID"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudCoreFactory","l":"tenantIdProvider(BasicAuthenticationDetailsProvider, OracleCloudMetadataConfiguration)","u":"tenantIdProvider(com.oracle.bmc.auth.BasicAuthenticationDetailsProvider,io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"TIME_CREATED"},{"p":"io.micronaut.oraclecloud.logging","c":"OracleCloudJsonFormatter","l":"toJsonString(Map)","u":"toJsonString(java.util.Map)"},{"p":"io.micronaut.oraclecloud.certificates.events","c":"CertificateEvent","l":"toString()"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"toString()"},{"p":"io.micronaut.oraclecloud.core","c":"OracleCloudConfigFileConfigurationProperties","l":"toString()"},{"p":"io.micronaut.oraclecloud.discovery.vault","c":"OracleCloudVaultConfiguration.OracleCloudVault","l":"toString()"},{"p":"io.micronaut.oraclecloud.atp.jdbc.ucp","c":"UcpPoolConfigurationListener","l":"UcpPoolConfigurationListener(OracleWalletArchiveProvider, BeanLocator)","u":"%3Cinit%3E(io.micronaut.oraclecloud.atp.jdbc.OracleWalletArchiveProvider,io.micronaut.context.BeanLocator)"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"url()"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"url(String)","u":"url(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"USER_METADATA"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"user()"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","c":"OracleDataSourceAttributes","l":"user(String)","u":"user(java.lang.String)"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","c":"OracleCloudConfig","l":"validate()"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients","l":"value()"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients.Kind","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"values()"},{"p":"io.micronaut.oraclecloud.clients","c":"SdkClients.Kind","l":"values()"},{"p":"io.micronaut.oraclecloud.function.http","c":"FnMultiValueMap","l":"values()"},{"p":"io.micronaut.oraclecloud.certificates","c":"OracleCloudCertificationsConfiguration","l":"versionNumber()"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"visitClass(ClassElement, VisitorContext)","u":"visitClass(io.micronaut.inject.ast.ClassElement,io.micronaut.inject.visitor.VisitorContext)"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"visitConstructor(ConstructorElement, VisitorContext)","u":"visitConstructor(io.micronaut.inject.ast.ConstructorElement,io.micronaut.inject.visitor.VisitorContext)"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"visitField(FieldElement, VisitorContext)","u":"visitField(io.micronaut.inject.ast.FieldElement,io.micronaut.inject.visitor.VisitorContext)"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","c":"OciSdkModelSerdeVisitor","l":"visitMethod(MethodElement, VisitorContext)","u":"visitMethod(io.micronaut.inject.ast.MethodElement,io.micronaut.inject.visitor.VisitorContext)"},{"p":"io.micronaut.discovery.cloud.oraclecloud","c":"OracleCloudMetadataKeys","l":"VNIC_ID"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"WalletModule","l":"wallets()"},{"p":"io.micronaut.oraclecloud.atp.wallet","c":"WalletArchive","l":"with(String)","u":"with(java.lang.String)"},{"p":"io.micronaut.oraclecloud.serde","c":"OciSdkMicronautSerializer","l":"writeValueAsString(Object)","u":"writeValueAsString(java.lang.Object)"}];updateSearchResults();
\ No newline at end of file
diff --git a/3.9.1/api/module-search-index.js b/3.9.1/api/module-search-index.js
new file mode 100644
index 000000000..0d59754fc
--- /dev/null
+++ b/3.9.1/api/module-search-index.js
@@ -0,0 +1 @@
+moduleSearchIndex = [];updateSearchResults();
\ No newline at end of file
diff --git a/3.9.1/api/overview-summary.html b/3.9.1/api/overview-summary.html
new file mode 100644
index 000000000..b2bd67c54
--- /dev/null
+++ b/3.9.1/api/overview-summary.html
@@ -0,0 +1,25 @@
+
+
+
+
+oracle-cloud 3.9.1 API
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+index.html
+
+
+
diff --git a/3.9.1/api/overview-tree.html b/3.9.1/api/overview-tree.html
new file mode 100644
index 000000000..d1382e89e
--- /dev/null
+++ b/3.9.1/api/overview-tree.html
@@ -0,0 +1,296 @@
+
+
+
+
+Class Hierarchy (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+Class Hierarchy
+
+java.lang.Object
+
+io.micronaut.discovery.cloud.AbstractComputeInstanceMetadata (implements io.micronaut.discovery.cloud.ComputeInstanceMetadata)
+
+
+io.micrometer.core.instrument.AbstractMeter (implements io.micrometer.core.instrument.Meter)
+
+io.micrometer.core.instrument.AbstractDistributionSummary (implements io.micrometer.core.instrument.DistributionSummary)
+
+io.micrometer.core.instrument.step.StepDistributionSummary
+
+
+
+
+io.micrometer.core.instrument.AbstractTimer (implements io.micrometer.core.instrument.Timer)
+
+io.micrometer.core.instrument.step.StepTimer
+
+
+
+
+io.micrometer.core.instrument.step.StepCounter (implements io.micrometer.core.instrument.Counter)
+
+
+
+
+javax.annotation.processing.AbstractProcessor (implements javax.annotation.processing.Processor )
+
+
+io.micronaut.oraclecloud.core.sdk.AbstractSdkClientFactory <B,T>
+io.micronaut.oraclecloud.clients.rxjava2.AsyncHandlerEmitter <Req,Res> (implements com.oracle.bmc.responses.AsyncHandler<REQUEST,RESPONSE>)
+io.micronaut.oraclecloud.clients.reactor.AsyncHandlerSink <Req,Res> (implements com.oracle.bmc.responses.AsyncHandler<REQUEST,RESPONSE>)
+io.micronaut.oraclecloud.atp.jdbc.AutonomousDatabaseConfiguration
+io.micronaut.discovery.config.ConfigDiscoveryConfiguration (implements io.micronaut.core.util.Toggleable)
+
+
+ch.qos.logback.core.spi.ContextAwareBase (implements ch.qos.logback.core.spi.ContextAware)
+
+ch.qos.logback.core.AppenderBase<E> (implements ch.qos.logback.core.Appender<E>)
+
+io.micronaut.oraclecloud.logging.OracleCloudAppender (implements ch.qos.logback.core.spi.AppenderAttachable<E>)
+
+
+
+
+io.micronaut.oraclecloud.function.http.test.FnHttpTest
+io.micronaut.oraclecloud.function.http.FnMultiValueMap (implements io.micronaut.core.convert.value.ConvertibleMultiValues<V>)
+io.micronaut.oraclecloud.atp.jdbc.hikari.HikariPoolConfigurationListener (implements io.micronaut.context.event.BeanInitializedEventListener<T>, io.micronaut.core.order.Ordered)
+io.micronaut.http.client.HttpClientConfiguration
+
+io.micronaut.http.client.DefaultHttpClientConfiguration
+
+
+
+
+io.micronaut.oraclecloud.core.InstancePrincipalConfiguration (implements io.micronaut.core.util.Toggleable)
+io.micronaut.oraclecloud.httpclient.netty.ManagedNettyHttpProvider (implements com.oracle.bmc.http.client.HttpProvider)
+io.micrometer.core.instrument.MeterRegistry
+
+io.micrometer.core.instrument.push.PushMeterRegistry
+
+io.micrometer.core.instrument.step.StepMeterRegistry
+
+
+
+
+
+
+io.micronaut.oraclecloud.monitoring.MonitoringIngestionClient
+io.micronaut.oraclecloud.httpclient.netty.NettyClientProperties
+io.micronaut.oraclecloud.httpclient.netty.NettyHttpProvider (implements com.oracle.bmc.http.client.HttpProvider)
+io.micronaut.oraclecloud.function.OciFunction (implements java.lang.AutoCloseable )
+
+
+io.micronaut.oraclecloud.serde.OciSdkMicronautSerializer (implements com.oracle.bmc.http.client.Serializer)
+io.micronaut.oraclecloud.httpclient.netty.visitor.OciSdkModelSerdeVisitor (implements io.micronaut.inject.visitor.TypeElementVisitor<C,E>)
+io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityConfiguration (implements io.micronaut.core.util.Toggleable)
+io.micronaut.oraclecloud.oke.workload.identity.OkeWorkloadIdentityFactory
+io.micronaut.oraclecloud.core.OracleCloudAuthConfigurationProperties
+io.micronaut.oraclecloud.certificates.services.OracleCloudCertificateService
+io.micronaut.oraclecloud.certificates.background.OracleCloudCertificationRefresherTask
+io.micronaut.oraclecloud.core.OracleCloudClientConfigurationProperties
+io.micronaut.oraclecloud.core.OracleCloudConfigCondition (implements io.micronaut.context.condition.Condition)
+io.micronaut.oraclecloud.core.OracleCloudCoreFactory
+io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter (implements ch.qos.logback.contrib.json.JsonFormatter)
+io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataConfiguration (implements io.micronaut.core.util.Toggleable)
+io.micronaut.discovery.cloud.oraclecloud.OracleCloudMetadataResolver (implements io.micronaut.discovery.cloud.ComputeInstanceMetadataResolver)
+io.micronaut.oraclecloud.monitoring.OracleCloudMeterRegistryFactory
+io.micronaut.oraclecloud.monitoring.micrometer.OracleCloudMetricsNamingConvention (implements io.micrometer.core.instrument.config.NamingConvention)
+io.micronaut.oraclecloud.certificates.ssl.OracleCloudSSLContextBuilder (implements io.micronaut.http.server.netty.ssl.ServerSslBuilder)
+io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration
+io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfiguration.OracleCloudVault
+io.micronaut.oraclecloud.discovery.vault.OracleCloudVaultConfigurationClient (implements io.micronaut.discovery.config.ConfigurationClient)
+io.micronaut.oraclecloud.atp.jdbc.OracleWalletArchiveProvider
+java.lang.Record
+
+
+io.netty.handler.ssl.SslContext
+
+
+java.lang.Throwable (implements java.io.Serializable )
+
+
+io.micronaut.oraclecloud.atp.jdbc.ucp.UcpPoolConfigurationListener (implements io.micronaut.context.event.BeanInitializedEventListener<T>, io.micronaut.core.order.Ordered)
+io.micronaut.oraclecloud.atp.wallet.WalletArchive (implements io.micronaut.oraclecloud.atp.wallet.datasource.CanConfigureOracleDataSource )
+io.micronaut.oraclecloud.atp.wallet.WalletModule
+io.micronaut.oraclecloud.atp.wallet.Wallets
+io.micronaut.oraclecloud.atp.wallet.Wallets.Archives
+
+
+
+
+
+Interface Hierarchy
+
+io.micronaut.oraclecloud.atp.wallet.datasource.CanConfigureOracleDataSource
+io.micrometer.core.instrument.Meter
+
+
+io.micrometer.core.instrument.config.MeterRegistryConfig
+
+io.micrometer.core.instrument.push.PushRegistryConfig
+
+io.micrometer.core.instrument.step.StepRegistryConfig
+
+
+
+
+
+
+io.micronaut.oraclecloud.atp.wallet.datasource.OracleDataSourceAttributes <T>
+io.micronaut.serde.config.SerdeConfiguration
+
+
+io.micronaut.serde.config.SerializationConfiguration
+
+
+io.micronaut.oraclecloud.core.TenancyIdProvider
+
+
+
+Annotation Interface Hierarchy
+
+
+
+Enum Class Hierarchy
+
+
+
+
+
+
+
diff --git a/3.9.1/api/package-search-index.js b/3.9.1/api/package-search-index.js
new file mode 100644
index 000000000..5679304f4
--- /dev/null
+++ b/3.9.1/api/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"io.micronaut.discovery.cloud.oraclecloud"},{"l":"io.micronaut.oraclecloud.atp.jdbc"},{"l":"io.micronaut.oraclecloud.atp.jdbc.hikari"},{"l":"io.micronaut.oraclecloud.atp.jdbc.ucp"},{"l":"io.micronaut.oraclecloud.atp.wallet"},{"l":"io.micronaut.oraclecloud.atp.wallet.datasource"},{"l":"io.micronaut.oraclecloud.certificates"},{"l":"io.micronaut.oraclecloud.certificates.background"},{"l":"io.micronaut.oraclecloud.certificates.events"},{"l":"io.micronaut.oraclecloud.certificates.services"},{"l":"io.micronaut.oraclecloud.certificates.ssl"},{"l":"io.micronaut.oraclecloud.clients"},{"l":"io.micronaut.oraclecloud.clients.processor"},{"l":"io.micronaut.oraclecloud.clients.reactor"},{"l":"io.micronaut.oraclecloud.clients.rxjava2"},{"l":"io.micronaut.oraclecloud.core"},{"l":"io.micronaut.oraclecloud.core.sdk"},{"l":"io.micronaut.oraclecloud.discovery.vault"},{"l":"io.micronaut.oraclecloud.function"},{"l":"io.micronaut.oraclecloud.function.http"},{"l":"io.micronaut.oraclecloud.function.http.test"},{"l":"io.micronaut.oraclecloud.httpclient.netty"},{"l":"io.micronaut.oraclecloud.httpclient.netty.visitor"},{"l":"io.micronaut.oraclecloud.logging"},{"l":"io.micronaut.oraclecloud.monitoring"},{"l":"io.micronaut.oraclecloud.monitoring.micrometer"},{"l":"io.micronaut.oraclecloud.monitoring.primitives"},{"l":"io.micronaut.oraclecloud.oke.workload.identity"},{"l":"io.micronaut.oraclecloud.serde"}];updateSearchResults();
\ No newline at end of file
diff --git a/3.9.1/api/resources/glass.png b/3.9.1/api/resources/glass.png
new file mode 100644
index 000000000..a7f591f46
Binary files /dev/null and b/3.9.1/api/resources/glass.png differ
diff --git a/3.9.1/api/resources/x.png b/3.9.1/api/resources/x.png
new file mode 100644
index 000000000..30548a756
Binary files /dev/null and b/3.9.1/api/resources/x.png differ
diff --git a/3.9.1/api/script-dir/jquery-3.6.1.min.js b/3.9.1/api/script-dir/jquery-3.6.1.min.js
new file mode 100644
index 000000000..2c69bc908
--- /dev/null
+++ b/3.9.1/api/script-dir/jquery-3.6.1.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=" ",v.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length
").append(x("").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1
").text(e))},100))}});x.ui.autocomplete});
\ No newline at end of file
diff --git a/3.9.1/api/script.js b/3.9.1/api/script.js
new file mode 100644
index 000000000..864989cf4
--- /dev/null
+++ b/3.9.1/api/script.js
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+ createElem(doc, tag, 'search.js');
+
+ createElem(doc, tag, 'module-search-index.js');
+ createElem(doc, tag, 'package-search-index.js');
+ createElem(doc, tag, 'type-search-index.js');
+ createElem(doc, tag, 'member-search-index.js');
+ createElem(doc, tag, 'tag-search-index.js');
+}
+
+function createElem(doc, tag, path) {
+ var script = doc.createElement(tag);
+ var scriptElement = doc.getElementsByTagName(tag)[0];
+ script.src = pathtoroot + path;
+ scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(tableId, selected, columns) {
+ if (tableId !== selected) {
+ document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
+ .forEach(function(elem) {
+ elem.style.display = 'none';
+ });
+ }
+ document.querySelectorAll('div.' + selected)
+ .forEach(function(elem, index) {
+ elem.style.display = '';
+ var isEvenRow = index % (columns * 2) < columns;
+ elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
+ elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
+ });
+ updateTabs(tableId, selected);
+}
+
+function updateTabs(tableId, selected) {
+ document.querySelector('div#' + tableId +' .summary-table')
+ .setAttribute('aria-labelledby', selected);
+ document.querySelectorAll('button[id^="' + tableId + '"]')
+ .forEach(function(tab, index) {
+ if (selected === tab.id || (tableId === selected && index === 0)) {
+ tab.className = activeTableTab;
+ tab.setAttribute('aria-selected', true);
+ tab.setAttribute('tabindex',0);
+ } else {
+ tab.className = tableTab;
+ tab.setAttribute('aria-selected', false);
+ tab.setAttribute('tabindex',-1);
+ }
+ });
+}
+
+function switchTab(e) {
+ var selected = document.querySelector('[aria-selected=true]');
+ if (selected) {
+ if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
+ // left or up arrow key pressed: move focus to previous tab
+ selected.previousSibling.click();
+ selected.previousSibling.focus();
+ e.preventDefault();
+ } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
+ // right or down arrow key pressed: move focus to next tab
+ selected.nextSibling.click();
+ selected.nextSibling.focus();
+ e.preventDefault();
+ }
+ }
+}
+
+var updateSearchResults = function() {};
+
+function indexFilesLoaded() {
+ return moduleSearchIndex
+ && packageSearchIndex
+ && typeSearchIndex
+ && memberSearchIndex
+ && tagSearchIndex;
+}
+
+// Workaround for scroll position not being included in browser history (8249133)
+document.addEventListener("DOMContentLoaded", function(e) {
+ var contentDiv = document.querySelector("div.flex-content");
+ window.addEventListener("popstate", function(e) {
+ if (e.state !== null) {
+ contentDiv.scrollTop = e.state;
+ }
+ });
+ window.addEventListener("hashchange", function(e) {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ });
+ contentDiv.addEventListener("scroll", function(e) {
+ var timeoutID;
+ if (!timeoutID) {
+ timeoutID = setTimeout(function() {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ timeoutID = null;
+ }, 100);
+ }
+ });
+ if (!location.hash) {
+ history.replaceState(contentDiv.scrollTop, document.title);
+ }
+});
diff --git a/3.9.1/api/search.js b/3.9.1/api/search.js
new file mode 100644
index 000000000..db3b2f4a6
--- /dev/null
+++ b/3.9.1/api/search.js
@@ -0,0 +1,354 @@
+/*
+ * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var noResult = {l: "No results found"};
+var loading = {l: "Loading search index..."};
+var catModules = "Modules";
+var catPackages = "Packages";
+var catTypes = "Classes and Interfaces";
+var catMembers = "Members";
+var catSearchTags = "Search Tags";
+var highlight = "$& ";
+var searchPattern = "";
+var fallbackPattern = "";
+var RANKING_THRESHOLD = 2;
+var NO_MATCH = 0xffff;
+var MIN_RESULTS = 3;
+var MAX_RESULTS = 500;
+var UNNAMED = "";
+function escapeHtml(str) {
+ return str.replace(//g, ">");
+}
+function getHighlightedText(item, matcher, fallbackMatcher) {
+ var escapedItem = escapeHtml(item);
+ var highlighted = escapedItem.replace(matcher, highlight);
+ if (highlighted === escapedItem) {
+ highlighted = escapedItem.replace(fallbackMatcher, highlight)
+ }
+ return highlighted;
+}
+function getURLPrefix(ui) {
+ var urlPrefix="";
+ var slash = "/";
+ if (ui.item.category === catModules) {
+ return ui.item.l + slash;
+ } else if (ui.item.category === catPackages && ui.item.m) {
+ return ui.item.m + slash;
+ } else if (ui.item.category === catTypes || ui.item.category === catMembers) {
+ if (ui.item.m) {
+ urlPrefix = ui.item.m + slash;
+ } else {
+ $.each(packageSearchIndex, function(index, item) {
+ if (item.m && ui.item.p === item.l) {
+ urlPrefix = item.m + slash;
+ }
+ });
+ }
+ }
+ return urlPrefix;
+}
+function createSearchPattern(term) {
+ var pattern = "";
+ var isWordToken = false;
+ term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) {
+ if (index > 0) {
+ // whitespace between identifiers is significant
+ pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*";
+ }
+ var tokens = w.split(/(?=[A-Z,.()<>[\/])/);
+ for (var i = 0; i < tokens.length; i++) {
+ var s = tokens[i];
+ if (s === "") {
+ continue;
+ }
+ pattern += $.ui.autocomplete.escapeRegex(s);
+ isWordToken = /\w$/.test(s);
+ if (isWordToken) {
+ pattern += "([a-z0-9_$<>\\[\\]]*?)";
+ }
+ }
+ });
+ return pattern;
+}
+function createMatcher(pattern, flags) {
+ var isCamelCase = /[A-Z]/.test(pattern);
+ return new RegExp(pattern, flags + (isCamelCase ? "" : "i"));
+}
+var watermark = 'Search';
+$(function() {
+ var search = $("#search-input");
+ var reset = $("#reset-button");
+ search.val('');
+ search.prop("disabled", false);
+ reset.prop("disabled", false);
+ search.val(watermark).addClass('watermark');
+ search.blur(function() {
+ if ($(this).val().length === 0) {
+ $(this).val(watermark).addClass('watermark');
+ }
+ });
+ search.on('click keydown paste', function() {
+ if ($(this).val() === watermark) {
+ $(this).val('').removeClass('watermark');
+ }
+ });
+ reset.click(function() {
+ search.val('').focus();
+ });
+ search.focus()[0].setSelectionRange(0, 0);
+});
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+ _create: function() {
+ this._super();
+ this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
+ },
+ _renderMenu: function(ul, items) {
+ var rMenu = this;
+ var currentCategory = "";
+ rMenu.menu.bindings = $();
+ $.each(items, function(index, item) {
+ var li;
+ if (item.category && item.category !== currentCategory) {
+ ul.append("" + item.category + " ");
+ currentCategory = item.category;
+ }
+ li = rMenu._renderItemData(ul, item);
+ if (item.category) {
+ li.attr("aria-label", item.category + " : " + item.l);
+ li.attr("class", "result-item");
+ } else {
+ li.attr("aria-label", item.l);
+ li.attr("class", "result-item");
+ }
+ });
+ },
+ _renderItem: function(ul, item) {
+ var label = "";
+ var matcher = createMatcher(escapeHtml(searchPattern), "g");
+ var fallbackMatcher = new RegExp(fallbackPattern, "gi")
+ if (item.category === catModules) {
+ label = getHighlightedText(item.l, matcher, fallbackMatcher);
+ } else if (item.category === catPackages) {
+ label = getHighlightedText(item.l, matcher, fallbackMatcher);
+ } else if (item.category === catTypes) {
+ label = (item.p && item.p !== UNNAMED)
+ ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher)
+ : getHighlightedText(item.l, matcher, fallbackMatcher);
+ } else if (item.category === catMembers) {
+ label = (item.p && item.p !== UNNAMED)
+ ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher)
+ : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher);
+ } else if (item.category === catSearchTags) {
+ label = getHighlightedText(item.l, matcher, fallbackMatcher);
+ } else {
+ label = item.l;
+ }
+ var li = $(" ").appendTo(ul);
+ var div = $("
").appendTo(li);
+ if (item.category === catSearchTags && item.h) {
+ if (item.d) {
+ div.html(label + " (" + item.h + ") "
+ + item.d + " ");
+ } else {
+ div.html(label + " (" + item.h + ") ");
+ }
+ } else {
+ if (item.m) {
+ div.html(item.m + "/" + label);
+ } else {
+ div.html(label);
+ }
+ }
+ return li;
+ }
+});
+function rankMatch(match, category) {
+ if (!match) {
+ return NO_MATCH;
+ }
+ var index = match.index;
+ var input = match.input;
+ var leftBoundaryMatch = 2;
+ var periferalMatch = 0;
+ // make sure match is anchored on a left word boundary
+ if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) {
+ leftBoundaryMatch = 0;
+ } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) {
+ leftBoundaryMatch = 1;
+ }
+ var matchEnd = index + match[0].length;
+ var leftParen = input.indexOf("(");
+ var endOfName = leftParen > -1 ? leftParen : input.length;
+ // exclude peripheral matches
+ if (category !== catModules && category !== catSearchTags) {
+ var delim = category === catPackages ? "/" : ".";
+ if (leftParen > -1 && leftParen < index) {
+ periferalMatch += 2;
+ } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) {
+ periferalMatch += 2;
+ }
+ }
+ var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match
+ for (var i = 1; i < match.length; i++) {
+ // lower ranking if parts of the name are missing
+ if (match[i])
+ delta += match[i].length;
+ }
+ if (category === catTypes) {
+ // lower ranking if a type name contains unmatched camel-case parts
+ if (/[A-Z]/.test(input.substring(matchEnd)))
+ delta += 5;
+ if (/[A-Z]/.test(input.substring(0, index)))
+ delta += 5;
+ }
+ return leftBoundaryMatch + periferalMatch + (delta / 200);
+
+}
+function doSearch(request, response) {
+ var result = [];
+ searchPattern = createSearchPattern(request.term);
+ fallbackPattern = createSearchPattern(request.term.toLowerCase());
+ if (searchPattern === "") {
+ return this.close();
+ }
+ var camelCaseMatcher = createMatcher(searchPattern, "");
+ var fallbackMatcher = new RegExp(fallbackPattern, "i");
+
+ function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) {
+ if (indexArray) {
+ var newResults = [];
+ $.each(indexArray, function (i, item) {
+ item.category = category;
+ var ranking = rankMatch(matcher.exec(nameFunc(item)), category);
+ if (ranking < RANKING_THRESHOLD) {
+ newResults.push({ranking: ranking, item: item});
+ }
+ return newResults.length <= MAX_RESULTS;
+ });
+ return newResults.sort(function(e1, e2) {
+ return e1.ranking - e2.ranking;
+ }).map(function(e) {
+ return e.item;
+ });
+ }
+ return [];
+ }
+ function searchIndex(indexArray, category, nameFunc) {
+ var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc);
+ result = result.concat(primaryResults);
+ if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) {
+ var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc);
+ result = result.concat(secondaryResults.filter(function (item) {
+ return primaryResults.indexOf(item) === -1;
+ }));
+ }
+ }
+
+ searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; });
+ searchIndex(packageSearchIndex, catPackages, function(item) {
+ return (item.m && request.term.indexOf("/") > -1)
+ ? (item.m + "/" + item.l) : item.l;
+ });
+ searchIndex(typeSearchIndex, catTypes, function(item) {
+ return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l;
+ });
+ searchIndex(memberSearchIndex, catMembers, function(item) {
+ return request.term.indexOf(".") > -1
+ ? item.p + "." + item.c + "." + item.l : item.l;
+ });
+ searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; });
+
+ if (!indexFilesLoaded()) {
+ updateSearchResults = function() {
+ doSearch(request, response);
+ }
+ result.unshift(loading);
+ } else {
+ updateSearchResults = function() {};
+ }
+ response(result);
+}
+$(function() {
+ $("#search-input").catcomplete({
+ minLength: 1,
+ delay: 300,
+ source: doSearch,
+ response: function(event, ui) {
+ if (!ui.content.length) {
+ ui.content.push(noResult);
+ } else {
+ $("#search-input").empty();
+ }
+ },
+ autoFocus: true,
+ focus: function(event, ui) {
+ return false;
+ },
+ position: {
+ collision: "flip"
+ },
+ select: function(event, ui) {
+ if (ui.item.category) {
+ var url = getURLPrefix(ui);
+ if (ui.item.category === catModules) {
+ url += "module-summary.html";
+ } else if (ui.item.category === catPackages) {
+ if (ui.item.u) {
+ url = ui.item.u;
+ } else {
+ url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
+ }
+ } else if (ui.item.category === catTypes) {
+ if (ui.item.u) {
+ url = ui.item.u;
+ } else if (ui.item.p === UNNAMED) {
+ url += ui.item.l + ".html";
+ } else {
+ url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
+ }
+ } else if (ui.item.category === catMembers) {
+ if (ui.item.p === UNNAMED) {
+ url += ui.item.c + ".html" + "#";
+ } else {
+ url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
+ }
+ if (ui.item.u) {
+ url += ui.item.u;
+ } else {
+ url += ui.item.l;
+ }
+ } else if (ui.item.category === catSearchTags) {
+ url += ui.item.u;
+ }
+ if (top !== window) {
+ parent.classFrame.location = pathtoroot + url;
+ } else {
+ window.location.href = pathtoroot + url;
+ }
+ $("#search-input").focus();
+ }
+ }
+ });
+});
diff --git a/3.9.1/api/serialized-form.html b/3.9.1/api/serialized-form.html
new file mode 100644
index 000000000..0a389800f
--- /dev/null
+++ b/3.9.1/api/serialized-form.html
@@ -0,0 +1,72 @@
+
+
+
+
+Serialized Form (oracle-cloud 3.9.1 API)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
diff --git a/3.9.1/api/stylesheet.css b/3.9.1/api/stylesheet.css
new file mode 100644
index 000000000..4a576bd24
--- /dev/null
+++ b/3.9.1/api/stylesheet.css
@@ -0,0 +1,869 @@
+/*
+ * Javadoc style sheet
+ */
+
+@import url('resources/fonts/dejavu.css');
+
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+}
+iframe {
+ margin:0;
+ padding:0;
+ height:100%;
+ width:100%;
+ overflow-y:scroll;
+ border:none;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[href]:hover, a[href]:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a[name] {
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+}
+h4 {
+ font-size:15px;
+}
+h5 {
+ font-size:14px;
+}
+h6 {
+ font-size:13px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+}
+:not(h1, h2, h3, h4, h5, h6) > code,
+:not(h1, h2, h3, h4, h5, h6) > tt {
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+.summary-table dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+button {
+ font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size: 14px;
+}
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.clear {
+ clear:both;
+ height:0;
+ overflow:hidden;
+}
+.about-language {
+ float:right;
+ padding:0 21px 8px 8px;
+ font-size:11px;
+ margin-top:-9px;
+ height:2.9em;
+}
+.legal-copy {
+ margin-left:.5em;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+ * Styles for navigation bar.
+ */
+@media screen {
+ .flex-box {
+ position:fixed;
+ display:flex;
+ flex-direction:column;
+ height: 100%;
+ width: 100%;
+ }
+ .flex-header {
+ flex: 0 0 auto;
+ }
+ .flex-content {
+ flex: 1 1 auto;
+ overflow-y: auto;
+ }
+}
+.top-nav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ min-height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.sub-nav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.sub-nav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+.sub-nav .nav-list {
+ padding-top:5px;
+}
+ul.nav-list {
+ display:block;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.sub-nav-list {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.nav-list li {
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+.sub-nav .nav-list-search {
+ float:right;
+ margin:0 0 0 0;
+ padding:5px 6px;
+ clear:none;
+}
+.nav-list-search label {
+ position:relative;
+ right:-16px;
+}
+ul.sub-nav-list li {
+ list-style:none;
+ float:left;
+ padding-top:10px;
+}
+.top-nav a:link, .top-nav a:active, .top-nav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.top-nav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.nav-bar-cell1-rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skip-nav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+ * Hide navigation links and search box in print layout
+ */
+@media print {
+ ul.nav-list, div.sub-nav {
+ display:none;
+ }
+}
+/*
+ * Styles for page header and footer.
+ */
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.sub-title {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+ * Styles for headings.
+ */
+body.class-declaration-page .summary h2,
+body.class-declaration-page .details h2,
+body.class-use-page h2,
+body.module-declaration-page .block-list h2 {
+ font-style: italic;
+ padding:0;
+ margin:15px 0;
+}
+body.class-declaration-page .summary h3,
+body.class-declaration-page .details h3,
+body.class-declaration-page .summary .inherited-list h2 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+/*
+ * Styles for page layout containers.
+ */
+main {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+dl.notes > dt {
+ font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+dl.notes > dd {
+ margin:5px 10px 10px 0;
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+dl.name-value > dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+dl.name-value > dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+ * Styles for lists.
+ */
+li.circle {
+ list-style:circle;
+}
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+div.inheritance {
+ margin:0;
+ padding:0;
+}
+div.inheritance div.inheritance {
+ margin-left:2em;
+}
+ul.block-list,
+ul.details-list,
+ul.member-list,
+ul.summary-list {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.block-list > li,
+ul.details-list > li,
+ul.member-list > li,
+ul.summary-list > li {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+.summary-table dl, .summary-table dl dt, .summary-table dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+ul.see-list, ul.see-list-long {
+ padding-left: 0;
+ list-style: none;
+}
+ul.see-list li {
+ display: inline;
+}
+ul.see-list li:not(:last-child):after,
+ul.see-list-long li:not(:last-child):after {
+ content: ", ";
+ white-space: pre-wrap;
+}
+/*
+ * Styles for tables.
+ */
+.summary-table, .details-table {
+ width:100%;
+ border-spacing:0;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+ padding:0;
+}
+.caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0;
+ white-space:pre;
+}
+.caption a:link, .caption a:visited {
+ color:#1f389c;
+}
+.caption a:hover,
+.caption a:active {
+ color:#FFFFFF;
+}
+.caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+div.table-tabs {
+ padding:10px 0 0 1px;
+ margin:0;
+}
+div.table-tabs > button {
+ border: none;
+ cursor: pointer;
+ padding: 5px 12px 7px 12px;
+ font-weight: bold;
+ margin-right: 3px;
+}
+div.table-tabs > button.active-table-tab {
+ background: #F8981D;
+ color: #253441;
+}
+div.table-tabs > button.table-tab {
+ background: #4D7A97;
+ color: #FFFFFF;
+}
+.two-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+}
+.three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
+}
+.four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
+}
+@media screen and (max-width: 600px) {
+ .two-column-summary {
+ display: grid;
+ grid-template-columns: 1fr;
+ }
+}
+@media screen and (max-width: 800px) {
+ .three-column-summary {
+ display: grid;
+ grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
+ }
+ .three-column-summary .col-last {
+ grid-column-end: span 2;
+ }
+}
+@media screen and (max-width: 1000px) {
+ .four-column-summary {
+ display: grid;
+ grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+ }
+}
+.summary-table > div, .details-table > div {
+ text-align:left;
+ padding: 8px 3px 3px 7px;
+}
+.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name {
+ vertical-align:top;
+ padding-right:0;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+.table-header {
+ background:#dee3e9;
+ font-weight: bold;
+}
+.col-first, .col-first {
+ font-size:13px;
+}
+.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last {
+ font-size:13px;
+}
+.col-first, .col-second, .col-constructor-name {
+ vertical-align:top;
+ overflow: auto;
+}
+.col-last {
+ white-space:normal;
+}
+.col-first a:link, .col-first a:visited,
+.col-second a:link, .col-second a:visited,
+.col-first a:link, .col-first a:visited,
+.col-second a:link, .col-second a:visited,
+.col-constructor-name a:link, .col-constructor-name a:visited,
+.col-summary-item-name a:link, .col-summary-item-name a:visited,
+.constant-values-container a:link, .constant-values-container a:visited,
+.all-classes-container a:link, .all-classes-container a:visited,
+.all-packages-container a:link, .all-packages-container a:visited {
+ font-weight:bold;
+}
+.table-sub-heading-color {
+ background-color:#EEEEFF;
+}
+.even-row-color, .even-row-color .table-header {
+ background-color:#FFFFFF;
+}
+.odd-row-color, .odd-row-color .table-header {
+ background-color:#EEEEEF;
+}
+/*
+ * Styles for contents.
+ */
+.deprecated-content {
+ margin:0;
+ padding:10px 0;
+}
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+.col-last div {
+ padding-top:0;
+}
+.col-last a {
+ padding-bottom:3px;
+}
+.module-signature,
+.package-signature,
+.type-signature,
+.member-signature {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ margin:14px 0;
+ white-space: pre-wrap;
+}
+.module-signature,
+.package-signature,
+.type-signature {
+ margin-top: 0;
+}
+.member-signature .type-parameters-long,
+.member-signature .parameters,
+.member-signature .exceptions {
+ display: inline-block;
+ vertical-align: top;
+ white-space: pre;
+}
+.member-signature .type-parameters {
+ white-space: normal;
+}
+/*
+ * Styles for formatting effect.
+ */
+.source-line-no {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:0 10px 5px 0;
+ color:#474747;
+}
+.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link,
+.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type,
+.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label {
+ font-weight:bold;
+}
+.deprecation-comment, .help-footnote, .preview-comment {
+ font-style:italic;
+}
+.deprecation-block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+ border-style:solid;
+ border-width:thin;
+ border-radius:10px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+.preview-block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+ border-style:solid;
+ border-width:thin;
+ border-radius:10px;
+ padding:10px;
+ margin-bottom:10px;
+ margin-right:10px;
+ display:inline-block;
+}
+div.block div.deprecation-comment {
+ font-style:normal;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+ display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-autocomplete-category {
+ font-weight:bold;
+ font-size:15px;
+ padding:7px 0 7px 3px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+}
+.result-item {
+ font-size:13px;
+}
+.ui-autocomplete {
+ max-height:85%;
+ max-width:65%;
+ overflow-y:scroll;
+ overflow-x:scroll;
+ white-space:nowrap;
+ box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+ position:fixed;
+ z-index:999999;
+ background-color: #FFFFFF;
+}
+ul.ui-autocomplete li {
+ float:left;
+ clear:both;
+ width:100%;
+}
+.result-highlight {
+ font-weight:bold;
+}
+.ui-autocomplete .result-item {
+ font-size: inherit;
+}
+#search-input {
+ background-image:url('resources/glass.png');
+ background-size:13px;
+ background-repeat:no-repeat;
+ background-position:2px 3px;
+ padding-left:20px;
+ position:relative;
+ right:-18px;
+ width:400px;
+}
+#reset-button {
+ background-color: rgb(255,255,255);
+ background-image:url('resources/x.png');
+ background-position:center;
+ background-repeat:no-repeat;
+ background-size:12px;
+ border:0 none;
+ width:16px;
+ height:16px;
+ position:relative;
+ left:-4px;
+ top:-4px;
+ font-size:0px;
+}
+.watermark {
+ color:#545454;
+}
+.search-tag-desc-result {
+ font-style:italic;
+ font-size:11px;
+}
+.search-tag-holder-result {
+ font-style:italic;
+ font-size:12px;
+}
+.search-tag-result:target {
+ background-color:yellow;
+}
+.module-graph span {
+ display:none;
+ position:absolute;
+}
+.module-graph:hover span {
+ display:block;
+ margin: -100px 0 0 100px;
+ z-index: 1;
+}
+.inherited-list {
+ margin: 10px 0 10px 0;
+}
+section.class-description {
+ line-height: 1.4;
+}
+.summary section[class$="-summary"], .details section[class$="-details"],
+.class-uses .detail, .serialized-class-details {
+ padding: 0px 20px 5px 10px;
+ border: 1px solid #ededed;
+ background-color: #f8f8f8;
+}
+.inherited-list, section[class$="-details"] .detail {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+.vertical-separator {
+ padding: 0 5px;
+}
+ul.help-section-list {
+ margin: 0;
+}
+ul.help-subtoc > li {
+ display: inline-block;
+ padding-right: 5px;
+ font-size: smaller;
+}
+ul.help-subtoc > li::before {
+ content: "\2022" ;
+ padding-right:2px;
+}
+span.help-note {
+ font-style: italic;
+}
+/*
+ * Indicator icon for external links.
+ */
+main a[href*="://"]::after {
+ content:"";
+ display:inline-block;
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+ background-size:100% 100%;
+ width:7px;
+ height:7px;
+ margin-left:2px;
+ margin-bottom:4px;
+}
+main a[href*="://"]:hover::after,
+main a[href*="://"]:focus::after {
+ background-image:url('data:image/svg+xml; utf8, \
+ \
+ \
+ ');
+}
+
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ * No borders, vertical margins, styled caption.
+ * This style is provided for use with existing doc comments.
+ * In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ * Plain borders around table and cells, vertical margins, styled caption.
+ * Best for small tables or for complex tables for tables with cells that span
+ * rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ * Borders around the table and vertical borders between cells, striped rows,
+ * vertical margins, styled caption.
+ * Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+ font-weight: bold;
+ font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+ padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+ border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+ background-color: transparent;
+}
+table.plain {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+ background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+ border: 1px solid black;
+}
+table.striped {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+table.striped > thead {
+ background-color: #E3E3E3;
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+ border: 1px solid black;
+}
+table.striped > tbody > tr:nth-child(even) {
+ background-color: #EEE
+}
+table.striped > tbody > tr:nth-child(odd) {
+ background-color: #FFF
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+ border-left: 1px solid black;
+ border-right: 1px solid black;
+}
+table.striped > tbody > tr > th {
+ font-weight: normal;
+}
+/**
+ * Tweak font sizes and paddings for small screens.
+ */
+@media screen and (max-width: 1050px) {
+ #search-input {
+ width: 300px;
+ }
+}
+@media screen and (max-width: 800px) {
+ #search-input {
+ width: 200px;
+ }
+ .top-nav,
+ .bottom-nav {
+ font-size: 11px;
+ padding-top: 6px;
+ }
+ .sub-nav {
+ font-size: 11px;
+ }
+ .about-language {
+ padding-right: 16px;
+ }
+ ul.nav-list li,
+ .sub-nav .nav-list-search {
+ padding: 6px;
+ }
+ ul.sub-nav-list li {
+ padding-top: 5px;
+ }
+ main {
+ padding: 10px;
+ }
+ .summary section[class$="-summary"], .details section[class$="-details"],
+ .class-uses .detail, .serialized-class-details {
+ padding: 0 8px 5px 8px;
+ }
+ body {
+ -webkit-text-size-adjust: none;
+ }
+}
+@media screen and (max-width: 500px) {
+ #search-input {
+ width: 150px;
+ }
+ .top-nav,
+ .bottom-nav {
+ font-size: 10px;
+ }
+ .sub-nav {
+ font-size: 10px;
+ }
+ .about-language {
+ font-size: 10px;
+ padding-right: 12px;
+ }
+}
diff --git a/3.9.1/api/tag-search-index.js b/3.9.1/api/tag-search-index.js
new file mode 100644
index 000000000..bf10aaf6d
--- /dev/null
+++ b/3.9.1/api/tag-search-index.js
@@ -0,0 +1 @@
+tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"},{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults();
\ No newline at end of file
diff --git a/3.9.1/api/type-search-index.js b/3.9.1/api/type-search-index.js
new file mode 100644
index 000000000..7c91091b2
--- /dev/null
+++ b/3.9.1/api/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"p":"io.micronaut.oraclecloud.core.sdk","l":"AbstractSdkClientFactory"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"io.micronaut.oraclecloud.atp.wallet","l":"Wallets.Archives"},{"p":"io.micronaut.oraclecloud.clients.rxjava2","l":"AsyncHandlerEmitter"},{"p":"io.micronaut.oraclecloud.clients.reactor","l":"AsyncHandlerSink"},{"p":"io.micronaut.oraclecloud.atp.jdbc","l":"AutonomousDatabaseConfiguration"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","l":"CanConfigureOracleDataSource"},{"p":"io.micronaut.oraclecloud.certificates.events","l":"CertificateEvent"},{"p":"io.micronaut.oraclecloud.certificates.ssl","l":"DelegatedSslContext"},{"p":"io.micronaut.oraclecloud.function.http.test","l":"FnHttpTest"},{"p":"io.micronaut.oraclecloud.function.http","l":"FnMultiValueMap"},{"p":"io.micronaut.oraclecloud.atp.jdbc.hikari","l":"HikariPoolConfigurationListener"},{"p":"io.micronaut.oraclecloud.function.http","l":"HttpFunction"},{"p":"io.micronaut.oraclecloud.core","l":"InstancePrincipalConfiguration"},{"p":"io.micronaut.oraclecloud.clients","l":"SdkClients.Kind"},{"p":"io.micronaut.oraclecloud.httpclient.netty","l":"ManagedNettyHttpProvider"},{"p":"io.micronaut.oraclecloud.monitoring","l":"MonitoringIngestionClient"},{"p":"io.micronaut.oraclecloud.httpclient.netty","l":"NettyClientProperties"},{"p":"io.micronaut.oraclecloud.httpclient.netty","l":"NettyHttpProvider"},{"p":"io.micronaut.oraclecloud.function","l":"OciFunction"},{"p":"io.micronaut.oraclecloud.serde","l":"OciSdkMicronautSerializer"},{"p":"io.micronaut.oraclecloud.httpclient.netty.visitor","l":"OciSdkModelSerdeVisitor"},{"p":"io.micronaut.oraclecloud.serde","l":"OciSerdeConfiguration"},{"p":"io.micronaut.oraclecloud.serde","l":"OciSerializationConfiguration"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","l":"OkeHttpClientConfiguration"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","l":"OkeWorkloadIdentityConfiguration"},{"p":"io.micronaut.oraclecloud.oke.workload.identity","l":"OkeWorkloadIdentityFactory"},{"p":"io.micronaut.oraclecloud.logging","l":"OracleCloudAppender"},{"p":"io.micronaut.oraclecloud.core","l":"OracleCloudAuthConfigurationProperties"},{"p":"io.micronaut.oraclecloud.certificates.services","l":"OracleCloudCertificateService"},{"p":"io.micronaut.oraclecloud.certificates.background","l":"OracleCloudCertificationRefresherTask"},{"p":"io.micronaut.oraclecloud.certificates","l":"OracleCloudCertificationsConfiguration"},{"p":"io.micronaut.oraclecloud.core","l":"OracleCloudClientConfigurationProperties"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","l":"OracleCloudConfig"},{"p":"io.micronaut.oraclecloud.core","l":"OracleCloudConfigCondition"},{"p":"io.micronaut.oraclecloud.core","l":"OracleCloudConfigFileConfigurationProperties"},{"p":"io.micronaut.oraclecloud.core","l":"OracleCloudCoreFactory"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","l":"OracleCloudCounter"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","l":"OracleCloudDatapointProducer"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","l":"OracleCloudDistributionSummary"},{"p":"io.micronaut.discovery.cloud.oraclecloud","l":"OracleCloudInstanceMetadata"},{"p":"io.micronaut.oraclecloud.logging","l":"OracleCloudJsonFormatter"},{"p":"io.micronaut.discovery.cloud.oraclecloud","l":"OracleCloudMetadataConfiguration"},{"p":"io.micronaut.discovery.cloud.oraclecloud","l":"OracleCloudMetadataKeys"},{"p":"io.micronaut.discovery.cloud.oraclecloud","l":"OracleCloudMetadataResolver"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","l":"OracleCloudMeterRegistry"},{"p":"io.micronaut.oraclecloud.monitoring","l":"OracleCloudMeterRegistryFactory"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","l":"OracleCloudMetricsNamingConvention"},{"p":"io.micronaut.oraclecloud.monitoring.micrometer","l":"OracleCloudRawMeterRegistry"},{"p":"io.micronaut.oraclecloud.clients.processor","l":"OracleCloudSdkProcessor"},{"p":"io.micronaut.oraclecloud.certificates.ssl","l":"OracleCloudSSLContextBuilder"},{"p":"io.micronaut.oraclecloud.monitoring.primitives","l":"OracleCloudTimer"},{"p":"io.micronaut.oraclecloud.discovery.vault","l":"OracleCloudVaultConfiguration.OracleCloudVault"},{"p":"io.micronaut.oraclecloud.discovery.vault","l":"OracleCloudVaultConfiguration.OracleCloudVaultClientDiscoveryConfiguration"},{"p":"io.micronaut.oraclecloud.discovery.vault","l":"OracleCloudVaultConfiguration"},{"p":"io.micronaut.oraclecloud.discovery.vault","l":"OracleCloudVaultConfigurationClient"},{"p":"io.micronaut.oraclecloud.atp.wallet.datasource","l":"OracleDataSourceAttributes"},{"p":"io.micronaut.oraclecloud.atp.jdbc","l":"OracleWalletArchiveProvider"},{"p":"io.micronaut.oraclecloud.clients","l":"SdkClients"},{"p":"io.micronaut.oraclecloud.core","l":"TenancyIdProvider"},{"p":"io.micronaut.oraclecloud.atp.jdbc.ucp","l":"UcpPoolConfigurationListener"},{"p":"io.micronaut.oraclecloud.atp.wallet","l":"WalletArchive"},{"p":"io.micronaut.oraclecloud.atp.wallet","l":"WalletException"},{"p":"io.micronaut.oraclecloud.atp.wallet","l":"WalletModule"},{"p":"io.micronaut.oraclecloud.atp.wallet","l":"Wallets"}];updateSearchResults();
\ No newline at end of file
diff --git a/3.9.1/css/custom-pdf.css b/3.9.1/css/custom-pdf.css
new file mode 100644
index 000000000..509046564
--- /dev/null
+++ b/3.9.1/css/custom-pdf.css
@@ -0,0 +1,3 @@
+/*
+ Dummy stylesheet allowing for some customisation of pdf output without having to copy and modify the other stylesheets.
+*/
\ No newline at end of file
diff --git a/3.9.1/css/custom.css b/3.9.1/css/custom.css
new file mode 100644
index 000000000..2c2d52531
--- /dev/null
+++ b/3.9.1/css/custom.css
@@ -0,0 +1,484 @@
+#table-of-content-nav-link {
+ position: fixed;
+ top: 5px;
+ right: 5px;
+ background-color: #000000;
+ width: 64px;
+ height: 44px;
+ z-index: 1000;
+ font-size: 1.5em;
+}
+#table-of-content-nav-link a {
+ color: #ffffff !important;
+ text-decoration: none;
+}
+
+#navigation {
+ height: 75px !important;
+ position: fixed;
+ width: 100%;
+ z-index: 999;
+ margin-top: -2px;
+}
+.navLinks {
+ padding-top: 15px;
+}
+
+.navLinks a:visited,
+.navLinks a:active,
+.navLinks a:hover,
+.navLinks a {
+ text-decoration: none !important;
+}
+.navTitle {
+ width: auto;
+ background: none;
+ float: left;
+ max-width: 200px;
+ padding: 0 5px 0 0 !important;
+}
+.navTitle img {width: 100%;}
+@media screen and (min-width: 375px) {
+ .navTitle {
+ max-width: available;
+ }
+}
+
+.wiki-table th, #navigation {
+ background: #000000 !important;
+}
+#navigation ul {
+ padding-top: 0;
+}
+#navigation a {
+ color: #FFFFFF !important;
+ text-shadow: none !important;
+}
+#navigation .selected a {
+ background: transparent !important;
+}
+#navigation a:hover {
+ color: #FFFFFF !important;
+ background: transparent !important;
+}
+
+#navigation .navTitle a:hover {
+ background: #000000 !important;
+}
+
+#nav-summary #nav-summary-childs a:hover {
+ color: #FFFFFF !important;
+}
+
+#navigation .selected a:hover,
+#navigation .active .button {
+ background: #FFFFFF !important;
+ color: #000000 !important;
+}
+
+a,
+a:hover,
+a:focus,
+a:active,
+a:hover,
+#table-of-content a:hover strong,
+#table-of-content a strong,
+.menu a:hover,
+.local .local-title .toggle a {
+ color: #255AA8 !important;
+}
+
+#table-of-content a:hover {
+ border-right: 2px solid #255AA8 !important;
+}
+#table-of-content a.toc-item-highlighted {
+ font-weight: bold;
+ color: #000000 !important;
+ border-right: 5px solid #000000 !important;
+}
+
+#table-of-content a.toc-item-highlighted strong {
+ color: #000000 !important;
+}
+
+
+.menu .menu-block h1,
+#main .project strong,
+#main h1,
+#main h2 {
+ font-weight: bold !important;
+ color: #000000 !important;
+}
+.navTitle {
+ background-image: none !important;
+}
+.navTitle #logo img {
+ margin: 8px 0;
+ height: 50px !important;
+}
+
+#navigation #nav-summary-childs {
+ background: #000000 !important;
+ margin-top: 75px;
+}
+
+#navigation #nav-summary-childs a:hover {
+ text-decoration: underline;
+}
+.mobile {
+ display: block;
+}
+.desktop {
+ display: none;
+}
+@media screen and (min-width: 768px) {
+ .mobile {
+ display: none;
+ }
+ .desktop {
+ display: block;
+ }
+}
+
+#main {
+ margin: 0 !important;
+}
+
+#main a {
+ text-decoration: none;
+}
+#main a:hover {
+ text-decoration: underline;
+}
+
+#main .paragraph a {
+ text-decoration: underline;
+}
+#main {
+ margin-left: 0 !important;
+ padding-left: 0;
+ padding-top: 0 !important;
+}
+
+.docs-content {
+ padding-left: 25px;
+ padding-right: 25px;
+}
+
+.docs-content h1,
+.docs-content h2,
+.docs-content h3 {
+ text-align: left !important;
+}
+
+#table-of-content {
+ margin-top: 95px;
+}
+
+.toc-content {
+ padding: 20px 5px 50px;
+}
+
+
+@media only screen and (min-width: 768px) {
+ .project {
+ margin-top: 75px;
+ }
+ body#docs #main {
+ padding-left: 25em;
+ margin-left: 0;
+ margin-right: 0;
+ }
+
+ #table-of-content {
+ margin-top: 0;
+ background-color: #f8f8f7;
+ position: fixed;
+ width: 25em;
+ left: 0;
+ top: 0;
+ border-right: 1px solid #efefed;
+ border-top-width: 0!important;
+ border-bottom-width: 0!important;
+ z-index: 998;
+ padding: 0.1em;
+ height: 100%;
+ overflow: scroll;
+ text-align: left;
+ }
+ #table-of-content h2 {
+ margin: 0 5px;
+ }
+}
+
+*[id]:before {
+ display: block;
+ content: " ";
+ margin-top: -95px;
+ height: 95px;
+ visibility: hidden;
+}
+
+@media print {
+ .contribute-btn, .no-print, .no-print * {
+ display: none !important;
+ }
+}
+
+.copytoclipboard {
+ cursor: pointer;
+ background-color: lightgray;
+ color: #000000;
+ float: right;
+ padding: 10px 15px;
+ font-size: 10px;
+ margin-right: 20px;
+ display: block;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+
+/*
+
+Changes to make individual pages render properly
+
+*/
+#col1 {
+ padding-top: 100px;
+}
+
+#col2 {
+ display: none !important;
+}
+
+.corner-all #table-of-content {
+ display: none;
+}
+
+.corner-all .project {
+ display: none;
+}
+
+/*
+
+Dark theme overrides
+
+*/
+
+.dark-mode #table-of-content {
+ background-color: #222222 !important;
+ color: #999 !important;
+ border-right-color: #444 !important;
+}
+
+html .dark-mode, body.dark-mode, .dark-mode #main, .dark-mode .docs-content {
+ background-color: #333333;
+ color: #ccc;
+ scrollbar-color: #555 #333333;
+ scrollbar-width: thin;
+}
+
+.dark-mode .menu .menu-block h1, .dark-mode #main .project strong, .dark-mode #main h1, .dark-mode #main h2 {
+ color: white !important;
+}
+
+.dark-mode .btn-default {
+ border-color: #444;
+ background-color: #484848;
+ color: #ddd;
+}
+
+.dark-mode :not(pre) > code {
+ background-color: rgba(33, 33, 33, 0.4);
+ color: #ddd;
+}
+
+.dark-mode h1, .dark-mode h2, .dark-mode h3, .dark-mode #toctitle, .dark-mode .sidebarblock > .content > .title,
+.dark-mode h4, .dark-mode h5, .dark-mode h6 {
+ color: #f0bcb4
+}
+
+.dark-mode a, .dark-mode a:hover, .dark-mode a:focus, .dark-mode a:active, .dark-mode a:hover,
+.dark-mode #table-of-content a:hover strong, .dark-mode #table-of-content a strong, .dark-mode .menu a:hover,
+.dark-mode .local .local-title .toggle a {
+ color: #77aeff !important;
+}
+
+.dark-mode .subheader, .dark-mode .admonitionblock td.content > .title, .dark-mode .audioblock > .title,
+.dark-mode .exampleblock > .title, .dark-mode .imageblock > .title, .dark-mode .listingblock > .title,
+.dark-mode .literalblock > .title, .dark-mode .stemblock > .title, .dark-mode .openblock > .title,
+.dark-mode .paragraph > .title, .dark-mode .quoteblock > .title, .dark-mode table.tableblock > .title,
+.dark-mode .verseblock > .title, .dark-mode .videoblock > .title, .dark-mode .dlist > .title,
+.dark-mode .olist > .title, .dark-mode .ulist > .title, .dark-mode .qlist > .title, .dark-mode .hdlist > .title,
+.dark-mode .quoteblock blockquote::before {
+ color: #ff9686;
+}
+
+.dark-mode .note {
+ background-color: #004b7b;
+ border: 0;
+ border-radius: 4px;
+ color: #ddd;
+}
+
+.dark-mode .warning {
+ background-color: #550;
+ border: 0;
+ border-radius: 4px;
+ color: #ddd;
+}
+
+.dark-mode .important {
+ border-radius: 4px;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ padding: 10px;
+ line-height: 100%;
+ width: 80%;
+ background-color: #aa0000;
+}
+
+.dark-mode .admonitionblock td.icon .icon-important::before {
+ color: white;
+}
+
+.dark-mode table tr th, .dark-mode table tr td {
+ color: rgba(255, 255, 255, 0.7);
+}
+
+.dark-mode .conum[data-value] {
+ color: black !important;
+ background-color: rgba(255, 255, 255,.8) !important;
+}
+
+.dark-mode .admonitionblock > table td.content {
+ color: rgba(255, 255, 255, 0.8);
+ border-left: 0px none;
+}
+
+.dark-mode .admonitionblock td.icon .icon-note::before, .dark-mode .admonitionblock td.icon [class^="fa icon-"],
+.dark-mode .admonitionblock td.icon .icon-tip::before {
+ text-shadow: none;
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.dark-mode .multi-language-selector .language-option.selected {
+ background-color: #222222;
+ border-color: #222222;
+ color: #dddddd;
+}
+
+.dark-mode .copytoclipboard {
+ background-color: #1a1a1a;
+ color: #aaaaaa;
+}
+
+.dark-mode .literalblock pre, .dark-mode .listingblock pre:not(.highlight),
+.dark-mode .listingblock pre[class="highlight"], .dark-mode .listingblock pre[class^="highlight "],
+.dark-mode .listingblock pre.CodeRay, .dark-mode .listingblock pre.prettyprint {
+ background-color: #222222;
+}
+
+.dark-mode .multi-language-selector .language-option {
+ background-color: #4a4a4a;
+ border: 1px solid #3a3a3a;
+ border-bottom: 0px none;
+}
+
+.dark-mode table.tableblock, .dark-mode th.tableblock, .dark-mode td.tableblock {
+ border-color: #222222;
+}
+
+.dark-mode table thead, .dark-mode table tfoot {
+ background: #222222;
+ color: #dddddd;
+}
+
+.dark-mode table tr.even, .dark-mode table tr.alt, .dark-mode table tr:nth-of-type(2n), .dark-mode .hljs {
+ background: #2a2a2a;
+}
+
+.dark-mode .hdlist > table > tbody > tr, .dark-mode .colist > table > tbody > tr {
+ background: none;
+}
+
+.dark-mode table thead tr th, .dark-mode table thead tr td, .dark-mode table tfoot tr th, .dark-mode table tfoot tr td, .dark-mode pre, .dark-mode pre > code {
+ color: #ddd;
+}
+
+.dark-mode .sect1 + .sect1 {
+ border-top: 1px solid #222222;
+}
+
+.dark-mode #table-of-content a.toc-item-highlighted {
+ color: white !important;
+ border-right-color: white !important;
+}
+
+.dark-mode #table-of-content a:hover, .dark-mode div#navigation #nav-summary-childs a {
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.9);
+}
+
+.dark-mode .quoteblock blockquote, .dark-mode .quoteblock blockquote p {
+ color: #aaa;
+}
+
+.dark-mode * {
+ scrollbar-color: #555 rgba(0, 0, 0, 0.3);
+ scrollbar-width: thin;
+}
+
+/* For mobile phones: */
+@media only screen and (max-width: 428px) and (orientation: portrait), only screen and (max-width: 926px) and (orientation: landscape) {
+ #main {
+ border: 0;
+ padding: 0 !important;
+ }
+
+ #navigation ul li {
+ padding: 7px 0;
+ }
+
+ #table-of-content {
+ margin-top: 50px;
+ }
+
+ .toc-content {
+ padding-left: 20px;
+ }
+
+ table {
+ display: block;
+ overflow-x: auto;
+ white-space: nowrap;
+ }
+
+ code {
+ word-break: break-word;
+ }
+
+ .contribute-btn {
+ bottom: auto;
+ float: none;
+ right: auto;
+ position: unset;
+ margin-bottom: 7px;
+ }
+
+ .contribute-btn .btn {
+ font-size: 11px;
+ padding: 4px 9px;
+ }
+
+ .note {
+ width: auto;
+ }
+
+ h1 {
+ margin-bottom: 0.1em;
+ }
+
+ .listingblock > div {
+ overflow: hidden;
+ }
+}
diff --git a/3.9.1/css/highlight/agate.css b/3.9.1/css/highlight/agate.css
new file mode 100644
index 000000000..8d64547c5
--- /dev/null
+++ b/3.9.1/css/highlight/agate.css
@@ -0,0 +1,108 @@
+/*!
+ * Agate by Taufik Nurrohman
+ * ----------------------------------------------------
+ *
+ * #ade5fc
+ * #a2fca2
+ * #c6b4f0
+ * #d36363
+ * #fcc28c
+ * #fc9b9b
+ * #ffa
+ * #fff
+ * #333
+ * #62c8f3
+ * #888
+ *
+ */
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #333;
+ color: white;
+}
+
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-code,
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-tag {
+ color: #62c8f3;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ade5fc;
+}
+
+.hljs-string,
+.hljs-bullet {
+ color: #a2fca2;
+}
+
+.hljs-type,
+.hljs-title,
+.hljs-section,
+.hljs-attribute,
+.hljs-quote,
+.hljs-built_in,
+.hljs-builtin-name {
+ color: #ffa;
+}
+
+.hljs-number,
+.hljs-symbol,
+.hljs-bullet {
+ color: #d36363;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+ color: #fcc28c;
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-code {
+ color: #888;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #c6b4f0;
+}
+
+.hljs-meta {
+ color: #fc9b9b;
+}
+
+.hljs-deletion {
+ background-color: #fc9b9b;
+ color: #333;
+}
+
+.hljs-addition {
+ background-color: #a2fca2;
+ color: #333;
+}
+
+.hljs a {
+ color: inherit;
+}
+
+.hljs a:focus,
+.hljs a:hover {
+ color: inherit;
+ text-decoration: underline;
+}
diff --git a/3.9.1/css/highlight/androidstudio.css b/3.9.1/css/highlight/androidstudio.css
new file mode 100644
index 000000000..bc8e473b5
--- /dev/null
+++ b/3.9.1/css/highlight/androidstudio.css
@@ -0,0 +1,66 @@
+/*
+Date: 24 Fev 2015
+Author: Pedro Oliveira
+*/
+
+.hljs {
+ color: #a9b7c6;
+ background: #282b2e;
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+}
+
+.hljs-number,
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet {
+ color: #6897BB;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-deletion {
+ color: #cc7832;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link {
+ color: #629755;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #808080;
+}
+
+.hljs-meta {
+ color: #bbb529;
+}
+
+.hljs-string,
+.hljs-attribute,
+.hljs-addition {
+ color: #6A8759;
+}
+
+.hljs-section,
+.hljs-title,
+.hljs-type {
+ color: #ffc66d;
+}
+
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #e8bf6a;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/arduino-light.css b/3.9.1/css/highlight/arduino-light.css
new file mode 100644
index 000000000..4b8b7fd3c
--- /dev/null
+++ b/3.9.1/css/highlight/arduino-light.css
@@ -0,0 +1,88 @@
+/*
+
+Arduino® Light Theme - Stefania Mellai
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #FFFFFF;
+}
+
+.hljs,
+.hljs-subst {
+ color: #434f54;
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-doctag,
+.hljs-name {
+ color: #00979D;
+}
+
+.hljs-built_in,
+.hljs-literal,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #D35400;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #00979D;
+}
+
+.hljs-type,
+.hljs-string,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #005C5F;
+}
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold;
+}
+
+.hljs-comment {
+ color: rgba(149,165,166,.8);
+}
+
+.hljs-meta-keyword {
+ color: #728E00;
+}
+
+.hljs-meta {
+ color: #728E00;
+ color: #434f54;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-function {
+ color: #728E00;
+}
+
+.hljs-number {
+ color: #8A7B52;
+}
diff --git a/3.9.1/css/highlight/arta.css b/3.9.1/css/highlight/arta.css
new file mode 100644
index 000000000..75ef3a9e5
--- /dev/null
+++ b/3.9.1/css/highlight/arta.css
@@ -0,0 +1,73 @@
+/*
+Date: 17.V.2011
+Author: pumbur
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #222;
+}
+
+.hljs,
+.hljs-subst {
+ color: #aaa;
+}
+
+.hljs-section {
+ color: #fff;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+ color: #444;
+}
+
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-regexp {
+ color: #ffcc33;
+}
+
+.hljs-number,
+.hljs-addition {
+ color: #00cc66;
+}
+
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-link {
+ color: #32aaee;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #6644aa;
+}
+
+.hljs-title,
+.hljs-variable,
+.hljs-deletion,
+.hljs-template-tag {
+ color: #bb1166;
+}
+
+.hljs-section,
+.hljs-doctag,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/ascetic.css b/3.9.1/css/highlight/ascetic.css
new file mode 100644
index 000000000..48397e889
--- /dev/null
+++ b/3.9.1/css/highlight/ascetic.css
@@ -0,0 +1,45 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: white;
+ color: black;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-section,
+.hljs-addition,
+.hljs-attribute,
+.hljs-link {
+ color: #888;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta,
+.hljs-deletion {
+ color: #ccc;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-name,
+.hljs-type,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/atelier-cave-dark.css b/3.9.1/css/highlight/atelier-cave-dark.css
new file mode 100644
index 000000000..65428f3b1
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-cave-dark.css
@@ -0,0 +1,83 @@
+/* Base16 Atelier Cave Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Cave Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #7e7887;
+}
+
+/* Atelier-Cave Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-regexp,
+.hljs-link,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #be4678;
+}
+
+/* Atelier-Cave Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #aa573c;
+}
+
+/* Atelier-Cave Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #2a9292;
+}
+
+/* Atelier-Cave Blue */
+.hljs-title,
+.hljs-section {
+ color: #576ddb;
+}
+
+/* Atelier-Cave Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #955ae7;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #19171c;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #be4678;
+}
+
+.hljs-addition {
+ background-color: #2a9292;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #19171c;
+ color: #8b8792;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-cave-light.css b/3.9.1/css/highlight/atelier-cave-light.css
new file mode 100644
index 000000000..b419f9fd8
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-cave-light.css
@@ -0,0 +1,85 @@
+/* Base16 Atelier Cave Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Cave Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #655f6d;
+}
+
+/* Atelier-Cave Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #be4678;
+}
+
+/* Atelier-Cave Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #aa573c;
+}
+
+/* Atelier-Cave Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #2a9292;
+}
+
+/* Atelier-Cave Blue */
+.hljs-title,
+.hljs-section {
+ color: #576ddb;
+}
+
+/* Atelier-Cave Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #955ae7;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #19171c;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #be4678;
+}
+
+.hljs-addition {
+ background-color: #2a9292;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #efecf4;
+ color: #585260;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-dune-dark.css b/3.9.1/css/highlight/atelier-dune-dark.css
new file mode 100644
index 000000000..1684f5225
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-dune-dark.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Dune Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Dune Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #999580;
+}
+
+/* Atelier-Dune Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #d73737;
+}
+
+/* Atelier-Dune Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #b65611;
+}
+
+/* Atelier-Dune Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #60ac39;
+}
+
+/* Atelier-Dune Blue */
+.hljs-title,
+.hljs-section {
+ color: #6684e1;
+}
+
+/* Atelier-Dune Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #b854d4;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #20201d;
+ color: #a6a28c;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-dune-light.css b/3.9.1/css/highlight/atelier-dune-light.css
new file mode 100644
index 000000000..547719de8
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-dune-light.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Dune Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Dune Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #7d7a68;
+}
+
+/* Atelier-Dune Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #d73737;
+}
+
+/* Atelier-Dune Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #b65611;
+}
+
+/* Atelier-Dune Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #60ac39;
+}
+
+/* Atelier-Dune Blue */
+.hljs-title,
+.hljs-section {
+ color: #6684e1;
+}
+
+/* Atelier-Dune Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #b854d4;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #fefbec;
+ color: #6e6b5e;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-estuary-dark.css b/3.9.1/css/highlight/atelier-estuary-dark.css
new file mode 100644
index 000000000..a5e507187
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-estuary-dark.css
@@ -0,0 +1,84 @@
+/* Base16 Atelier Estuary Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Estuary Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #878573;
+}
+
+/* Atelier-Estuary Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ba6236;
+}
+
+/* Atelier-Estuary Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #ae7313;
+}
+
+/* Atelier-Estuary Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #7d9726;
+}
+
+/* Atelier-Estuary Blue */
+.hljs-title,
+.hljs-section {
+ color: #36a166;
+}
+
+/* Atelier-Estuary Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #5f9182;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #22221b;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #ba6236;
+}
+
+.hljs-addition {
+ background-color: #7d9726;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #22221b;
+ color: #929181;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-estuary-light.css b/3.9.1/css/highlight/atelier-estuary-light.css
new file mode 100644
index 000000000..1daee5d98
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-estuary-light.css
@@ -0,0 +1,84 @@
+/* Base16 Atelier Estuary Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Estuary Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #6c6b5a;
+}
+
+/* Atelier-Estuary Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ba6236;
+}
+
+/* Atelier-Estuary Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #ae7313;
+}
+
+/* Atelier-Estuary Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #7d9726;
+}
+
+/* Atelier-Estuary Blue */
+.hljs-title,
+.hljs-section {
+ color: #36a166;
+}
+
+/* Atelier-Estuary Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #5f9182;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #22221b;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #ba6236;
+}
+
+.hljs-addition {
+ background-color: #7d9726;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #f4f3ec;
+ color: #5f5e4e;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-forest-dark.css b/3.9.1/css/highlight/atelier-forest-dark.css
new file mode 100644
index 000000000..0ef4fae31
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-forest-dark.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Forest Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Forest Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #9c9491;
+}
+
+/* Atelier-Forest Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #f22c40;
+}
+
+/* Atelier-Forest Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #df5320;
+}
+
+/* Atelier-Forest Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #7b9726;
+}
+
+/* Atelier-Forest Blue */
+.hljs-title,
+.hljs-section {
+ color: #407ee7;
+}
+
+/* Atelier-Forest Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #6666ea;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #1b1918;
+ color: #a8a19f;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-forest-light.css b/3.9.1/css/highlight/atelier-forest-light.css
new file mode 100644
index 000000000..bbedde18a
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-forest-light.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Forest Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Forest Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #766e6b;
+}
+
+/* Atelier-Forest Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #f22c40;
+}
+
+/* Atelier-Forest Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #df5320;
+}
+
+/* Atelier-Forest Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #7b9726;
+}
+
+/* Atelier-Forest Blue */
+.hljs-title,
+.hljs-section {
+ color: #407ee7;
+}
+
+/* Atelier-Forest Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #6666ea;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #f1efee;
+ color: #68615e;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-heath-dark.css b/3.9.1/css/highlight/atelier-heath-dark.css
new file mode 100644
index 000000000..fe01ff721
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-heath-dark.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Heath Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Heath Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #9e8f9e;
+}
+
+/* Atelier-Heath Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ca402b;
+}
+
+/* Atelier-Heath Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #a65926;
+}
+
+/* Atelier-Heath Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #918b3b;
+}
+
+/* Atelier-Heath Blue */
+.hljs-title,
+.hljs-section {
+ color: #516aec;
+}
+
+/* Atelier-Heath Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #7b59c0;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #1b181b;
+ color: #ab9bab;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-heath-light.css b/3.9.1/css/highlight/atelier-heath-light.css
new file mode 100644
index 000000000..ee43786d1
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-heath-light.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Heath Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Heath Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #776977;
+}
+
+/* Atelier-Heath Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ca402b;
+}
+
+/* Atelier-Heath Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #a65926;
+}
+
+/* Atelier-Heath Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #918b3b;
+}
+
+/* Atelier-Heath Blue */
+.hljs-title,
+.hljs-section {
+ color: #516aec;
+}
+
+/* Atelier-Heath Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #7b59c0;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #f7f3f7;
+ color: #695d69;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-lakeside-dark.css b/3.9.1/css/highlight/atelier-lakeside-dark.css
new file mode 100644
index 000000000..a937d3bf5
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-lakeside-dark.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Lakeside Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Lakeside Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #7195a8;
+}
+
+/* Atelier-Lakeside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #d22d72;
+}
+
+/* Atelier-Lakeside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #935c25;
+}
+
+/* Atelier-Lakeside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #568c3b;
+}
+
+/* Atelier-Lakeside Blue */
+.hljs-title,
+.hljs-section {
+ color: #257fad;
+}
+
+/* Atelier-Lakeside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #6b6bb8;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #161b1d;
+ color: #7ea2b4;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-lakeside-light.css b/3.9.1/css/highlight/atelier-lakeside-light.css
new file mode 100644
index 000000000..6c7e8f9ef
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-lakeside-light.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Lakeside Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Lakeside Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #5a7b8c;
+}
+
+/* Atelier-Lakeside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #d22d72;
+}
+
+/* Atelier-Lakeside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #935c25;
+}
+
+/* Atelier-Lakeside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #568c3b;
+}
+
+/* Atelier-Lakeside Blue */
+.hljs-title,
+.hljs-section {
+ color: #257fad;
+}
+
+/* Atelier-Lakeside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #6b6bb8;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #ebf8ff;
+ color: #516d7b;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-plateau-dark.css b/3.9.1/css/highlight/atelier-plateau-dark.css
new file mode 100644
index 000000000..3bb052693
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-plateau-dark.css
@@ -0,0 +1,84 @@
+/* Base16 Atelier Plateau Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Plateau Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #7e7777;
+}
+
+/* Atelier-Plateau Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ca4949;
+}
+
+/* Atelier-Plateau Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #b45a3c;
+}
+
+/* Atelier-Plateau Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #4b8b8b;
+}
+
+/* Atelier-Plateau Blue */
+.hljs-title,
+.hljs-section {
+ color: #7272ca;
+}
+
+/* Atelier-Plateau Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #8464c4;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #1b1818;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #ca4949;
+}
+
+.hljs-addition {
+ background-color: #4b8b8b;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #1b1818;
+ color: #8a8585;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-plateau-light.css b/3.9.1/css/highlight/atelier-plateau-light.css
new file mode 100644
index 000000000..5f0222bec
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-plateau-light.css
@@ -0,0 +1,84 @@
+/* Base16 Atelier Plateau Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Plateau Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #655d5d;
+}
+
+/* Atelier-Plateau Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #ca4949;
+}
+
+/* Atelier-Plateau Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #b45a3c;
+}
+
+/* Atelier-Plateau Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #4b8b8b;
+}
+
+/* Atelier-Plateau Blue */
+.hljs-title,
+.hljs-section {
+ color: #7272ca;
+}
+
+/* Atelier-Plateau Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #8464c4;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #1b1818;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #ca4949;
+}
+
+.hljs-addition {
+ background-color: #4b8b8b;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #f4ecec;
+ color: #585050;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-savanna-dark.css b/3.9.1/css/highlight/atelier-savanna-dark.css
new file mode 100644
index 000000000..38f831431
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-savanna-dark.css
@@ -0,0 +1,84 @@
+/* Base16 Atelier Savanna Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Savanna Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #78877d;
+}
+
+/* Atelier-Savanna Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #b16139;
+}
+
+/* Atelier-Savanna Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #9f713c;
+}
+
+/* Atelier-Savanna Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #489963;
+}
+
+/* Atelier-Savanna Blue */
+.hljs-title,
+.hljs-section {
+ color: #478c90;
+}
+
+/* Atelier-Savanna Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #55859b;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #171c19;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #b16139;
+}
+
+.hljs-addition {
+ background-color: #489963;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #171c19;
+ color: #87928a;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-savanna-light.css b/3.9.1/css/highlight/atelier-savanna-light.css
new file mode 100644
index 000000000..1ccd7c685
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-savanna-light.css
@@ -0,0 +1,84 @@
+/* Base16 Atelier Savanna Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Savanna Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #5f6d64;
+}
+
+/* Atelier-Savanna Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #b16139;
+}
+
+/* Atelier-Savanna Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #9f713c;
+}
+
+/* Atelier-Savanna Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #489963;
+}
+
+/* Atelier-Savanna Blue */
+.hljs-title,
+.hljs-section {
+ color: #478c90;
+}
+
+/* Atelier-Savanna Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #55859b;
+}
+
+.hljs-deletion,
+.hljs-addition {
+ color: #171c19;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #b16139;
+}
+
+.hljs-addition {
+ background-color: #489963;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #ecf4ee;
+ color: #526057;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-seaside-dark.css b/3.9.1/css/highlight/atelier-seaside-dark.css
new file mode 100644
index 000000000..df29949c6
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-seaside-dark.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Seaside Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Seaside Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #809980;
+}
+
+/* Atelier-Seaside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #e6193c;
+}
+
+/* Atelier-Seaside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #87711d;
+}
+
+/* Atelier-Seaside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #29a329;
+}
+
+/* Atelier-Seaside Blue */
+.hljs-title,
+.hljs-section {
+ color: #3d62f5;
+}
+
+/* Atelier-Seaside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #ad2bee;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #131513;
+ color: #8ca68c;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-seaside-light.css b/3.9.1/css/highlight/atelier-seaside-light.css
new file mode 100644
index 000000000..9d960f29f
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-seaside-light.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Seaside Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Seaside Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #687d68;
+}
+
+/* Atelier-Seaside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #e6193c;
+}
+
+/* Atelier-Seaside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #87711d;
+}
+
+/* Atelier-Seaside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #29a329;
+}
+
+/* Atelier-Seaside Blue */
+.hljs-title,
+.hljs-section {
+ color: #3d62f5;
+}
+
+/* Atelier-Seaside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #ad2bee;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #f4fbf4;
+ color: #5e6e5e;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-sulphurpool-dark.css b/3.9.1/css/highlight/atelier-sulphurpool-dark.css
new file mode 100644
index 000000000..c2ab7938d
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-sulphurpool-dark.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Sulphurpool Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Sulphurpool Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #898ea4;
+}
+
+/* Atelier-Sulphurpool Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #c94922;
+}
+
+/* Atelier-Sulphurpool Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #c76b29;
+}
+
+/* Atelier-Sulphurpool Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #ac9739;
+}
+
+/* Atelier-Sulphurpool Blue */
+.hljs-title,
+.hljs-section {
+ color: #3d8fd1;
+}
+
+/* Atelier-Sulphurpool Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #6679cc;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #202746;
+ color: #979db4;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atelier-sulphurpool-light.css b/3.9.1/css/highlight/atelier-sulphurpool-light.css
new file mode 100644
index 000000000..96c47d086
--- /dev/null
+++ b/3.9.1/css/highlight/atelier-sulphurpool-light.css
@@ -0,0 +1,69 @@
+/* Base16 Atelier Sulphurpool Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Sulphurpool Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #6b7394;
+}
+
+/* Atelier-Sulphurpool Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #c94922;
+}
+
+/* Atelier-Sulphurpool Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #c76b29;
+}
+
+/* Atelier-Sulphurpool Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+ color: #ac9739;
+}
+
+/* Atelier-Sulphurpool Blue */
+.hljs-title,
+.hljs-section {
+ color: #3d8fd1;
+}
+
+/* Atelier-Sulphurpool Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #6679cc;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #f5f7ff;
+ color: #5e6687;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/atom-one-dark.css b/3.9.1/css/highlight/atom-one-dark.css
new file mode 100644
index 000000000..1616aafe3
--- /dev/null
+++ b/3.9.1/css/highlight/atom-one-dark.css
@@ -0,0 +1,96 @@
+/*
+
+Atom One Dark by Daniel Gamage
+Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
+
+base: #282c34
+mono-1: #abb2bf
+mono-2: #818896
+mono-3: #5c6370
+hue-1: #56b6c2
+hue-2: #61aeee
+hue-3: #c678dd
+hue-4: #98c379
+hue-5: #e06c75
+hue-5-2: #be5046
+hue-6: #d19a66
+hue-6-2: #e6c07b
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #abb2bf;
+ background: #282c34;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #5c6370;
+ font-style: italic;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+ color: #c678dd;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+ color: #e06c75;
+}
+
+.hljs-literal {
+ color: #56b6c2;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+ color: #98c379;
+}
+
+.hljs-built_in,
+.hljs-class .hljs-title {
+ color: #e6c07b;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-type,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+ color: #d19a66;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id,
+.hljs-title {
+ color: #61aeee;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
diff --git a/3.9.1/css/highlight/atom-one-light.css b/3.9.1/css/highlight/atom-one-light.css
new file mode 100644
index 000000000..d5bd1d2a9
--- /dev/null
+++ b/3.9.1/css/highlight/atom-one-light.css
@@ -0,0 +1,96 @@
+/*
+
+Atom One Light by Daniel Gamage
+Original One Light Syntax theme from https://github.com/atom/one-light-syntax
+
+base: #fafafa
+mono-1: #383a42
+mono-2: #686b77
+mono-3: #a0a1a7
+hue-1: #0184bb
+hue-2: #4078f2
+hue-3: #a626a4
+hue-4: #50a14f
+hue-5: #e45649
+hue-5-2: #c91243
+hue-6: #986801
+hue-6-2: #c18401
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #383a42;
+ background: #fafafa;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #a0a1a7;
+ font-style: italic;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+ color: #a626a4;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+ color: #e45649;
+}
+
+.hljs-literal {
+ color: #0184bb;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+ color: #50a14f;
+}
+
+.hljs-built_in,
+.hljs-class .hljs-title {
+ color: #c18401;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-type,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+ color: #986801;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id,
+.hljs-title {
+ color: #4078f2;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
diff --git a/3.9.1/css/highlight/brown-paper.css b/3.9.1/css/highlight/brown-paper.css
new file mode 100644
index 000000000..7d4fc68ae
--- /dev/null
+++ b/3.9.1/css/highlight/brown-paper.css
@@ -0,0 +1,64 @@
+/*
+
+Brown Paper style from goldblog.com.ua (c) Zaripov Yura
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background:#b7a68e url(brown-papersq.png);
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+ color:#005599;
+ font-weight:bold;
+}
+
+.hljs,
+.hljs-subst {
+ color: #363c69;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-link,
+.hljs-name {
+ color: #2c009f;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta,
+.hljs-deletion {
+ color: #802022;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/brown-papersq.png b/3.9.1/css/highlight/brown-papersq.png
new file mode 100644
index 000000000..3813903db
Binary files /dev/null and b/3.9.1/css/highlight/brown-papersq.png differ
diff --git a/3.9.1/css/highlight/codepen-embed.css b/3.9.1/css/highlight/codepen-embed.css
new file mode 100644
index 000000000..195c4a078
--- /dev/null
+++ b/3.9.1/css/highlight/codepen-embed.css
@@ -0,0 +1,60 @@
+/*
+ codepen.io Embed Theme
+ Author: Justin Perry
+ Original theme - https://github.com/chriskempson/tomorrow-theme
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #222;
+ color: #fff;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #777;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-regexp,
+.hljs-meta,
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-params,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-deletion {
+ color: #ab875d;
+}
+
+.hljs-section,
+.hljs-title,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-type,
+.hljs-attribute {
+ color: #9b869b;
+}
+
+.hljs-string,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-addition {
+ color: #8f9c6c;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/color-brewer.css b/3.9.1/css/highlight/color-brewer.css
new file mode 100644
index 000000000..7934d986a
--- /dev/null
+++ b/3.9.1/css/highlight/color-brewer.css
@@ -0,0 +1,71 @@
+/*
+
+Colorbrewer theme
+Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock
+Ported by Fabrício Tavares de Oliveira
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #fff;
+}
+
+.hljs,
+.hljs-subst {
+ color: #000;
+}
+
+.hljs-string,
+.hljs-meta,
+.hljs-symbol,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition {
+ color: #756bb1;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #636363;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-bullet,
+.hljs-link {
+ color: #31a354;
+}
+
+.hljs-deletion,
+.hljs-variable {
+ color: #88f;
+}
+
+
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-doctag,
+.hljs-type,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-strong {
+ color: #3182bd;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-attribute {
+ color: #e6550d;
+}
diff --git a/3.9.1/css/highlight/darcula.css b/3.9.1/css/highlight/darcula.css
new file mode 100644
index 000000000..be182d0b5
--- /dev/null
+++ b/3.9.1/css/highlight/darcula.css
@@ -0,0 +1,77 @@
+/*
+
+Darcula color scheme from the JetBrains family of IDEs
+
+*/
+
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #2b2b2b;
+}
+
+.hljs {
+ color: #bababa;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+ color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-link,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal {
+ color: #6896ba;
+}
+
+.hljs-code,
+.hljs-selector-class {
+ color: #a6e22e;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-attribute,
+.hljs-name,
+.hljs-variable {
+ color: #cb7832;
+}
+
+.hljs-params {
+ color: #b9b9b9;
+}
+
+.hljs-string {
+ color: #6a8759;
+}
+
+.hljs-subst,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-symbol,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition {
+ color: #e0c46c;
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-meta {
+ color: #7f7f7f;
+}
diff --git a/3.9.1/css/highlight/dark.css b/3.9.1/css/highlight/dark.css
new file mode 100644
index 000000000..b4724f5f5
--- /dev/null
+++ b/3.9.1/css/highlight/dark.css
@@ -0,0 +1,63 @@
+/*
+
+Dark style from softwaremaniacs.org (c) Ivan Sagalaev
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #444;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-section,
+.hljs-link {
+ color: white;
+}
+
+.hljs,
+.hljs-subst {
+ color: #ddd;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-name,
+.hljs-type,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: #d88;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+ color: #777;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-title,
+.hljs-section,
+.hljs-doctag,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/darkula.css b/3.9.1/css/highlight/darkula.css
new file mode 100644
index 000000000..f4646c3c5
--- /dev/null
+++ b/3.9.1/css/highlight/darkula.css
@@ -0,0 +1,6 @@
+/*
+ Deprecated due to a typo in the name and left here for compatibility purpose only.
+ Please use darcula.css instead.
+*/
+
+@import url('darcula.css');
diff --git a/3.9.1/css/highlight/default.css b/3.9.1/css/highlight/default.css
new file mode 100644
index 000000000..f1bfade31
--- /dev/null
+++ b/3.9.1/css/highlight/default.css
@@ -0,0 +1,99 @@
+/*
+
+Original highlight.js style (c) Ivan Sagalaev
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #F0F0F0;
+}
+
+
+/* Base color: saturation 0; */
+
+.hljs,
+.hljs-subst {
+ color: #444;
+}
+
+.hljs-comment {
+ color: #888888;
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold;
+}
+
+
+/* User color: hue: 0 */
+
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000;
+}
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #BC6060;
+}
+
+
+/* Language color: hue: 90; */
+
+.hljs-literal {
+ color: #78A960;
+}
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #397300;
+}
+
+
+/* Meta color: hue: 200 */
+
+.hljs-meta {
+ color: #1f7199;
+}
+
+.hljs-meta-string {
+ color: #4d99bf;
+}
+
+
+/* Misc effects */
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/docco.css b/3.9.1/css/highlight/docco.css
new file mode 100644
index 000000000..db366be37
--- /dev/null
+++ b/3.9.1/css/highlight/docco.css
@@ -0,0 +1,97 @@
+/*
+Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars)
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #000;
+ background: #f8f8ff;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #408080;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-subst {
+ color: #954121;
+}
+
+.hljs-number {
+ color: #40a070;
+}
+
+.hljs-string,
+.hljs-doctag {
+ color: #219161;
+}
+
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-section,
+.hljs-type {
+ color: #19469d;
+}
+
+.hljs-params {
+ color: #00f;
+}
+
+.hljs-title {
+ color: #458;
+ font-weight: bold;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-attribute {
+ color: #000080;
+ font-weight: normal;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #008080;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #b68;
+}
+
+.hljs-symbol,
+.hljs-bullet {
+ color: #990073;
+}
+
+.hljs-built_in,
+.hljs-builtin-name {
+ color: #0086b3;
+}
+
+.hljs-meta {
+ color: #999;
+ font-weight: bold;
+}
+
+.hljs-deletion {
+ background: #fdd;
+}
+
+.hljs-addition {
+ background: #dfd;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/dracula.css b/3.9.1/css/highlight/dracula.css
new file mode 100644
index 000000000..d591db680
--- /dev/null
+++ b/3.9.1/css/highlight/dracula.css
@@ -0,0 +1,76 @@
+/*
+
+Dracula Theme v1.2.0
+
+https://github.com/zenorocha/dracula-theme
+
+Copyright 2015, All rights reserved
+
+Code licensed under the MIT license
+http://zenorocha.mit-license.org
+
+@author Éverton Ribeiro
+@author Zeno Rocha
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #282a36;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-section,
+.hljs-link {
+ color: #8be9fd;
+}
+
+.hljs-function .hljs-keyword {
+ color: #ff79c6;
+}
+
+.hljs,
+.hljs-subst {
+ color: #f8f8f2;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-name,
+.hljs-type,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: #f1fa8c;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+ color: #6272a4;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-title,
+.hljs-section,
+.hljs-doctag,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/far.css b/3.9.1/css/highlight/far.css
new file mode 100644
index 000000000..2b3f87b56
--- /dev/null
+++ b/3.9.1/css/highlight/far.css
@@ -0,0 +1,71 @@
+/*
+
+FAR Style (c) MajestiC
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #000080;
+}
+
+.hljs,
+.hljs-subst {
+ color: #0ff;
+}
+
+.hljs-string,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition {
+ color: #ff0;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-variable {
+ color: #fff;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-doctag,
+.hljs-deletion {
+ color: #888;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-link {
+ color: #0f0;
+}
+
+.hljs-meta {
+ color: #008080;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-title,
+.hljs-section,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/foundation.css b/3.9.1/css/highlight/foundation.css
new file mode 100644
index 000000000..f1fe64b37
--- /dev/null
+++ b/3.9.1/css/highlight/foundation.css
@@ -0,0 +1,88 @@
+/*
+Description: Foundation 4 docs style for highlight.js
+Author: Dan Allen
+Website: http://foundation.zurb.com/docs/
+Version: 1.0
+Date: 2013-04-02
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #eee; color: black;
+}
+
+.hljs-link,
+.hljs-emphasis,
+.hljs-attribute,
+.hljs-addition {
+ color: #070;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong,
+.hljs-string,
+.hljs-deletion {
+ color: #d14;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-quote,
+.hljs-comment {
+ color: #998;
+ font-style: italic;
+}
+
+.hljs-section,
+.hljs-title {
+ color: #900;
+}
+
+.hljs-class .hljs-title,
+.hljs-type {
+ color: #458;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #336699;
+}
+
+.hljs-bullet {
+ color: #997700;
+}
+
+.hljs-meta {
+ color: #3344bb;
+}
+
+.hljs-code,
+.hljs-number,
+.hljs-literal,
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #099;
+}
+
+.hljs-regexp {
+ background-color: #fff0ff;
+ color: #880088;
+}
+
+.hljs-symbol {
+ color: #990073;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #007700;
+}
diff --git a/3.9.1/css/highlight/github-gist.css b/3.9.1/css/highlight/github-gist.css
new file mode 100644
index 000000000..155f0b916
--- /dev/null
+++ b/3.9.1/css/highlight/github-gist.css
@@ -0,0 +1,71 @@
+/**
+ * GitHub Gist Theme
+ * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro
+ */
+
+.hljs {
+ display: block;
+ background: white;
+ padding: 0.5em;
+ color: #333333;
+ overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+ color: #969896;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+ color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+ color: #a71d5d;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+ color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+ color: #63a35c;
+}
+
+.hljs-tag {
+ color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #795da3;
+}
+
+.hljs-addition {
+ color: #55a532;
+ background-color: #eaffea;
+}
+
+.hljs-deletion {
+ color: #bd2c00;
+ background-color: #ffecec;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
diff --git a/3.9.1/css/highlight/github.css b/3.9.1/css/highlight/github.css
new file mode 100644
index 000000000..791932b87
--- /dev/null
+++ b/3.9.1/css/highlight/github.css
@@ -0,0 +1,99 @@
+/*
+
+github.com style (c) Vasily Polovnyov
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #333;
+ background: #f8f8f8;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #998;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-subst {
+ color: #333;
+ font-weight: bold;
+}
+
+.hljs-number,
+.hljs-literal,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag .hljs-attr {
+ color: #008080;
+}
+
+.hljs-string,
+.hljs-doctag {
+ color: #d14;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-selector-id {
+ color: #900;
+ font-weight: bold;
+}
+
+.hljs-subst {
+ font-weight: normal;
+}
+
+.hljs-type,
+.hljs-class .hljs-title {
+ color: #458;
+ font-weight: bold;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-attribute {
+ color: #000080;
+ font-weight: normal;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #009926;
+}
+
+.hljs-symbol,
+.hljs-bullet {
+ color: #990073;
+}
+
+.hljs-built_in,
+.hljs-builtin-name {
+ color: #0086b3;
+}
+
+.hljs-meta {
+ color: #999;
+ font-weight: bold;
+}
+
+.hljs-deletion {
+ background: #fdd;
+}
+
+.hljs-addition {
+ background: #dfd;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/googlecode.css b/3.9.1/css/highlight/googlecode.css
new file mode 100644
index 000000000..884ad6353
--- /dev/null
+++ b/3.9.1/css/highlight/googlecode.css
@@ -0,0 +1,89 @@
+/*
+
+Google Code style (c) Aahan Krish
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: white;
+ color: black;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #800;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-title,
+.hljs-name {
+ color: #008;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #660;
+}
+
+.hljs-string,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-regexp {
+ color: #080;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-meta,
+.hljs-number,
+.hljs-link {
+ color: #066;
+}
+
+.hljs-title,
+.hljs-doctag,
+.hljs-type,
+.hljs-attr,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-params {
+ color: #606;
+}
+
+.hljs-attribute,
+.hljs-subst {
+ color: #000;
+}
+
+.hljs-formula {
+ background-color: #eee;
+ font-style: italic;
+}
+
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #9B703F
+}
+
+.hljs-addition {
+ background-color: #baeeba;
+}
+
+.hljs-deletion {
+ background-color: #ffc8bd;
+}
+
+.hljs-doctag,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/grayscale.css b/3.9.1/css/highlight/grayscale.css
new file mode 100644
index 000000000..5376f3406
--- /dev/null
+++ b/3.9.1/css/highlight/grayscale.css
@@ -0,0 +1,101 @@
+/*
+
+grayscale style (c) MY Sun
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #333;
+ background: #fff;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #777;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-subst {
+ color: #333;
+ font-weight: bold;
+}
+
+.hljs-number,
+.hljs-literal {
+ color: #777;
+}
+
+.hljs-string,
+.hljs-doctag,
+.hljs-formula {
+ color: #333;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-selector-id {
+ color: #000;
+ font-weight: bold;
+}
+
+.hljs-subst {
+ font-weight: normal;
+}
+
+.hljs-class .hljs-title,
+.hljs-type,
+.hljs-name {
+ color: #333;
+ font-weight: bold;
+}
+
+.hljs-tag {
+ color: #333;
+}
+
+.hljs-regexp {
+ color: #333;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+ color: #000;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;
+}
+
+.hljs-built_in,
+.hljs-builtin-name {
+ color: #000;
+ text-decoration: underline;
+}
+
+.hljs-meta {
+ color: #999;
+ font-weight: bold;
+}
+
+.hljs-deletion {
+ color: #fff;
+ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;
+}
+
+.hljs-addition {
+ color: #000;
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/gruvbox-dark.css b/3.9.1/css/highlight/gruvbox-dark.css
new file mode 100644
index 000000000..f563811a8
--- /dev/null
+++ b/3.9.1/css/highlight/gruvbox-dark.css
@@ -0,0 +1,108 @@
+/*
+
+Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox)
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #282828;
+}
+
+.hljs,
+.hljs-subst {
+ color: #ebdbb2;
+}
+
+/* Gruvbox Red */
+.hljs-deletion,
+.hljs-formula,
+.hljs-keyword,
+.hljs-link,
+.hljs-selector-tag {
+ color: #fb4934;
+}
+
+/* Gruvbox Blue */
+.hljs-built_in,
+.hljs-emphasis,
+.hljs-name,
+.hljs-quote,
+.hljs-strong,
+.hljs-title,
+.hljs-variable {
+ color: #83a598;
+}
+
+/* Gruvbox Yellow */
+.hljs-attr,
+.hljs-params,
+.hljs-template-tag,
+.hljs-type {
+ color: #fabd2f;
+}
+
+/* Gruvbox Purple */
+.hljs-builtin-name,
+.hljs-doctag,
+.hljs-literal,
+.hljs-number {
+ color: #8f3f71;
+}
+
+/* Gruvbox Orange */
+.hljs-code,
+.hljs-meta,
+.hljs-regexp,
+.hljs-selector-id,
+.hljs-template-variable {
+ color: #fe8019;
+}
+
+/* Gruvbox Green */
+.hljs-addition,
+.hljs-meta-string,
+.hljs-section,
+.hljs-selector-attr,
+.hljs-selector-class,
+.hljs-string,
+.hljs-symbol {
+ color: #b8bb26;
+}
+
+/* Gruvbox Aqua */
+.hljs-attribute,
+.hljs-bullet,
+.hljs-class,
+.hljs-function,
+.hljs-function .hljs-keyword,
+.hljs-meta-keyword,
+.hljs-selector-pseudo,
+.hljs-tag {
+ color: #8ec07c;
+}
+
+/* Gruvbox Gray */
+.hljs-comment {
+ color: #928374;
+}
+
+/* Gruvbox Purple */
+.hljs-link_label,
+.hljs-literal,
+.hljs-number {
+ color: #d3869b;
+}
+
+.hljs-comment,
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-section,
+.hljs-strong,
+.hljs-tag {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/gruvbox-light.css b/3.9.1/css/highlight/gruvbox-light.css
new file mode 100644
index 000000000..ff45468eb
--- /dev/null
+++ b/3.9.1/css/highlight/gruvbox-light.css
@@ -0,0 +1,108 @@
+/*
+
+Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox)
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #fbf1c7;
+}
+
+.hljs,
+.hljs-subst {
+ color: #3c3836;
+}
+
+/* Gruvbox Red */
+.hljs-deletion,
+.hljs-formula,
+.hljs-keyword,
+.hljs-link,
+.hljs-selector-tag {
+ color: #9d0006;
+}
+
+/* Gruvbox Blue */
+.hljs-built_in,
+.hljs-emphasis,
+.hljs-name,
+.hljs-quote,
+.hljs-strong,
+.hljs-title,
+.hljs-variable {
+ color: #076678;
+}
+
+/* Gruvbox Yellow */
+.hljs-attr,
+.hljs-params,
+.hljs-template-tag,
+.hljs-type {
+ color: #b57614;
+}
+
+/* Gruvbox Purple */
+.hljs-builtin-name,
+.hljs-doctag,
+.hljs-literal,
+.hljs-number {
+ color: #8f3f71;
+}
+
+/* Gruvbox Orange */
+.hljs-code,
+.hljs-meta,
+.hljs-regexp,
+.hljs-selector-id,
+.hljs-template-variable {
+ color: #af3a03;
+}
+
+/* Gruvbox Green */
+.hljs-addition,
+.hljs-meta-string,
+.hljs-section,
+.hljs-selector-attr,
+.hljs-selector-class,
+.hljs-string,
+.hljs-symbol {
+ color: #79740e;
+}
+
+/* Gruvbox Aqua */
+.hljs-attribute,
+.hljs-bullet,
+.hljs-class,
+.hljs-function,
+.hljs-function .hljs-keyword,
+.hljs-meta-keyword,
+.hljs-selector-pseudo,
+.hljs-tag {
+ color: #427b58;
+}
+
+/* Gruvbox Gray */
+.hljs-comment {
+ color: #928374;
+}
+
+/* Gruvbox Purple */
+.hljs-link_label,
+.hljs-literal,
+.hljs-number {
+ color: #8f3f71;
+}
+
+.hljs-comment,
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-section,
+.hljs-strong,
+.hljs-tag {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/hopscotch.css b/3.9.1/css/highlight/hopscotch.css
new file mode 100644
index 000000000..32e60d230
--- /dev/null
+++ b/3.9.1/css/highlight/hopscotch.css
@@ -0,0 +1,83 @@
+/*
+ * Hopscotch
+ * by Jan T. Sott
+ * https://github.com/idleberg/Hopscotch
+ *
+ * This work is licensed under the Creative Commons CC0 1.0 Universal License
+ */
+
+/* Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #989498;
+}
+
+/* Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-link,
+.hljs-deletion {
+ color: #dd464c;
+}
+
+/* Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+ color: #fd8b19;
+}
+
+/* Yellow */
+.hljs-class .hljs-title {
+ color: #fdcc59;
+}
+
+/* Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #8fc13e;
+}
+
+/* Aqua */
+.hljs-meta {
+ color: #149b93;
+}
+
+/* Blue */
+.hljs-function,
+.hljs-section,
+.hljs-title {
+ color: #1290bf;
+}
+
+/* Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #c85e7c;
+}
+
+.hljs {
+ display: block;
+ background: #322931;
+ color: #b9b5b8;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/hybrid.css b/3.9.1/css/highlight/hybrid.css
new file mode 100644
index 000000000..29735a189
--- /dev/null
+++ b/3.9.1/css/highlight/hybrid.css
@@ -0,0 +1,102 @@
+/*
+
+vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
+
+*/
+
+/*background color*/
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #1d1f21;
+}
+
+/*selection color*/
+.hljs::selection,
+.hljs span::selection {
+ background: #373b41;
+}
+
+.hljs::-moz-selection,
+.hljs span::-moz-selection {
+ background: #373b41;
+}
+
+/*foreground color*/
+.hljs {
+ color: #c5c8c6;
+}
+
+/*color: fg_yellow*/
+.hljs-title,
+.hljs-name {
+ color: #f0c674;
+}
+
+/*color: fg_comment*/
+.hljs-comment,
+.hljs-meta,
+.hljs-meta .hljs-keyword {
+ color: #707880;
+}
+
+/*color: fg_red*/
+.hljs-number,
+.hljs-symbol,
+.hljs-literal,
+.hljs-deletion,
+.hljs-link {
+ color: #cc6666
+}
+
+/*color: fg_green*/
+.hljs-string,
+.hljs-doctag,
+.hljs-addition,
+.hljs-regexp,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #b5bd68;
+}
+
+/*color: fg_purple*/
+.hljs-attribute,
+.hljs-code,
+.hljs-selector-id {
+ color: #b294bb;
+}
+
+/*color: fg_blue*/
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-bullet,
+.hljs-tag {
+ color: #81a2be;
+}
+
+/*color: fg_aqua*/
+.hljs-subst,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: #8abeb7;
+}
+
+/*color: fg_orange*/
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-quote,
+.hljs-section,
+.hljs-selector-class {
+ color: #de935f;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/idea.css b/3.9.1/css/highlight/idea.css
new file mode 100644
index 000000000..3bf1892bd
--- /dev/null
+++ b/3.9.1/css/highlight/idea.css
@@ -0,0 +1,97 @@
+/*
+
+Intellij Idea-like styling (c) Vasily Polovnyov
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #000;
+ background: #fff;
+}
+
+.hljs-subst,
+.hljs-title {
+ font-weight: normal;
+ color: #000;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #808080;
+ font-style: italic;
+}
+
+.hljs-meta {
+ color: #808000;
+}
+
+.hljs-tag {
+ background: #efefef;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-literal,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type,
+.hljs-selector-id,
+.hljs-selector-class {
+ font-weight: bold;
+ color: #000080;
+}
+
+.hljs-attribute,
+.hljs-number,
+.hljs-regexp,
+.hljs-link {
+ font-weight: bold;
+ color: #0000ff;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-link {
+ font-weight: normal;
+}
+
+.hljs-string {
+ color: #008000;
+ font-weight: bold;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-formula {
+ color: #000;
+ background: #d0eded;
+ font-style: italic;
+}
+
+.hljs-doctag {
+ text-decoration: underline;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #660e7a;
+}
+
+.hljs-addition {
+ background: #baeeba;
+}
+
+.hljs-deletion {
+ background: #ffc8bd;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/ir-black.css b/3.9.1/css/highlight/ir-black.css
new file mode 100644
index 000000000..bd4c755ed
--- /dev/null
+++ b/3.9.1/css/highlight/ir-black.css
@@ -0,0 +1,73 @@
+/*
+ IR_Black style (c) Vasily Mikhailitchenko
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #000;
+ color: #f8f8f8;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+ color: #7c7c7c;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-tag,
+.hljs-name {
+ color: #96cbfe;
+}
+
+.hljs-attribute,
+.hljs-selector-id {
+ color: #ffffb6;
+}
+
+.hljs-string,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition {
+ color: #a8ff60;
+}
+
+.hljs-subst {
+ color: #daefa3;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #e9c062;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-doctag {
+ color: #ffffb6;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-literal {
+ color: #c6c5fe;
+}
+
+.hljs-number,
+.hljs-deletion {
+ color:#ff73fd;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/kimbie.dark.css b/3.9.1/css/highlight/kimbie.dark.css
new file mode 100644
index 000000000..d139cb5d0
--- /dev/null
+++ b/3.9.1/css/highlight/kimbie.dark.css
@@ -0,0 +1,74 @@
+/*
+ Name: Kimbie (dark)
+ Author: Jan T. Sott
+ License: Creative Commons Attribution-ShareAlike 4.0 Unported License
+ URL: https://github.com/idleberg/Kimbie-highlight.js
+*/
+
+/* Kimbie Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #d6baad;
+}
+
+/* Kimbie Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-meta {
+ color: #dc3958;
+}
+
+/* Kimbie Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion,
+.hljs-link {
+ color: #f79a32;
+}
+
+/* Kimbie Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+ color: #f06431;
+}
+
+/* Kimbie Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #889b4a;
+}
+
+/* Kimbie Purple */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function {
+ color: #98676a;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #221a0f;
+ color: #d3af86;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/kimbie.light.css b/3.9.1/css/highlight/kimbie.light.css
new file mode 100644
index 000000000..04ff6ed3a
--- /dev/null
+++ b/3.9.1/css/highlight/kimbie.light.css
@@ -0,0 +1,74 @@
+/*
+ Name: Kimbie (light)
+ Author: Jan T. Sott
+ License: Creative Commons Attribution-ShareAlike 4.0 Unported License
+ URL: https://github.com/idleberg/Kimbie-highlight.js
+*/
+
+/* Kimbie Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #a57a4c;
+}
+
+/* Kimbie Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-meta {
+ color: #dc3958;
+}
+
+/* Kimbie Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion,
+.hljs-link {
+ color: #f79a32;
+}
+
+/* Kimbie Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+ color: #f06431;
+}
+
+/* Kimbie Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #889b4a;
+}
+
+/* Kimbie Purple */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function {
+ color: #98676a;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #fbebd4;
+ color: #84613d;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/magula.css b/3.9.1/css/highlight/magula.css
new file mode 100644
index 000000000..44dee5e8e
--- /dev/null
+++ b/3.9.1/css/highlight/magula.css
@@ -0,0 +1,70 @@
+/*
+Description: Magula style for highligh.js
+Author: Ruslan Keba
+Website: http://rukeba.com/
+Version: 1.0
+Date: 2009-01-03
+Music: Aphex Twin / Xtal
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background-color: #f4f4f4;
+}
+
+.hljs,
+.hljs-subst {
+ color: black;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: #050;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #777;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-type,
+.hljs-link {
+ color: #800;
+}
+
+.hljs-deletion,
+.hljs-meta {
+ color: #00e;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-tag,
+.hljs-name {
+ font-weight: bold;
+ color: navy;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/mono-blue.css b/3.9.1/css/highlight/mono-blue.css
new file mode 100644
index 000000000..884c97c76
--- /dev/null
+++ b/3.9.1/css/highlight/mono-blue.css
@@ -0,0 +1,59 @@
+/*
+ Five-color theme from a single blue hue.
+*/
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #eaeef3;
+}
+
+.hljs {
+ color: #00193a;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-title,
+.hljs-section,
+.hljs-doctag,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-comment {
+ color: #738191;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-literal,
+.hljs-type,
+.hljs-addition,
+.hljs-tag,
+.hljs-quote,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #0048ab;
+}
+
+.hljs-meta,
+.hljs-subst,
+.hljs-symbol,
+.hljs-regexp,
+.hljs-attribute,
+.hljs-deletion,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-bullet {
+ color: #4c81c9;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/monokai-sublime.css b/3.9.1/css/highlight/monokai-sublime.css
new file mode 100644
index 000000000..2864170da
--- /dev/null
+++ b/3.9.1/css/highlight/monokai-sublime.css
@@ -0,0 +1,83 @@
+/*
+
+Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #23241f;
+}
+
+.hljs,
+.hljs-tag,
+.hljs-subst {
+ color: #f8f8f2;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+ color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-link {
+ color: #ae81ff;
+}
+
+.hljs-code,
+.hljs-title,
+.hljs-section,
+.hljs-selector-class {
+ color: #a6e22e;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-name,
+.hljs-attr {
+ color: #f92672;
+}
+
+.hljs-symbol,
+.hljs-attribute {
+ color: #66d9ef;
+}
+
+.hljs-params,
+.hljs-class .hljs-title {
+ color: #f8f8f2;
+}
+
+.hljs-string,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-variable {
+ color: #e6db74;
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-meta {
+ color: #75715e;
+}
diff --git a/3.9.1/css/highlight/monokai.css b/3.9.1/css/highlight/monokai.css
new file mode 100644
index 000000000..775d53f91
--- /dev/null
+++ b/3.9.1/css/highlight/monokai.css
@@ -0,0 +1,70 @@
+/*
+Monokai style - ported by Luigi Maselli - http://grigio.org
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #272822; color: #ddd;
+}
+
+.hljs-tag,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-strong,
+.hljs-name {
+ color: #f92672;
+}
+
+.hljs-code {
+ color: #66d9ef;
+}
+
+.hljs-class .hljs-title {
+ color: white;
+}
+
+.hljs-attribute,
+.hljs-symbol,
+.hljs-regexp,
+.hljs-link {
+ color: #bf79db;
+}
+
+.hljs-string,
+.hljs-bullet,
+.hljs-subst,
+.hljs-title,
+.hljs-section,
+.hljs-emphasis,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: #a6e22e;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+ color: #75715e;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-selector-id {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/obsidian.css b/3.9.1/css/highlight/obsidian.css
new file mode 100644
index 000000000..356630fa2
--- /dev/null
+++ b/3.9.1/css/highlight/obsidian.css
@@ -0,0 +1,88 @@
+/**
+ * Obsidian style
+ * ported by Alexander Marenin (http://github.com/ioncreature)
+ */
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #282b2e;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-selector-id {
+ color: #93c763;
+}
+
+.hljs-number {
+ color: #ffcd22;
+}
+
+.hljs {
+ color: #e0e2e4;
+}
+
+.hljs-attribute {
+ color: #668bb0;
+}
+
+.hljs-code,
+.hljs-class .hljs-title,
+.hljs-section {
+ color: white;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #d39745;
+}
+
+.hljs-meta {
+ color: #557182;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-bullet,
+.hljs-subst,
+.hljs-emphasis,
+.hljs-type,
+.hljs-built_in,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+ color: #8cbbad;
+}
+
+.hljs-string,
+.hljs-symbol {
+ color: #ec7600;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion {
+ color: #818e96;
+}
+
+.hljs-selector-class {
+ color: #A082BD
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/ocean.css b/3.9.1/css/highlight/ocean.css
new file mode 100644
index 000000000..5901581b4
--- /dev/null
+++ b/3.9.1/css/highlight/ocean.css
@@ -0,0 +1,74 @@
+/* Ocean Dark Theme */
+/* https://github.com/gavsiu */
+/* Original theme - https://github.com/chriskempson/base16 */
+
+/* Ocean Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #65737e;
+}
+
+/* Ocean Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+ color: #bf616a;
+}
+
+/* Ocean Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+ color: #d08770;
+}
+
+/* Ocean Yellow */
+.hljs-attribute {
+ color: #ebcb8b;
+}
+
+/* Ocean Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #a3be8c;
+}
+
+/* Ocean Blue */
+.hljs-title,
+.hljs-section {
+ color: #8fa1b3;
+}
+
+/* Ocean Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #b48ead;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #2b303b;
+ color: #c0c5ce;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/paraiso-dark.css b/3.9.1/css/highlight/paraiso-dark.css
new file mode 100644
index 000000000..e7292401c
--- /dev/null
+++ b/3.9.1/css/highlight/paraiso-dark.css
@@ -0,0 +1,72 @@
+/*
+ Paraíso (dark)
+ Created by Jan T. Sott (http://github.com/idleberg)
+ Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+*/
+
+/* Paraíso Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #8d8687;
+}
+
+/* Paraíso Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-link,
+.hljs-meta {
+ color: #ef6155;
+}
+
+/* Paraíso Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion {
+ color: #f99b15;
+}
+
+/* Paraíso Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+ color: #fec418;
+}
+
+/* Paraíso Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #48b685;
+}
+
+/* Paraíso Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #815ba4;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #2f1e2e;
+ color: #a39e9b;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/paraiso-light.css b/3.9.1/css/highlight/paraiso-light.css
new file mode 100644
index 000000000..944857cd8
--- /dev/null
+++ b/3.9.1/css/highlight/paraiso-light.css
@@ -0,0 +1,72 @@
+/*
+ Paraíso (light)
+ Created by Jan T. Sott (http://github.com/idleberg)
+ Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+*/
+
+/* Paraíso Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #776e71;
+}
+
+/* Paraíso Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-link,
+.hljs-meta {
+ color: #ef6155;
+}
+
+/* Paraíso Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion {
+ color: #f99b15;
+}
+
+/* Paraíso Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+ color: #fec418;
+}
+
+/* Paraíso Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #48b685;
+}
+
+/* Paraíso Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #815ba4;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #e7e9db;
+ color: #4f424c;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/pojoaque.css b/3.9.1/css/highlight/pojoaque.css
new file mode 100644
index 000000000..04135043b
--- /dev/null
+++ b/3.9.1/css/highlight/pojoaque.css
@@ -0,0 +1,83 @@
+/*
+
+Pojoaque Style by Jason Tate
+http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
+Based on Solarized Style from http://ethanschoonover.com/solarized
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ color: #dccf8f;
+ background: url(pojoaque.jpg) repeat scroll left top #181914;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #586e75;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-addition {
+ color: #b64926;
+}
+
+.hljs-number,
+.hljs-string,
+.hljs-doctag,
+.hljs-regexp {
+ color: #468966;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-name {
+ color: #ffb03b;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-class .hljs-title,
+.hljs-type,
+.hljs-tag {
+ color: #b58900;
+}
+
+.hljs-attribute {
+ color: #b89859;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-subst,
+.hljs-meta {
+ color: #cb4b16;
+}
+
+.hljs-deletion {
+ color: #dc322f;
+}
+
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #d3a60c;
+}
+
+.hljs-formula {
+ background: #073642;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/pojoaque.jpg b/3.9.1/css/highlight/pojoaque.jpg
new file mode 100644
index 000000000..9c07d4ab4
Binary files /dev/null and b/3.9.1/css/highlight/pojoaque.jpg differ
diff --git a/3.9.1/css/highlight/purebasic.css b/3.9.1/css/highlight/purebasic.css
new file mode 100644
index 000000000..5ce9b9e07
--- /dev/null
+++ b/3.9.1/css/highlight/purebasic.css
@@ -0,0 +1,96 @@
+/*
+
+PureBASIC native IDE style ( version 1.0 - April 2016 )
+
+by Tristano Ajmone
+
+Public Domain
+
+NOTE_1: PureBASIC code syntax highlighting only applies the following classes:
+ .hljs-comment
+ .hljs-function
+ .hljs-keywords
+ .hljs-string
+ .hljs-symbol
+
+ Other classes are added here for the benefit of styling other languages with the look and feel of PureBASIC native IDE style.
+ If you need to customize a stylesheet for PureBASIC only, remove all non-relevant classes -- PureBASIC-related classes are followed by
+ a "--- used for PureBASIC ... ---" comment on same line.
+
+NOTE_2: Color names provided in comments were derived using "Name that Color" online tool:
+ http://chir.ag/projects/name-that-color
+*/
+
+.hljs { /* Common set of rules required by highlight.js (don'r remove!) */
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #FFFFDF; /* Half and Half (approx.) */
+/* --- Uncomment to add PureBASIC native IDE styled font!
+ font-family: Consolas;
+*/
+}
+
+.hljs, /* --- used for PureBASIC base color --- */
+.hljs-type, /* --- used for PureBASIC Procedures return type --- */
+.hljs-function, /* --- used for wrapping PureBASIC Procedures definitions --- */
+.hljs-name,
+.hljs-number,
+.hljs-attr,
+.hljs-params,
+.hljs-subst {
+ color: #000000; /* Black */
+}
+
+.hljs-comment, /* --- used for PureBASIC Comments --- */
+.hljs-regexp,
+.hljs-section,
+.hljs-selector-pseudo,
+.hljs-addition {
+ color: #00AAAA; /* Persian Green (approx.) */
+}
+
+.hljs-title, /* --- used for PureBASIC Procedures Names --- */
+.hljs-tag,
+.hljs-variable,
+.hljs-code {
+ color: #006666; /* Blue Stone (approx.) */
+}
+
+.hljs-keyword, /* --- used for PureBASIC Keywords --- */
+.hljs-class,
+.hljs-meta-keyword,
+.hljs-selector-class,
+.hljs-built_in,
+.hljs-builtin-name {
+ color: #006666; /* Blue Stone (approx.) */
+ font-weight: bold;
+}
+
+.hljs-string, /* --- used for PureBASIC Strings --- */
+.hljs-selector-attr {
+ color: #0080FF; /* Azure Radiance (approx.) */
+}
+
+.hljs-symbol, /* --- used for PureBASIC Constants --- */
+.hljs-link,
+.hljs-deletion,
+.hljs-attribute {
+ color: #924B72; /* Cannon Pink (approx.) */
+}
+
+.hljs-meta,
+.hljs-literal,
+.hljs-selector-id {
+ color: #924B72; /* Cannon Pink (approx.) */
+ font-weight: bold;
+}
+
+.hljs-strong,
+.hljs-name {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/qtcreator_dark.css b/3.9.1/css/highlight/qtcreator_dark.css
new file mode 100644
index 000000000..7aa56a365
--- /dev/null
+++ b/3.9.1/css/highlight/qtcreator_dark.css
@@ -0,0 +1,83 @@
+/*
+
+Qt Creator dark color scheme
+
+*/
+
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #000000;
+}
+
+.hljs,
+.hljs-subst,
+.hljs-tag,
+.hljs-title {
+ color: #aaaaaa;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+ color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal {
+ color: #ff55ff;
+}
+
+.hljs-code
+.hljs-selector-class {
+ color: #aaaaff;
+}
+
+.hljs-emphasis,
+.hljs-stronge,
+.hljs-type {
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function,
+.hljs-section,
+.hljs-symbol,
+.hljs-name {
+ color: #ffff55;
+}
+
+.hljs-attribute {
+ color: #ff5555;
+}
+
+.hljs-variable,
+.hljs-params,
+.hljs-class .hljs-title {
+ color: #8888ff;
+}
+
+.hljs-string,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition,
+.hljs-link {
+ color: #ff55ff;
+}
+
+.hljs-comment,
+.hljs-meta,
+.hljs-deletion {
+ color: #55ffff;
+}
diff --git a/3.9.1/css/highlight/qtcreator_light.css b/3.9.1/css/highlight/qtcreator_light.css
new file mode 100644
index 000000000..1efa2c660
--- /dev/null
+++ b/3.9.1/css/highlight/qtcreator_light.css
@@ -0,0 +1,83 @@
+/*
+
+Qt Creator light color scheme
+
+*/
+
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #ffffff;
+}
+
+.hljs,
+.hljs-subst,
+.hljs-tag,
+.hljs-title {
+ color: #000000;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+ color: #000000;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal {
+ color: #000080;
+}
+
+.hljs-code
+.hljs-selector-class {
+ color: #800080;
+}
+
+.hljs-emphasis,
+.hljs-stronge,
+.hljs-type {
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function,
+.hljs-section,
+.hljs-symbol,
+.hljs-name {
+ color: #808000;
+}
+
+.hljs-attribute {
+ color: #800000;
+}
+
+.hljs-variable,
+.hljs-params,
+.hljs-class .hljs-title {
+ color: #0055AF;
+}
+
+.hljs-string,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition,
+.hljs-link {
+ color: #008000;
+}
+
+.hljs-comment,
+.hljs-meta,
+.hljs-deletion {
+ color: #008000;
+}
diff --git a/3.9.1/css/highlight/railscasts.css b/3.9.1/css/highlight/railscasts.css
new file mode 100644
index 000000000..008cdc5bf
--- /dev/null
+++ b/3.9.1/css/highlight/railscasts.css
@@ -0,0 +1,106 @@
+/*
+
+Railscasts-like style (c) Visoft, Inc. (Damien White)
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #232323;
+ color: #e6e1dc;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #bc9458;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #c26230;
+}
+
+.hljs-string,
+.hljs-number,
+.hljs-regexp,
+.hljs-variable,
+.hljs-template-variable {
+ color: #a5c261;
+}
+
+.hljs-subst {
+ color: #519f50;
+}
+
+.hljs-tag,
+.hljs-name {
+ color: #e8bf6a;
+}
+
+.hljs-type {
+ color: #da4939;
+}
+
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-attr,
+.hljs-link {
+ color: #6d9cbe;
+}
+
+.hljs-params {
+ color: #d0d0ff;
+}
+
+.hljs-attribute {
+ color: #cda869;
+}
+
+.hljs-meta {
+ color: #9b859d;
+}
+
+.hljs-title,
+.hljs-section {
+ color: #ffc66d;
+}
+
+.hljs-addition {
+ background-color: #144212;
+ color: #e6e1dc;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #600;
+ color: #e6e1dc;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-selector-class {
+ color: #9b703f;
+}
+
+.hljs-selector-id {
+ color: #8b98ab;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-link {
+ text-decoration: underline;
+}
diff --git a/3.9.1/css/highlight/rainbow.css b/3.9.1/css/highlight/rainbow.css
new file mode 100644
index 000000000..905eb8ef1
--- /dev/null
+++ b/3.9.1/css/highlight/rainbow.css
@@ -0,0 +1,85 @@
+/*
+
+Style with support for rainbow parens
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #474949;
+ color: #d1d9e1;
+}
+
+
+.hljs-comment,
+.hljs-quote {
+ color: #969896;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-type,
+.hljs-addition {
+ color: #cc99cc;
+}
+
+.hljs-number,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #f99157;
+}
+
+.hljs-string,
+.hljs-doctag,
+.hljs-regexp {
+ color: #8abeb7;
+}
+
+.hljs-title,
+.hljs-name,
+.hljs-section,
+.hljs-built_in {
+ color: #b5bd68;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-selector-id,
+.hljs-class .hljs-title {
+ color: #ffcc66;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-subst,
+.hljs-meta,
+.hljs-link {
+ color: #f99157;
+}
+
+.hljs-deletion {
+ color: #dc322f;
+}
+
+.hljs-formula {
+ background: #eee8d5;
+}
+
+.hljs-attr,
+.hljs-attribute {
+ color: #81a2be;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/routeros.css b/3.9.1/css/highlight/routeros.css
new file mode 100644
index 000000000..ebe23990d
--- /dev/null
+++ b/3.9.1/css/highlight/routeros.css
@@ -0,0 +1,108 @@
+/*
+
+ highlight.js style for Microtik RouterOS script
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #F0F0F0;
+}
+
+/* Base color: saturation 0; */
+
+.hljs,
+.hljs-subst {
+ color: #444;
+}
+
+.hljs-comment {
+ color: #888888;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+ font-weight: bold;
+}
+
+.hljs-attribute {
+ color: #0E9A00;
+}
+
+.hljs-function {
+ color: #99069A;
+}
+
+.hljs-builtin-name {
+ color: #99069A;
+}
+
+/* User color: hue: 0 */
+
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+ color: #880000;
+}
+
+.hljs-title,
+.hljs-section {
+ color: #880000;
+ font-weight: bold;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #BC6060;
+}
+
+
+/* Language color: hue: 90; */
+
+.hljs-literal {
+ color: #78A960;
+}
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+ color: #0C9A9A;
+}
+
+
+/* Meta color: hue: 200 */
+
+.hljs-meta {
+ color: #1f7199;
+}
+
+.hljs-meta-string {
+ color: #4d99bf;
+}
+
+
+/* Misc effects */
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/school-book.css b/3.9.1/css/highlight/school-book.css
new file mode 100644
index 000000000..60f217ba3
--- /dev/null
+++ b/3.9.1/css/highlight/school-book.css
@@ -0,0 +1,72 @@
+/*
+
+School Book style from goldblog.com.ua (c) Zaripov Yura
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 15px 0.5em 0.5em 30px;
+ font-size: 11px;
+ line-height:16px;
+}
+
+pre{
+ background:#f6f6ae url(school-book.png);
+ border-top: solid 2px #d2e8b9;
+ border-bottom: solid 1px #d2e8b9;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+ color:#005599;
+ font-weight:bold;
+}
+
+.hljs,
+.hljs-subst {
+ color: #3e5915;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-link {
+ color: #2c009f;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+ color: #e60415;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-selector-id,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/school-book.png b/3.9.1/css/highlight/school-book.png
new file mode 100644
index 000000000..956e9790a
Binary files /dev/null and b/3.9.1/css/highlight/school-book.png differ
diff --git a/3.9.1/css/highlight/solarized-dark.css b/3.9.1/css/highlight/solarized-dark.css
new file mode 100644
index 000000000..b4c0da1f7
--- /dev/null
+++ b/3.9.1/css/highlight/solarized-dark.css
@@ -0,0 +1,84 @@
+/*
+
+Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #002b36;
+ color: #839496;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #586e75;
+}
+
+/* Solarized Green */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-addition {
+ color: #859900;
+}
+
+/* Solarized Cyan */
+.hljs-number,
+.hljs-string,
+.hljs-meta .hljs-meta-string,
+.hljs-literal,
+.hljs-doctag,
+.hljs-regexp {
+ color: #2aa198;
+}
+
+/* Solarized Blue */
+.hljs-title,
+.hljs-section,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #268bd2;
+}
+
+/* Solarized Yellow */
+.hljs-attribute,
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-class .hljs-title,
+.hljs-type {
+ color: #b58900;
+}
+
+/* Solarized Orange */
+.hljs-symbol,
+.hljs-bullet,
+.hljs-subst,
+.hljs-meta,
+.hljs-meta .hljs-keyword,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-link {
+ color: #cb4b16;
+}
+
+/* Solarized Red */
+.hljs-built_in,
+.hljs-deletion {
+ color: #dc322f;
+}
+
+.hljs-formula {
+ background: #073642;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/solarized-light.css b/3.9.1/css/highlight/solarized-light.css
new file mode 100644
index 000000000..fdcfcc72c
--- /dev/null
+++ b/3.9.1/css/highlight/solarized-light.css
@@ -0,0 +1,84 @@
+/*
+
+Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #fdf6e3;
+ color: #657b83;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #93a1a1;
+}
+
+/* Solarized Green */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-addition {
+ color: #859900;
+}
+
+/* Solarized Cyan */
+.hljs-number,
+.hljs-string,
+.hljs-meta .hljs-meta-string,
+.hljs-literal,
+.hljs-doctag,
+.hljs-regexp {
+ color: #2aa198;
+}
+
+/* Solarized Blue */
+.hljs-title,
+.hljs-section,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #268bd2;
+}
+
+/* Solarized Yellow */
+.hljs-attribute,
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-class .hljs-title,
+.hljs-type {
+ color: #b58900;
+}
+
+/* Solarized Orange */
+.hljs-symbol,
+.hljs-bullet,
+.hljs-subst,
+.hljs-meta,
+.hljs-meta .hljs-keyword,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-link {
+ color: #cb4b16;
+}
+
+/* Solarized Red */
+.hljs-built_in,
+.hljs-deletion {
+ color: #dc322f;
+}
+
+.hljs-formula {
+ background: #eee8d5;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/sunburst.css b/3.9.1/css/highlight/sunburst.css
new file mode 100644
index 000000000..f56dd5e9b
--- /dev/null
+++ b/3.9.1/css/highlight/sunburst.css
@@ -0,0 +1,102 @@
+/*
+
+Sunburst-like style (c) Vasily Polovnyov
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #000;
+ color: #f8f8f8;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #aeaeae;
+ font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+ color: #e28964;
+}
+
+.hljs-string {
+ color: #65b042;
+}
+
+.hljs-subst {
+ color: #daefa3;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #e9c062;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-tag,
+.hljs-name {
+ color: #89bdff;
+}
+
+.hljs-class .hljs-title,
+.hljs-doctag {
+ text-decoration: underline;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-number {
+ color: #3387cc;
+}
+
+.hljs-params,
+.hljs-variable,
+.hljs-template-variable {
+ color: #3e87e3;
+}
+
+.hljs-attribute {
+ color: #cda869;
+}
+
+.hljs-meta {
+ color: #8996a8;
+}
+
+.hljs-formula {
+ background-color: #0e2231;
+ color: #f8f8f8;
+ font-style: italic;
+}
+
+.hljs-addition {
+ background-color: #253b22;
+ color: #f8f8f8;
+}
+
+.hljs-deletion {
+ background-color: #420e09;
+ color: #f8f8f8;
+}
+
+.hljs-selector-class {
+ color: #9b703f;
+}
+
+.hljs-selector-id {
+ color: #8b98ab;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/tomorrow-night-blue.css b/3.9.1/css/highlight/tomorrow-night-blue.css
new file mode 100644
index 000000000..78e59cc8c
--- /dev/null
+++ b/3.9.1/css/highlight/tomorrow-night-blue.css
@@ -0,0 +1,75 @@
+/* Tomorrow Night Blue Theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #7285b7;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+ color: #ff9da4;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+ color: #ffc58f;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+ color: #ffeead;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #d1f1a9;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+ color: #bbdaff;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #ebbbff;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #002451;
+ color: white;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/tomorrow-night-bright.css b/3.9.1/css/highlight/tomorrow-night-bright.css
new file mode 100644
index 000000000..e05af8ae2
--- /dev/null
+++ b/3.9.1/css/highlight/tomorrow-night-bright.css
@@ -0,0 +1,74 @@
+/* Tomorrow Night Bright Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #969896;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+ color: #d54e53;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+ color: #e78c45;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+ color: #e7c547;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #b9ca4a;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+ color: #7aa6da;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #c397d8;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: black;
+ color: #eaeaea;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/tomorrow-night-eighties.css b/3.9.1/css/highlight/tomorrow-night-eighties.css
new file mode 100644
index 000000000..08fd51c74
--- /dev/null
+++ b/3.9.1/css/highlight/tomorrow-night-eighties.css
@@ -0,0 +1,74 @@
+/* Tomorrow Night Eighties Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #999999;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+ color: #f2777a;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+ color: #f99157;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+ color: #ffcc66;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #99cc99;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+ color: #6699cc;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #cc99cc;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #2d2d2d;
+ color: #cccccc;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/tomorrow-night.css b/3.9.1/css/highlight/tomorrow-night.css
new file mode 100644
index 000000000..ddd270a4e
--- /dev/null
+++ b/3.9.1/css/highlight/tomorrow-night.css
@@ -0,0 +1,75 @@
+/* Tomorrow Night Theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #969896;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+ color: #cc6666;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+ color: #de935f;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+ color: #f0c674;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #b5bd68;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+ color: #81a2be;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #b294bb;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: #1d1f21;
+ color: #c5c8c6;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/tomorrow.css b/3.9.1/css/highlight/tomorrow.css
new file mode 100644
index 000000000..026a62fe3
--- /dev/null
+++ b/3.9.1/css/highlight/tomorrow.css
@@ -0,0 +1,72 @@
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+ color: #8e908c;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+ color: #c82829;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+ color: #f5871f;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+ color: #eab700;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+ color: #718c00;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+ color: #4271ae;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+ color: #8959a8;
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ background: white;
+ color: #4d4d4c;
+ padding: 0.5em;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/vs.css b/3.9.1/css/highlight/vs.css
new file mode 100644
index 000000000..c5d07d311
--- /dev/null
+++ b/3.9.1/css/highlight/vs.css
@@ -0,0 +1,68 @@
+/*
+
+Visual Studio-like style based on original C# coloring by Jason Diamond
+
+*/
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: white;
+ color: black;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-variable {
+ color: #008000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-built_in,
+.hljs-name,
+.hljs-tag {
+ color: #00f;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-attribute,
+.hljs-literal,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-type,
+.hljs-addition {
+ color: #a31515;
+}
+
+.hljs-deletion,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-meta {
+ color: #2b91af;
+}
+
+.hljs-doctag {
+ color: #808080;
+}
+
+.hljs-attr {
+ color: #f00;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+ color: #00b0e8;
+}
+
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/highlight/vs2015.css b/3.9.1/css/highlight/vs2015.css
new file mode 100644
index 000000000..d1d9be3ca
--- /dev/null
+++ b/3.9.1/css/highlight/vs2015.css
@@ -0,0 +1,115 @@
+/*
+ * Visual Studio 2015 dark style
+ * Author: Nicolas LLOBERA
+ */
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #1E1E1E;
+ color: #DCDCDC;
+}
+
+.hljs-keyword,
+.hljs-literal,
+.hljs-symbol,
+.hljs-name {
+ color: #569CD6;
+}
+.hljs-link {
+ color: #569CD6;
+ text-decoration: underline;
+}
+
+.hljs-built_in,
+.hljs-type {
+ color: #4EC9B0;
+}
+
+.hljs-number,
+.hljs-class {
+ color: #B8D7A3;
+}
+
+.hljs-string,
+.hljs-meta-string {
+ color: #D69D85;
+}
+
+.hljs-regexp,
+.hljs-template-tag {
+ color: #9A5334;
+}
+
+.hljs-subst,
+.hljs-function,
+.hljs-title,
+.hljs-params,
+.hljs-formula {
+ color: #DCDCDC;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #57A64A;
+ font-style: italic;
+}
+
+.hljs-doctag {
+ color: #608B4E;
+}
+
+.hljs-meta,
+.hljs-meta-keyword,
+.hljs-tag {
+ color: #9B9B9B;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #BD63C5;
+}
+
+.hljs-attr,
+.hljs-attribute,
+.hljs-builtin-name {
+ color: #9CDCFE;
+}
+
+.hljs-section {
+ color: gold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+/*.hljs-code {
+ font-family:'Monospace';
+}*/
+
+.hljs-bullet,
+.hljs-selector-tag,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #D7BA7D;
+}
+
+.hljs-addition {
+ background-color: #144212;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #600;
+ display: inline-block;
+ width: 100%;
+}
diff --git a/3.9.1/css/highlight/xcode.css b/3.9.1/css/highlight/xcode.css
new file mode 100644
index 000000000..43dddad84
--- /dev/null
+++ b/3.9.1/css/highlight/xcode.css
@@ -0,0 +1,93 @@
+/*
+
+XCode style (c) Angel Garcia
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #fff;
+ color: black;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #006a00;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+ color: #aa0d91;
+}
+
+.hljs-name {
+ color: #008;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #660;
+}
+
+.hljs-string {
+ color: #c41a16;
+}
+
+.hljs-regexp,
+.hljs-link {
+ color: #080;
+}
+
+.hljs-title,
+.hljs-tag,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-number,
+.hljs-meta {
+ color: #1c00cf;
+}
+
+.hljs-section,
+.hljs-class .hljs-title,
+.hljs-type,
+.hljs-attr,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-params {
+ color: #5c2699;
+}
+
+.hljs-attribute,
+.hljs-subst {
+ color: #000;
+}
+
+.hljs-formula {
+ background-color: #eee;
+ font-style: italic;
+}
+
+.hljs-addition {
+ background-color: #baeeba;
+}
+
+.hljs-deletion {
+ background-color: #ffc8bd;
+}
+
+.hljs-selector-id,
+.hljs-selector-class {
+ color: #9b703f;
+}
+
+.hljs-doctag,
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
diff --git a/3.9.1/css/highlight/xt256.css b/3.9.1/css/highlight/xt256.css
new file mode 100644
index 000000000..58df82cb7
--- /dev/null
+++ b/3.9.1/css/highlight/xt256.css
@@ -0,0 +1,92 @@
+
+/*
+ xt256.css
+
+ Contact: initbar [at] protonmail [dot] ch
+ : github.com/initbar
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ color: #eaeaea;
+ background: #000;
+ padding: 0.5;
+}
+
+.hljs-subst {
+ color: #eaeaea;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+.hljs-builtin-name,
+.hljs-type {
+ color: #eaeaea;
+}
+
+.hljs-params {
+ color: #da0000;
+}
+
+.hljs-literal,
+.hljs-number,
+.hljs-name {
+ color: #ff0000;
+ font-weight: bolder;
+}
+
+.hljs-comment {
+ color: #969896;
+}
+
+.hljs-selector-id,
+.hljs-quote {
+ color: #00ffff;
+}
+
+.hljs-template-variable,
+.hljs-variable,
+.hljs-title {
+ color: #00ffff;
+ font-weight: bold;
+}
+
+.hljs-selector-class,
+.hljs-keyword,
+.hljs-symbol {
+ color: #fff000;
+}
+
+.hljs-string,
+.hljs-bullet {
+ color: #00ff00;
+}
+
+.hljs-tag,
+.hljs-section {
+ color: #000fff;
+}
+
+.hljs-selector-tag {
+ color: #000fff;
+ font-weight: bold;
+}
+
+.hljs-attribute,
+.hljs-built_in,
+.hljs-regexp,
+.hljs-link {
+ color: #ff00ff;
+}
+
+.hljs-meta {
+ color: #fff;
+ font-weight: bolder;
+}
diff --git a/3.9.1/css/highlight/zenburn.css b/3.9.1/css/highlight/zenburn.css
new file mode 100644
index 000000000..07be50201
--- /dev/null
+++ b/3.9.1/css/highlight/zenburn.css
@@ -0,0 +1,80 @@
+/*
+
+Zenburn style from voldmar.ru (c) Vladimir Epifanov
+based on dark.css by Ivan Sagalaev
+
+*/
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+ background: #3f3f3f;
+ color: #dcdcdc;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-tag {
+ color: #e3ceab;
+}
+
+.hljs-template-tag {
+ color: #dcdcdc;
+}
+
+.hljs-number {
+ color: #8cd0d3;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute {
+ color: #efdcbc;
+}
+
+.hljs-literal {
+ color: #efefaf;
+}
+
+.hljs-subst {
+ color: #8f8f8f;
+}
+
+.hljs-title,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-section,
+.hljs-type {
+ color: #efef8f;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+ color: #dca3a3;
+}
+
+.hljs-deletion,
+.hljs-string,
+.hljs-built_in,
+.hljs-builtin-name {
+ color: #cc9393;
+}
+
+.hljs-addition,
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+ color: #7f9f7f;
+}
+
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
diff --git a/3.9.1/css/main.css b/3.9.1/css/main.css
new file mode 100644
index 000000000..7d99de654
--- /dev/null
+++ b/3.9.1/css/main.css
@@ -0,0 +1,1217 @@
+@import "custom.css";
+@import "tools.css";
+@import "skin.css";
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Body & Html.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+.body {
+ font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;;
+ text-align: justify;
+ font-size: 85%;
+ background: #F2F2F2;
+}
+
+/* Monospace should be same size as other fonts: this fix was taken from
+ *
+ * http://meyerweb.com/eric/thoughts/2010/02/12/fixed-monospace-sizing/
+ */
+pre, code {
+ font-family: "Courier New", monospace, serif;
+ font-size: 1em;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Html Tag.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+strong {
+ font-weight: bold;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Content.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+#iframe {
+ overflow-x: hidden;
+}
+
+/*
+////////////////////////////////////////
+// Colset.
+////////////////////////////////////////
+*/
+
+#colset {
+ width: 100%;
+}
+
+#colset #col2, #colset #col1 {
+ vertical-align: top;
+}
+
+#colset #col2 {
+ display: table-cell;
+ width: 250px;
+}
+
+/* Required for IE6 */
+#col2 .local { width: 250px; }
+
+/*
+////////////////////////////////////////
+// Main & Local.
+////////////////////////////////////////
+*/
+
+#main {
+ margin: 10px;
+ border-width: 1px;
+ padding: 10px 15px;
+ margin-bottom: 0;
+}
+
+#main.reference h1 {
+ color: #feb672;
+}
+
+.local {
+ margin-right: 10px;
+}
+
+.local .local-title {
+ display: block;
+ padding: 6px 0;
+ padding-top: 10px;
+ margin: 0;
+}
+
+.local .local-title a {
+ text-decoration: none;
+ font-size: 1.25em;
+ font-weight: bold;
+}
+
+.local .local-title .toggle {
+ display: none;
+}
+
+.js .local .local-title .toggle {
+ display: inline;
+}
+
+.local .local-title .toggle, .local .local-title .toggle a {
+ font-size: 1.05em;
+ font-weight: normal;
+}
+
+.local .local-title .toggle a:hover {
+ text-decoration: underline;
+}
+
+.next-right{
+ float:right;
+}
+
+.prev-left{
+ float:left;
+}
+
+/*
+////////////////////////////////////////
+// Project.
+////////////////////////////////////////
+*/
+
+#main .project {
+ clear: left;
+ padding-top: 10px;
+}
+
+#main .project h1 {
+ padding: 0;
+ margin: 5px 0 8px;
+}
+
+#main .project p {
+ padding: 2px 0;
+ margin: 0;
+}
+
+/*
+////////////////////////////////////////
+// Table of content.
+////////////////////////////////////////
+*/
+
+
+.section-block-right{
+ float:right;
+ clear:right;
+ width:50%;
+}
+
+.section-block-left{
+ float:left;
+ clear:left;
+ width:50%;
+}
+
+.toc-item span {
+ padding-left:10px;
+}
+
+.toc-item {
+ font-size: 0.90rem;
+ line-height: 1.4;
+}
+
+#table-of-content a {
+ display: block;
+ padding: 4px 10px;
+ text-decoration: none;
+ color: #444;
+}
+
+#table-of-content a:hover {
+ text-decoration: none;
+ border-right: 2px solid #feb672;
+}
+
+/*
+////////////////////////////////////////
+// Reference menu.
+////////////////////////////////////////
+*/
+
+.js .menu .menu-sub {
+ display: none;
+}
+.js .menu .selected {
+ display: block;
+}
+
+.menu .menu-block {
+ width: 210px;
+ padding: 0 2%;
+}
+
+.menu .menu-block h1 {
+ padding: 2px 0;
+ cursor:pointer;
+ padding-top: 8px;
+ margin: 0;
+ font-size: 1.1em;
+ font-weight: bold;
+}
+
+.menu .menu-sub .menu-item {
+ margin-left: 10px;
+ padding: 2px 0;
+ padding-left: 10px;
+}
+
+.menu .menu-sub .menu-item:first-child {
+ margin-bottom: 0.3em;
+ margin-top: 0.3em;
+}
+
+.menu a {
+ text-decoration: none;
+}
+
+
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Navigation.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+#navigation {
+ border-width: 0;
+ font-size: 1.1em;
+ height: 100px;
+}
+
+#navigation ul {
+ margin: 0;
+ padding: 0;
+ padding-top: 25px;
+ height: 3.1em;
+}
+
+#navigation ul li {
+ list-style: none;
+ padding: 7px 3px;
+ padding-left: 6px;
+ margin: 0;
+ float: left;
+}
+
+#navigation ul li.separator {
+ display: none;
+}
+
+.js #navigation ul li.separator {
+ display: block;
+}
+
+#navigation a {
+ display: block;
+ padding: 0.3em 10px;
+ outline: none;
+ text-decoration: none;
+}
+
+#nav-summary {
+ position: relative;
+ margin: 0;
+ padding: 0;
+}
+
+#nav-summary #nav-summary-childs {
+ position: absolute;
+ top: 1.6em;
+ margin: 0;
+ border-width: 1px;
+ padding: 10px;
+ width: 25em;
+ z-index: 1;
+}
+
+#nav-summary #nav-summary-childs {
+ display: none;
+}
+
+#nav-summary #nav-summary-childs a {
+ float: none;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Footer.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+#footer {
+ padding: 10px 10px 10px 20px;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Header.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+#header {
+ padding: 15px 15px 5px 15px;
+}
+
+#header .images {
+ width: 100%;
+ padding: 0;
+ margin: 0;
+}
+
+#header p {
+ font-size: 1.1em;
+ margin: 0 0 0.5em 0;
+}
+
+#header {
+}
+
+#header #logo, #header #sponsor {
+ display: block;
+ width: 40%;
+ float: left;
+}
+
+#header #sponsor {
+ float: right;
+ text-align: right;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Default Style.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+.warning {
+ border: 1px solid #F0C000;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ padding: 10px;
+ line-height: 100%;
+ width: 80%;
+ background-color: #FFFFCE;
+}
+
+.note table {
+ margin-bottom: 0px;
+}
+.warning table {
+ margin-bottom: 0px;
+}
+.note {
+ border: 1px solid #006fd2;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ padding: 10px;
+ line-height: 100%;
+ width: 80%;
+ background-color: #cee8ff;
+}
+
+.bq {
+ margin-top: 4px;
+ margin-bottom: 4px;
+ padding: 5px 5px 5px 5px;
+ padding-bottom: 15px;
+ color: inherit;
+ background-color: #F0F0F0;
+ border: 1px dashed black;
+ font-family: courier, courier new, monospace;
+ font-size: 1em;
+ line-height: 1.1em;
+ white-space: pre;
+ width: 90%;
+ overflow: auto;
+ overflow: scroll -moz-scrollbars-horizontal;
+ overflow-x: auto;
+}
+
+/**
+* Wiki text stylesheet definitions.
+* @author Matthias L. Jugel
+* @version $Id: SnipSnap-Theme.snip,v 1.1.2.1 2004/01/26 14:07:31 leo Exp $
+*/
+
+.bold {
+ font-weight: bold;
+}
+
+.italic {
+ font-style: italic;
+}
+
+/************************************************/
+/* image positioning */
+img {
+ margin-top: 1px;
+ margin-bottom: 1px;
+ vertical-align: middle;
+}
+
+img.left {
+ display: block;
+ left: 0px;
+}
+
+img.right {
+ display: block;
+ right: 0px;
+}
+
+img.center {
+ text-align: center;
+}
+
+img.float-left {
+ float: left;
+ margin-top: 3px;
+ margin-right: 3px;
+ margin-bottom: 3px;
+}
+
+img.float-right {
+ float: right;
+ margin-top: 3px;
+ margin-left: 3px;
+ margin-bottom: 3px;
+}
+
+/*
+.graph-image {
+ position: relative;
+ width: 100%;
+}
+*/
+
+.heading-1 {
+ font-weight: bold;
+ font-size: 1.05em;
+ font-variant: small-caps;
+}
+
+.heading-1-1 {
+ font-size: 1em;
+ font-variant: small-caps;
+}
+
+.heading-1-1-1 {
+ font-size: 1em;
+}
+
+.quote {
+ font-style: italic;
+ color: inherit;
+ background-color: inherit;
+ font-family: inherit;
+ font-size: inherit;
+}
+
+/************************************************/
+/* code formatting */
+.code {
+ margin: 4px 0;
+ padding: 5px 15Px;
+ color: inherit;
+ border-width: 1px;
+ font-family: courier, courier new, monospace;
+ font-size: 1em;
+ line-height: 1.1em;
+ white-space: pre;
+ overflow: auto;
+ overflow: scroll -moz-scrollbars-horizontal;
+ overflow-x: auto;
+}
+
+.java-keyword {
+ font-weight: bold;
+ background-color: inherit;
+}
+
+.java-object {
+ background-color: inherit;
+}
+
+.java-quote {
+ background-color: inherit;
+}
+
+.xml-keyword {
+ font-weight: bold;
+}
+
+.xml-tag {
+ color: #0000aa;
+ background-color: inherit;
+}
+
+/* weblog formatting */
+.blog-date {
+ display: block;
+ background-color: #f8f8f8;
+ color: black;
+ font-family: verdana, sans-serif;
+ font-size: 1em;
+ font-weight: bold;
+ margin-bottom: 10px;
+ width: 100%;
+}
+
+/* special formatting of a wiki table */
+.wiki-table {
+ border-style: solid;
+ border-color: black;
+ border-width: 0px 1px 1px 1px;
+ empty-cells: show;
+}
+
+.wiki-table td {
+ border-top: 1px solid black;
+ padding: 4px 4px 4px 4px;
+}
+
+.wiki-table th {
+ border-top: 1px solid black;
+ text-align: left;
+ color: inherit;
+ font-weight: bold; /* background-color: #DDEEFF; */
+ padding: 4px 4px 4px 4px;
+ font-size: 1em;
+}
+
+.wiki-table .table-odd {
+ color: inherit;
+ background-color: #F8F8F8;
+}
+
+.wiki-table .table-even {
+}
+
+/************************************************/
+/* list formatting */
+
+.list {
+}
+
+.list-title {
+ font-weight: bold;
+}
+
+.list ul {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ padding-left: 0px;
+ list-style-type: none;
+}
+
+/* wiki lists */
+
+ul.minus {
+ list-style-type: square;
+}
+
+ul.star {
+ list-style-type: disc;
+}
+
+ol.roman {
+ list-style-type: lower-roman;
+}
+
+ol.ROMAN {
+ list-style-type: upper-roman;
+}
+
+ol.alpha {
+ list-style-type: lower-alpha;
+}
+
+ol.ALPHA {
+ list-style-type: upper-alpha;
+}
+
+ol.greek {
+ list-style-type: lower-greek;
+}
+
+ol.GREEK {
+ list-style-type: upper-greek;
+}
+
+ol.hiragana {
+ list-style-type: hiragana;
+}
+
+ol.HIRAGANA {
+ list-style-type: hiragana-iroha;
+}
+
+ol.katakana {
+ list-style-type: katakana;
+}
+
+ol.KATAKANA {
+ list-style-type: katakana-iroha;
+}
+
+ol.HEBREW {
+ list-style-type: hebrew;
+}
+
+li {
+ margin-top: 0.7em;
+}
+
+/************************************************/
+/* index formatting */
+.index-top {
+}
+
+.index-top th {
+ padding: 1px 1px 1px 1px;
+ text-align: left;
+ color: inherit;
+ font-weight: bold;
+ background-color: #d9e4f9;
+}
+
+.index {
+}
+
+.index td {
+ padding: 1px 1px 1px 1px;
+}
+
+.index th {
+ padding: 1px 1px 1px 1px;
+ text-align: left;
+ color: inherit;
+ font-weight: bold;
+ background-color: #d9e4f9;
+}
+
+/************************************************/
+/* calendar display */
+.calendar {
+ border-spacing: 0px;
+ font-size: 0.7em;
+}
+
+.calendar td {
+ text-align: right;
+ padding: 0px;
+}
+
+.calendar caption {
+ font-size: 1em;
+ text-align: left;
+ font-weight: bold;
+}
+
+.calendar .today {
+ border: 3px solid #cccccc;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// CSS 3.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+.corner-all, #nav-summary #nav-summary-childs {
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+}
+
+#navigation a {
+ border-radius: 18px;
+ -moz-border-radius: 18px;
+ -webkit-border-radius: 18px;
+}
+
+#table-of-content a:hover, #navigation #nav-summary-childs a {
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.9);
+}
+
+.wiki-table th strong {
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5);
+}
+
+#nav-summary #nav-summary-childs a:hover {
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.8);
+}
+
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+[hidden],template{display:none}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+body{margin:0}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:0.90rem}
+pre{white-space:pre}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
+input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+html,body{font-size:100%}
+body{color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+body{-webkit-font-smoothing:antialiased}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.spread{width:100%}
+p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ul.no-bullet{list-style:none}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite:before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+ h1{font-size:2.75em}
+ h2{font-size:2.3125em}
+ h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+ h4{font-size:1.4375em}}
+table{margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7;font-weight:bold}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+body{tab-size:4}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
+.clearfix:after,.float-group:after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menu{color:rgba(0,0,0,.8)}
+b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
+b.button:before{content:"[";padding:0 3px 0 2px}
+b.button:after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
+#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
+#content{margin-top:1.25em}
+#content:before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span:before{content:"\00a0\2013\00a0"}
+#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark:before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber:after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
+ body.toc2{padding-left:15em;padding-right:0}
+ #toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+ #toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+ #toc.toc2>ul{font-size:.9em;margin-bottom:0}
+ #toc.toc2 ul ul{margin-left:0;padding-left:1em}
+ #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+ body.toc2.toc-right{padding-left:0;padding-right:15em}
+ body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
+@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+ #toc.toc2{width:20em}
+ #toc.toc2 #toctitle{font-size:1.375em}
+ #toc.toc2>ul{font-size:.95em}
+ #toc.toc2 ul ul{padding-left:1.25em}
+ body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+.sect1{padding-bottom:.625em}
+@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
+.sect1+.sect1{border-top:1px solid #efefed}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
+.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:70px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
+@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
+.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]:before{display:block}
+.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote:before{display:none}
+.verseblock{margin:0 1em 1.25em 1em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
+.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
+table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
+table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
+table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
+table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
+table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
+table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot{border-width:1px 0}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
+ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
+ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
+ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
+ul.inline>li>*{display:block}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
+.colist>table tr>td:last-of-type{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#f1c102}
+.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]:after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@media print{@page{margin:1.25cm .75cm}
+ *{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+ a{color:inherit!important;text-decoration:underline!important}
+ a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+ a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+ abbr[title]:after{content:" (" attr(title) ")"}
+ pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+ thead{display:table-header-group}
+ svg{max-width:100%}
+ p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+ h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+ #toc,.sidebarblock,.exampleblock>.content{background:none!important}
+ #toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+ .sect1{padding-bottom:0!important}
+ .sect1+.sect1{border:0!important}
+ #header>h1:first-child{margin-top:1.25rem}
+ body.book #header{text-align:center}
+ body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
+ body.book #header .details{border:0!important;display:block;padding:0!important}
+ body.book #header .details span:first-child{margin-left:0!important}
+ body.book #header .details br{display:block}
+ body.book #header .details br+span:before{content:none!important}
+ body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+ .listingblock code[data-lang]:before{display:block}
+ #footer{background:none!important;padding:0 .9375em}
+ #footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
+ .hide-on-print{display:none!important}
+ .print-only{display:block!important}
+ .hide-for-print{display:none!important}
+ .show-for-print{display:inherit!important}}
+ /* Stylesheet for CodeRay to match GitHub theme | MIT License | http://foundation.zurb.com */
+ /*pre.CodeRay {background-color:#f7f7f8;}*/
+ .CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top;line-height:1.45}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#000}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
\ No newline at end of file
diff --git a/3.9.1/css/menu.css b/3.9.1/css/menu.css
new file mode 100644
index 000000000..ace229e5b
--- /dev/null
+++ b/3.9.1/css/menu.css
@@ -0,0 +1,17 @@
+.menuItem {
+ font-family:Tahoma, Verdana, Arial;
+ font-weight: normal;
+ font-size:95%;
+}
+.menuTitle {
+ font-size:85%;
+ font-family:Tahoma, Verdana, Arial;
+}
+.menuUsageItem {
+ font-size:95%;
+ font-family:Tahoma, Verdana, Arial;
+ margin-bottom:10px;
+}
+.menuUsageItem a {
+ text-decoration: none;
+}
\ No newline at end of file
diff --git a/3.9.1/css/multi-language-sample.css b/3.9.1/css/multi-language-sample.css
new file mode 100644
index 000000000..706cb6d03
--- /dev/null
+++ b/3.9.1/css/multi-language-sample.css
@@ -0,0 +1,218 @@
+.exampleblock > .content {
+ background-color: inherit;
+ border: 0 none;
+ box-shadow: none;
+ padding: 0;
+}
+
+.exampleblock > .content .title {
+ background-color: #f7f7f8;
+ border-top: 1px solid #ccc;
+ font-family: 'Inconsolata', monospace;
+ margin: 0;
+ padding: 1em 1em 0;
+}
+
+.exampleblock .listingblock {
+ margin: 0;
+}
+
+/* Multi-language selection */
+
+.multi-language-selector .language-option[data-lang='gradle'],
+.multi-language-selector .language-option[data-lang='gradle-groovy'],
+.multi-language-selector .language-option[data-lang='gradle-kotlin'],
+.multi-language-selector .language-option[data-lang='yaml'],
+.multi-language-selector .language-option[data-lang='toml'],
+.multi-language-selector .language-option[data-lang='hocon'],
+.multi-language-selector .language-option[data-lang='properties'],
+.multi-language-selector .language-option[data-lang='groovy-config'],
+.exampleblock[data-lang=gradle] > .content .title,
+.exampleblock[data-lang=gradle-groovy] > .content .title,
+.exampleblock[data-lang=gradle-kotlin] > .content .title,
+.exampleblock[data-lang=yaml] > .content .title,
+.exampleblock[data-lang=toml] > .content .title,
+.exampleblock[data-lang=hocon] > .content .title,
+.exampleblock[data-lang=properties] > .content .title, {
+ background-image: url('data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTE1LjYgMTExIiB3aWR0aD0iMjUwMCIgaGVpZ2h0PSI1MzgiPjxzdHlsZT4uc3Qwe2ZpbGw6IzAyMzAzYX0uc3Qxe2ZpbGw6IzIyZGEyN30uc3Qye2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzMuNSA0NC45YzQtOS4yIDMuOS0xOC4zIDEuNS0yNS41LTMtOC44LTE1LjMtMjAuNC0xOS4yLTE1LjgtLjUuNi03LjYtLjItOC43IDEuMy0xLjcgMi4yLS43IDIuOS4xIDMuNyAyLjUgMi4yIDguOCA0LjYgMTEuNyAxMi4xIDEuMiAzLjIgNCAxMC42LS45IDE1LjEtNS41IDUtMTEuNyA2LjItMzcuMS0xNy40QzkzLjktNi43IDU3LjcgMy41IDQ1LjcgNy41cy0xNy41IDgtMTIuOCAxNy4yYzYuNCAxMi42IDQuMyA4LjcgMTAuNiAxOS4xIDkuOSAxNi41IDMxLjctNy42IDMxLjctNy42LTE2LjIgMjQuNC0zMC4xIDE4LjUtMzUuNCAxMC00LjgtNy43LTguNS0xNi41LTguNS0xNi41LTQxIDE0LjgtMjkuOSA4MC0yOS45IDgwaDIwLjRjNS4yLTI0IDIzLjgtMjMuMSAyNi45IDBoMTUuNWMxMy43LTQ2LjkgNDMuMSAwIDQzLjEgMGgxNy40YzAtMjUtMi42LTM0LjQgMTAuMi0zNi4yIDIxLjgtMi45IDMyLTEzLjEgMzguNi0yOC42eiIvPjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNDcgMzguNnY5LjljMi4xLTMuNiA2LjktMTEuOCAyMi41LTExLjNsLS4xIDE3LjFjLTMuNi4xLTkuOS4yLTE1IDQuMS03LjEgNS40LTcuNCAxMi41LTcuNCAyNHYyNi4zaC0xNi4xVjM4LjVsMTYuMS4xek0yNzYuMiA1OS42Yy4zLTMuNS42LTYuOSAyLjgtMTAuOSA2LjctMTIuMSAyMy4yLTEyIDI3LjctMTIgNi43IDAgMTQuNy45IDIwLjggNC41IDguMiA1IDguMyAxMS42IDguMyAxOS4xbC0uMSAzNi44YzAgNS4zIDAgNy40IDMgMTEuNkgzMTljLS4xLTEuNy0uNC00LjktLjQtNS44LTMuNiAzLTExIDctMjAuNiA3LTE1LjctLjEtMjUuMS05LjgtMjUuMS0yMS44IDAtMy41LjktNi43IDIuMy05LjQgNS0xMCAxNS43LTEyLjIgMjIuNC0xMy40IDIyLjctMy44IDIxLjQtNiAyMS05LjQtLjMtMy4yLTMuNi02LjItMTEuMy02LjItNi45IDAtMTAuNyAyLjItMTIuNCA0LjQtMS44IDIuMi0xLjcgMy42LTEuNyA1LjZsLTE3LS4xek0zMTkgNzMuN2MtMy4zIDEuNy03LjEgMi45LTE0LjYgNC4xLTYgLjgtMTMuOSAyLjItMTMuOSA5LjUgMCA1LjQgNC42IDguMiAxMS4yIDguMiA4LjUgMCAxNC41LTMuOCAxNi4zLTggMS0yLjEgMS00LjIgMS02LjJ2LTcuNnpNNDEwLjQgMTAuNWwtLjMgOTguMmgtMTYuNXYtNi44Yy01LjIgNi4yLTEyLjEgOC43LTE5LjMgOC43LTE2LjUtLjEtMzAuOC0xMi41LTMwLjctMzUuNC4xLTIwLjcgMTEuOC0zOC4zIDMxLjctMzguMiA2LjggMCAxMy4xIDIgMTguNCA3LjhWMTAuNWgxNi43em0tMjAuNiA0OC4zYy0yLjUtMy44LTYuNi02LjQtMTIuMi02LjQtMTEuMyAwLTE2LjcgMTAuMS0xNi43IDIxLjEgMCAxLjMuMSAyMi4xIDE2LjMgMjIuMSA4LjYgMCAxNi40LTYuMyAxNi4zLTIxLjMtLjItNC41LS43LTEwLjktMy43LTE1LjV6TTQzOS40IDEwLjVsLS4zIDk4LjJoLTE2LjhWMTAuNWgxNy4xek01MTMuOSA5Mi40Yy03LjcgMTMuNi0xNy41IDE4LjYtMzEuNyAxOC42LTE4LjItLjEtMzUuNy0xMS42LTM1LjYtMzcuMi4xLTIzLjMgMTUuMS0zNi41IDM0LjctMzYuNCAxOC4zLjEgMjUuOSAxMS4xIDI3LjMgMTMuMSA1LjcgOC4xIDYuOSAyMC4yIDcgMjcuMWwtNTEuNC0uMmMxLjkgMTEgOC43IDE3LjMgMTkuNyAxNy4zIDExLjQgMCAxNC40LTYuNyAxNi41LTkuNmwxMy41IDcuM3ptLTE2LjUtMjcuMWMtMS41LTEwLjgtOC4xLTE0LjYtMTUuNS0xNC42LTguOSAwLTE1IDUuMS0xNyAxNC41bDMyLjUuMXoiLz48Zz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTc5LjYgNTcuNHYxNC40aDI0LjZ2MTYuOWMtNi4zIDQtMTMuNSA2LjMtMjMuOCA2LjMtMTYuNiAwLTMwLjMtMTMuOS0zMC4zLTM1LjYgMC0yMS4zIDEyLjYtMzUuNSAzMS44LTM1LjUgMTUuNCAwIDIxLjIgMTIuNyAyMi4xIDE3LjVoMTYuOGMwLTkuOC0xMS42LTMzLjktNDAuNC0zMy45LTMwLjUgMC00OC41IDIxLjYtNDguNSA1MiAwIDMxLjYgMjEuNiA1MS40IDQ3LjQgNTEuNCAzOC4yIDAgNDEuNS0xOS4xIDQxLjUtMTkuMVY1Ny40aC00MS4yeiIvPjwvZz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTc2LjYgMjhjLTMuNy4zLTcuNC45LTEwLjkgMS45LS4xLjEtLjIuMy0uMy40LTEuNiAxLjgtMy42IDMuNS01LjggNC41LS4zLjItLjYuMy0uOS40bC0uNi42Yy01LjUgNS0xMi4yIDYuMi0zNy4xLTE3LjRDOTQuMy02LjkgNTcuOCAzLjUgNDUuOCA3LjVzLTE3LjUgOC0xMi44IDE3LjJjNi40IDEyLjYgNC4zIDguNyAxMC42IDE5LjEgOS45IDE2LjUgMzEuNy03LjYgMzEuNy03LjYtMTYuMiAyNC40LTMwLjEgMTguNS0zNS40IDEwLTQuOC03LjctOC41LTE2LjUtOC41LTE2LjUtNDEgMTQuOC0yOS45IDgwLTI5LjkgODBoMjAuNGM1LjItMjQgMjMuOC0yMy4xIDI2LjkgMGgxNS41YzEzLjctNDYuOSA0My4xIDAgNDMuMSAwaDE3LjRjMC0yNS0yLjYtMzQuNCAxMC4yLTM2LjIgMjEuOS0zIDMyLTEzLjIgMzguNi0yOC42IDIuNC01LjggMy4zLTExLjYgMy0xNi45eiIvPjxnPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDIuNyAzNC41czkuNCAzLjEgMjIgNy4zYy0uNyAzLjQtNyA5LjktMTUuMSA3LjEtMTAuOC0zLjUtNi45LTE0LjQtNi45LTE0LjR6Ii8+PGVsbGlwc2UgdHJhbnNmb3JtPSJyb3RhdGUoLTYuMDY2IDExMy4zNjMgNDEuMjg1KSIgY2xhc3M9InN0MCIgY3g9IjExMy40IiBjeT0iNDEuMyIgcng9IjUuNyIgcnk9IjUuNSIvPjwvZz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQ3LjIgOC43Yy43LjYgMS42IDEuMiAyLjUgMS44IDQuMi0zLjUgOS43LTMuNCAxNC40LTUuMy00LjEtMy44LTEwLjctNi43LTEyLjctNC4zLS41LjYtMy4xIDIuNi00LjIgNC4xLTEuOCAyLjItLjkgMi45IDAgMy43eiIvPjwvc3ZnPg==');
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 40px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='yaml'],
+.exampleblock[data-lang=yaml] > .content .title {
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNDcwLjY0NyI+CiAgPHBvbHlnb24gaWQ9IlkiIHBvaW50cz0iMjM1Ljc5MyAwIDE0My45NzggMTM3LjY3NCAxNDMuOTc4IDIyNC45NDkgODcuNzAyIDIyNC45NDkgODcuNzAyIDEzNy42NzQgMCAwIDYzLjI1IDAgMTE5LjAxOCA4OC42NDYgMTc1LjI0MyAwIDIzNS43OTMgMCAyMzUuNzkzIDAiLz4KICA8cGF0aCBpZD0iQSIgZmlsbD0iI2NiMTcxZSIgZD0iTTMzMC4yOTQsMTc1LjQ1MWgtMTAxLjg2MWwtMjAuNzE3LDUwLjAyNGgtNDUuMTA2bDk1LjM4LC0yMjQuOTQ5aDQ2LjEzN2w5MS41MSwyMjQuOTQ5aC00OC4ybC0xNy4xNDQsLTUwLjAyNHptLTE2LjkyLC00NC45MTFsLTMxLjIyNiwtODIuNTVsLTM0LjgzNyw4Mi41NWg2Ni4wNjN6Ii8+CiAgPHBvbHlnb24gaWQ9Ik0iIHBvaW50cz0iODcuNzAxIDI1MC4xNzcgODcuNzAxIDQ3MC42NDcgMTM1LjAwNCA0NzAuNjQ3IDEzNS4wMDQgMzE4LjU2OSAxODQuNTA5IDQyMC43ODkgMjIxLjc0MyA0MjAuNzg5IDI3Mi45MzkgMzE0Ljk3NiAyNzIuOTM5IDQ3MC42MDIgMzE4LjMxOCA0NzAuNjAyIDMxOC4zMTggMjUwLjE3NyAyNTYuMzU4IDI1MC4xNzcgMjAxLjM4MSAzNDkuODgzIDE0OS4wMjEgMjUwLjE3NyA4Ny43MDEgMjUwLjE3NyA4Ny43MDEgMjUwLjE3NyIvPgogIDxwb2x5Z29uIGlkPSJMIiBwb2ludHM9IjUxMiA0MjIuNzM1IDM5NS42MzggNDIyLjczNSAzOTUuNjM4IDI1MC4xMjUgMzQ3LjQ0MiAyNTAuMTI1IDM0Ny40NDIgNDY5LjY0NyA1MTIgNDY5LjY0NyA1MTIgNDIyLjczNyA1MTIgNDIyLjczNSIvPgo8L3N2Zz4=);
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 40px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='toml'],
+.exampleblock[data-lang=toml] > .content .title {
+ background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDAwIDQwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDAwIDQwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNGRkZGRkY7fQoJLnN0MXtmaWxsOiM3RTdGN0Y7fQo8L3N0eWxlPgo8cmVjdCBpZD0iWE1MSURfMV8iIGNsYXNzPSJzdDAiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIi8+CjxnIGlkPSJYTUxJRF8yXyI+Cgk8ZyBpZD0iWE1MSURfMTFfIj4KCQk8cGF0aCBpZD0iWE1MSURfMTJfIiBjbGFzcz0ic3QxIiBkPSJNMjguNiwzMC41aDc1LjF2MzcuM0g2OXYyNjIuN2gzNC43VjM2OEgyOC42VjMwLjV6Ii8+Cgk8L2c+Cgk8ZyBpZD0iWE1MSURfNF8iPgoJCTxwYXRoIGlkPSJYTUxJRF82XyIgZD0iTTI3Ni40LDEwMS41djM5LjFoLTYwLjF2MTgxLjlIMTc0VjE0MC42aC02MC40di0zOS4xSDI3Ni40eiIvPgoJPC9nPgoJPGcgaWQ9IlhNTElEXzNfIj4KCQk8cGF0aCBpZD0iWE1MSURfNV8iIGNsYXNzPSJzdDEiIGQ9Ik0zNjUuNywzNjhoLTc1LjF2LTM3LjNoMzQuN1Y2OGgtMzQuN1YzMC41aDc1LjFWMzY4eiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg==);
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 40px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='groovy-config'],
+.exampleblock[data-lang=groovy] > .content .title {
+ background-image: url('data:image/svg+xml;base64,PHN2Zw0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgd2lkdGg9IjYxNC4wNjA4NSINCiAgIGhlaWdodD0iMzAzLjU5ODYiDQogICB2ZXJzaW9uPSIxLjEiPg0KICA8Zw0KICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzUuMzk2NTk5LC0zMC41NTgxOTYpIj4NCiAgICA8cGF0aA0KICAgICAgIGQ9Im0gMTU0Ljk3Njg3LDMzMi42OTE2MiBjIDAsLTAuODA1ODcgMTAuODMxMjMsLTE4LjYyMTcyIDI0LjA2OTQsLTM5LjU5MDc2IDEzLjIzODE5LC0yMC45NjkwNSAyMi42NjA1NywtMzguNjIwNjYgMjAuOTM4NjcsLTM5LjIyNTc3IC0xLjcyMTkxLC0wLjYwNTEgLTcuNjc5OTIsMC40ODU2NyAtMTMuMjQwMDIsMi40MjM5MyAtMTYuNzQ1MjQsNS44Mzc0MyAtMjAuMTg2MDUsNC4yOTAxNiAtMzIuNjkzMDgsLTE0LjcwMTU1IC0xMy41MzI2NSwtMjAuNTQ5MDYgLTE0LjAxNzI0LC0yMi42Njk4MyAtNi45NjE1OCwtMzAuNDY2MjQgNC42MDg3NiwtNS4wOTI1NiA0LjMzMTU5LC02LjI3OTY3IC0zLjIzMTksLTEzLjg0MzE2IC00LjU1MDA5LC00LjU1MDEgLTguMjcyODksLTkuNjQzMDkgLTguMjcyODksLTExLjMxNzc2IDAsLTIuODE2NzkgLTMwLjk5MTQ1LC0xNS41ODkzMyAtNzkuOTg5NDk2LC0zMi45NjYxNSAtMTEuMTA5NjYsLTMuOTM5OTcgLTIwLjE5OTM3NSwtNy44MjkyOCAtMjAuMTk5Mzc1LC04LjY0MjkxIDAsLTAuODEzNjYgMjMuNDcwNzM4LC0xLjAwNDc2IDUyLjE1NzE5MSwtMC40MjQ2OSBsIDUyLjE1NzIxLDEuMDU0NjYgNS4wOTEyNywtOC4wMzAwMSBjIDIxLjUxNjQ0LC0zMy45MzU5MiA1NC4wMDk1MiwtNjQuNTg4MjEyIDY4LjQ2NzA1LC02NC41ODgyMTIgMy4wMTA2LDAgOS4xMjE0MSwyLjg2OTE4IDEzLjU3OTUzLDYuMzc1OTQ1IDcuMjU5NDYsNS43MTAyODMgOC4yNTY1LDkuMjQ4NjMyIDkuNTQ5OTQsMzMuODkxOTY3IDAuNzk0MywxNS4xMzM4MiAyLjQyNDIyLDI4LjQ5NjAxIDMuNjIxOTgsMjkuNjkzNzkgMS4xOTc3NSwxLjE5Nzc2IDQuOTk3NjksLTAuMzc0MjUgOC40NDQzMSwtMy40OTMzOSA0LjQwMTQsLTMuOTgzMjMgOS4wMzQ4NCwtNS4wNjMxMyAxNS41Njc2MSwtMy42MjgzIDYuNzY3NTYsMS40ODY0MSAxMC42MjcxLDAuNDY4OTUgMTQuMTY5MzgsLTMuNzM1NDMgNS4zMTM2LC02LjMwNjY2IDMxLjkwNTk2LC00OC45MzcyMDEgMzEuOTA1OTYsLTUxLjE0ODc0NCAwLC0wLjc1MTU4OCA1LjI2NTA5LC05Ljc1NzMwNiAxMS43MDAyMywtMjAuMDEyNzAzIDYuNDM1MDksLTEwLjI1NTM5NyAxMy44NDY2NCwtMjIuMDgwNjMxIDE2LjQ3MDA3LC0yNi4yNzgyODMgNC42NjU1OCwtNy40NjUyMDEgNS4zOTY2LC02LjU4MTczNSAzMy40MjY5Miw0MC4zOTg3MzYgMjguOTQxMjEsNDguNTA3MTY0IDQ0LjUxNzY3LDY2LjQwNjU1NCA1Mi4zMTU3LDYwLjExNzYzNCA1LjQ0MiwtNC4zODg4OSAzNC4wMDA1NSwtNC42Mzc5NCA0MS45ODI0NiwtMC4zNjYxNCA0LjUzNjY1LDIuNDI3OTMgNy40MTkxNiwyLjM5NjEgOS45MjQ4NCwtMC4xMDk2MiA1LjIwMDA3LC01LjIwMDA2IDE3LjY0OTgyLC00LjI5NDM3IDIwLjkwNDEyLDEuNTIwNzggMi41NjM5Myw0LjU4MTQ2IDMuMjE3ODQsNC41ODE0NiA3LjAyMDE0LDAgMi4zMDYwNiwtMi43Nzg2NyA5LjEzNjE5LC01LjA1MjA4IDE1LjE3ODAzLC01LjA1MjA4IDguNTM4ODQsMCAxMS43OTMzNiwxLjc3MzY3IDE0LjYxNDAzLDcuOTY0MzcgbCAzLjYyODgxLDcuOTY0MzYgNTYuMDkyMDMsLTEuOTg1OCBjIDMwLjg1MDYyLC0xLjA5MjIyIDU2LjA5MjA0LC0xLjI4Njg4IDU2LjA5MjA0LC0wLjQzMjU1IDAsMC44NTQyNyAtMjIuOTA2MDgsMTAuMDcxOTUgLTUwLjkwMjQxLDIwLjQ4MzcxIC0yNy45OTYzMiwxMC40MTE3MiAtNTEuMzY3LDE5LjI0MzA1IC01MS45MzQ4NCwxOS42MjUxMiAtMC41Njc4NSwwLjM4MjA3IDAuNjk4NDcsOS40OTI3MyAyLjgxNDA1LDIwLjI0NTg4IDUuNTA0NTcsMjcuOTc5MTcgMS45MTQ1OCw0Ni42MjU4OSAtMTEuOTI2MjksNjEuOTQ2MDQgLTYuMjA5LDYuODcyNjMgLTE2LjI4MzM4LDE0LjE0Mzk1IC0yMi4zODc1MywxNi4xNTg0OSAtNi4xMDQxNSwyLjAxNDU0IC0xMS4wOTg0NCw0LjM4NjE0IC0xMS4wOTg0NCw1LjI3MDE5IDAsMC44ODQwNiA2LjUxNTI1LDExLjY3ODkzIDE0LjQ3ODM1LDIzLjk4ODU5IDcuOTYzMDksMTIuMzA5NjkgMTMuMjgyOCwyMi4zODEyNSAxMS44MjE1MiwyMi4zODEyNSAtMi4zODUwNCwwIC02MC40Njk4NywtMjIuNDQyMzggLTE1MC43ODg5OCwtNTguMjYwNyAtMTcuODA5LC03LjA2MjU4IC0zNC4wMjY4MywtMTIuODQxMDkgLTM2LjAzOTYxLC0xMi44NDEwOSAtMy43NTM2MywwIC0zNi4xNjY5LDEyLjI4NjYyIC0xMzEuMjI0MjMsNDkuNzQyMDYgLTU1LjEyNTI1LDIxLjcyMTAzIC01Ny4yOTIxNywyMi40NzM0OCAtNTcuMjkyMTcsMTkuODk0NTEgeiBtIDExMy4xMTY0OCwtNTEuMjUyNjUgYyAyOS4zMjk0OSwtMTEuMzk1MDYgNTguNDE2NTcsLTIyLjUzMDggNjQuNjM3OTgsLTI0Ljc0NjA3IDEwLjcwMDY4LC0zLjgxMDE5IDE0LjI3OTE4LC0yLjg1NDkzIDY2LjI1Mzk0LDE3LjY4NjM0IDMwLjIxODI1LDExLjk0Mjc0IDYwLjAzMjUyLDIzLjU3NTg3IDY2LjI1MzkyLDI1Ljg1MTM0IDYuMjIxNDEsMi4yNzU1MiAxOS4wNDMxNyw3LjIyMDU5IDI4LjQ5Mjc1LDEwLjk4OTA4IDEwLjc3NTAzLDQuMjk3MDQgMTYuMjgyNTEsNS4zMzE2NiAxNC43NzEwOCwyLjc3NDg0IC0xNi44ODM3LC0yOC41NjExMyAtMTcuMzk5OCwtMjkuMDM3MTYgLTI5LjEwMDgzLC0yNi44NDIwNSAtMTQuMTEzNjEsMi42NDc3MiAtMjIuODc4OTcsLTAuMDY4NSAtMjcuMzgzNjksLTguNDg1NTQgLTIuOTIxMTIsLTUuNDU4MTYgLTIuMDI5NDQsLTguMTI3NTkgNS4yNTQ0MiwtMTUuNzMwMzEgMTAuODQ4ODcsLTExLjMyMzc3IDkuMTQ0NTcsLTIxLjc0MTQ0IC00Ljg0NDI5LC0yOS42MTA5OSAtNS4zNjc2NCwtMy4wMTk1OSAtMTIuMTQwNTksLTEwLjQ4MzcyIC0xNS4wNTEwMiwtMTYuNTg2OTcgbCAtNS4yOTE2OSwtMTEuMDk2ODIgLTExLjM0NTUxLDcuNjk5MjggYyAtMTMuOTQ0NTgsOS40NjMwNCAtMzAuOTUwNjIsOS45NTA2MyAtNDUuMTQ3NjQsMS4yOTQ0OCBsIC0xMC40NjQ4OCwtNi4zODA2NSAtMTIuMTU4NDEsOC4yNjI4NCBjIC0xMi4xNzQ2Miw4LjI3Mzg2IC0yNi4xOTEwOCw5LjM0MjggLTQwLjQzNzUyLDMuMDgzOTIgLTMuOTI0OTgsLTEuNzI0MzkgLTUuNjU1ODMsLTEuMDU0MTUgLTUuNjU1ODMsMi4xOTAwOCAwLDIuNTcxMTggLTMuNzA0MjksNi4zNjI2NSAtOC4yMzE4MSw4LjQyNTUzIC0xMy41NzQyLDYuMTg0NzkgLTI2LjgyMTA3LDQuNTQyNDcgLTM1LjgwMjI5LC00LjQzODc1IGwgLTguMTg5NDQsLTguMTg5NDQgLTYuNjA5ODIsOC40MDMwMyBjIC0zLjYzNTM5LDQuNjIxNjYgLTEyLjA0OTUyLDExLjgzNjk4IC0xOC42OTgwNSwxNi4wMzM5OCAtOC4yMjk2NSw1LjE5NTE4IC0xOC40MTc0MSwxNy44NzE4MiAtMzEuOTE2NCwzOS43MTM2MSAtMTAuOTA1NDksMTcuNjQ1NDYgLTE5LjgyODE2LDMyLjk4MDQyIC0xOS44MjgxNiwzNC4wNzc3NiAwLDEuMDk3MyA4LjM2MjU1LC0xLjUyNzM2IDE4LjU4MzQyLC01LjgzMjU5IDEwLjIyMDg5LC00LjMwNTIxIDQyLjU4MDI4LC0xNy4xNTA4NyA3MS45MDk3NywtMjguNTQ1OTMgeiBtIDI0OC43NjcyOSwtMTIuMjU4NDYgYyAyMi4yNTU1NywtMTIuNTA4MzMgMjcuNDE0MjQsLTM1LjY0ODA4IDE3LjU3Njg1LC03OC44NDMxOCAtOC4yMjE0LC0zNi4wOTk2MSAtMTIuMzI1NSwtNDcuOTEzMjcgLTE3LjE5NDk0LC00OS40OTU5NyAtMy4zNjkwMiwtMS4wOTUwMyAtMy44ODY3NCwwLjEwNjk5IC0xLjk4ODU4LDQuNjE2MzUgMTIuMzE1MTYsMjkuMjU3NzEgMTIuOTk5NjMsNDMuOTQ2NjIgMi4yNDAyMiw0OC4wNzU0MSAtNy4zOTE1MSwyLjgzNjQyIC0xNS4yMzIzOSwtNy43OTA3NSAtMjEuMzk5MDIsLTI5LjAwMzI2IC00Ljc3NTEyLC0xNi40MjU4NyAtOS43Njg2MSwtMjMuODI4MzcgLTEzLjUzMzg3LC0yMC4wNjMxMSAtMC45MDE1NywwLjkwMTYgMC42Nzg0OCw2LjEyMTE3IDMuNTExMjQsMTEuNTk5MTMgMi44MzI3Myw1LjQ3NzkgNi43MTcyMSwyMS45NzQ1NSA4LjYzMjE3LDM2LjY1OTIgMS45MTQ5NywxNC42ODQ2MiA1LjYxMzg1LDMwLjA2MDczIDguMjE5NzMsMzQuMTY5MTIgNi43NzE5OCwxMC42NzY2MSAxNy41NTEyOCw4LjEwMzYgMjQuNTIzODIsLTUuODUzODQgNi44OTM3MywtMTMuNzk5NzUgNy42NzI4NCwtNC42MDc4MSAwLjk2OTMsMTEuNDM2MDIgLTYuOTYwNzQsMTYuNjU5MzcgLTI3LjYzNDQyLDIxLjY1NDgxIC01MS41ODQxOCwxMi40NjQ0MiAtMy44MzMzLC0xLjQ3MDk2IC01LjEzMDM5LDAuMDUxNSAtNS4xMzAzOSw2LjAyMDk3IDAsNC4zOTQzMSAtMi45MzYxOCwxMS43MjI0NSAtNi41MjQ4OCwxNi4yODQ3IGwgLTYuNTI0ODgsOC4yOTUwNiA4Ljk0ODgxLDEuNTExMjMgYyAxNS40NDk0NSwyLjYwOTA5IDM2LjYzMzI4LC0wLjc3NjQyIDQ5LjI1ODYsLTcuODcyMjUgeiBtIC0zMjAuMzY2NSwtMjcuNTM3MzMgYyA0Ni40NTk2NSwtMTMuMzU0NSA1NC43NjE4OCwtMjguOTMwOTMgMzkuMzI4ODUsLTczLjc4NzgyIC0zLjU4MTg1LC0xMC40MTA3OSAtNi41MTI0MywtMjEuNjA5NzEgLTYuNTEyNDMsLTI0Ljg4NjU0IDAsLTExLjE1NzEyIC01LjYxMTUyLC02LjAwMTYxIC05LjgxNzEzLDkuMDE5NDMgLTUuNTYyMDMsMTkuODY1NjEgLTIyLjI5MTE1LDM2Ljc1MDUzIC0zNi4zNDUxNiwzNi42ODM2NCAtMTIuMjA1NDcsLTAuMDU4MiAtMTYuMTgyNTEsLTIuMjgwMDggLTIxLjIyMzc4LC0xMS44NTc2OCAtOS4wNDc0OCwtMTcuMTg4ODIgMC44MTQ2OSwtNDMuNTY3OTcgMjUuOTY5NTQsLTY5LjQ2MjcyIDE4LjQyNDMxLC0xOC45NjYzMDQgMjguNDg4OTMsLTIwLjY4Mzk2NSAyOC40ODg5MywtNC44NjIwNSAwLDI0LjY3MzIgLTE3LjAxMTM0LDYwLjk5NDcgLTI1Ljk3MzA5LDU1LjQ1NjA0IC00LjM4MjA1LC0yLjcwODI2IC0zLjY3MTM4LC0xNC42Njc1MiAxLjQxNzIyLC0yMy44NTAwOSA0LjMyNzM1LC03LjgwODgyIDMuNDQ4MTQsLTE5LjcwNzcxIC0xLjQ1NjIsLTE5LjcwNzcxIC01LjY4Njg5LDAgLTE2Ljk0NTQ3LDIwLjcxMTk2IC0xOC40MzMxOCwzMy45MTA3NCAtMS4zMTUxNSwxMS42NjgyNiAtMC40OTI4NiwxNC41MDU0NSA1LjA2NjUyLDE3LjQ4MDcyIDE5LjQ4MjQ0LDEwLjQyNjcgNDUuMDA1MzEsLTIxLjM5NTQ1IDQ2LjI5MDgzLC01Ny43MTU4NCAwLjY3NTA0LC0xOS4wNzMxODEgLTMuMDE2NzYsLTI0LjQ0MTEwNSAtMTQuNzc5MDYsLTIxLjQ4ODk1MSAtMTcuMTE4NzksNC4yOTY1NDMgLTYzLjIzNDgzLDYzLjc4NjY0MSAtNjMuMjM0ODMsODEuNTczNDYxIDAsMTMuOTEyOCA2Ljk4NzM3LDIzLjY5NzI4IDE5LjI4ODI3LDI3LjAwOTYgMjAuOTE0MTksNS42MzE2MiA0MS4xMzUzOSwtNC4zNzM4OSA1NS40NjMzLC0yNy40NDMzOCBsIDYuMDIxNzUsLTkuNjk1NzEgMC4wMTMyLDEzLjE3MjIzIGMgMC4wMTYyLDE5LjA3MzggLTEyLjQyNjE5LDI5LjEyNzQgLTUxLjY5ODE3LDQxLjc2NzkzIC05Ljc3NjQ5LDMuMTQ2OCAtMTguMTgzMzIsNi4wNTQ0MSAtMTguNjgxOCw2LjQ2MTM3IC0xLjgyMDU2LDEuNDg2MzIgMTYuNjg3MzksMjcuNDc1NzEgMTkuNTY2NDQsMjcuNDc1NzEgMS42MzI2MiwwIDExLjE5MTE1LC0yLjM2MzU5IDIxLjI0MTIzLC01LjI1MjM4IHogTSA0NzYuNDExLDIxNy45NjMwMSBjIDQuNjYzNDcsLTUuMTUzMSA1LjQ4NTUxLC0xMC43NTEwMyA0LjQ4NTc5LC0zMC41NDgyMyAtMS4wODczOSwtMjEuNTMzMzEgLTIuMjc3NDYsLTI1LjMzODUxIC0xMC42NjE0MywtMzQuMDg5NDkgLTE1LjE0ODgyLC0xNS44MTE5NCAtMzMuODYxMjMsLTExLjc3ODI4IC0yMi45MDgxOSw0LjkzODE0IDUuODIyNTYsOC44ODYzNyAxMi45MjU0LDcuMzY4NjQgMTAuNDE2NDEsLTIuMjI1ODEgLTEuOTk4NjQsLTcuNjQyNzYgMS43Mjk5OCwtNy44NDM1OCA4LjIyODM5LC0wLjQ0MzIyIDEyLjE5MzAxLDEzLjg4NTM3IDkuMTE1MzQsMzMuMTI2OTggLTUuMjk4NiwzMy4xMjY5OCAtOS44NjcxNiwwIC0xMi45NDE5NSwtNC4yMzE3NiAtMTkuMzczNTMsLTI2LjY2MzE4IC0yLjkzMDU5LC0xMC4yMjA4NyAtNi40OTk2NCwtMTguNTgzNDMgLTcuOTMxMjcsLTE4LjU4MzQzIC00Ljc2ODk5LDAgLTYuODkyODcsNC4yMDg3OCAtMy45MjcyMSw3Ljc4MjQgMS42MTA4OCwxLjk0MTEgNi4wNzIxOCwxNS44OTEyNyA5LjkxNDA0LDMxLjAwMDQxIDkuNjY5MDMsMzguMDI1OTYgMjMuMTc2NjYsNTEuMDQxNDUgMzcuMDU1NiwzNS43MDU0MyB6IG0gLTE4My43NzEyNSwwLjYwMzk1IGMgMS45ODk3OCwtMS4zMzUgMi44OTk3NSwtNy42NDg5MyAyLjA3ODY1LC0xNC40MjMgLTEuMzI0NDksLTEwLjkyNzAyIC0yLjA2NjYyLC0xMS43MjQxIC03Ljk3MjcsLTguNTYzMjcgLTguNDg3MzMsNC41NDIyNyAtMTcuNjA4MzksLTQuMDYzNTEgLTIwLjcwMjIyLC0xOS41MzI2IC0yLjM0NzA3LC0xMS43MzUzOCAtMy4wNjUyNiwtMTEuNTA0ODkgMTQuMDI1NzYsLTQuNTAxNDkgMi4xNDI4OCwwLjg3ODA4IDcuNTk2NzEsLTIuMTA0MDIgMTIuMTE5NjMsLTYuNjI2OTQgOC4yNzQwOCwtOC4yNzQwOCAxMC45OTgwMiwtMTguMjEyOTkgNC45OTE1NiwtMTguMjEyOTkgLTEuNzc3NTQsMCAtMy4yMzE5LDEuNDU0MzYgLTMuMjMxOSwzLjIzMTkgMCw0LjY0OTIzIC04Ljg0MjMxLDMuOTg5ODIgLTEwLjgzNDY1LC0wLjgwNzk3IC0xLjE2MjI0LC0yLjc5ODc5IC0zLjYzODA3LC0xLjgwNTkxIC04LjA1OTE1LDMuMjMxOSAtMy41MDk4NSwzLjk5OTQ4IC03Ljc5NjczLDcuMjcxNzggLTkuNTI2NDEsNy4yNzE3OCAtMS43Mjk2OSwwIC00LjA2NTYsLTMuMjcyMyAtNS4xOTA4OCwtNy4yNzE3OCAtMS45NzE5NSwtNy4wMDg1NiAtMi4yMTM2NiwtNy4wNTI3NyAtNi42NzczNywtMS4yMjE2OSAtMy45MTA2LDUuMTA4NTQgLTMuOTQ1NTcsNi43MzU4MyAtMC4yMjQ2MSwxMC40NTY2MSAzLjk0MDYyLDMuOTQwNjQgMTEuNDI2MTUsMzAuODcxMDIgMTEuNDI2MTUsNDEuMTA3NDQgMCwxMi43Mjg2NyAxNy41MjkzMywyMi43MzgzMiAyNy43NzgzLDE1Ljg2MjEgeiBtIDU4Ljk0MzA5LC0xNi44NzUzMSBjIDEyLjE0NTY3LC0xMi4xNDU2NyAxNS43NDQ1MiwtMzAuMzUxNDMgOS4xMjk0MywtNDYuMTgzNTcgLTUuMTcwMTYsLTEyLjM3Mzk3IC0xNC4xNDQ2NiwtMTcuMDA1MTYgLTI2Ljc5ODc4LC0xMy44MjkxOCAtOS40MDI2MywyLjM1OTkxIC0yMy43MjMxMSwyOS43NzY1OSAtMjMuNzczODcsNDUuNTE1MzYgLTAuMDc5MiwyNC41MjkwMiAyMy4yNTA1MywzMi42OTAwNSA0MS40NDMyMiwxNC40OTczOSB6IG0gLTIyLjA4MzQxLC0xOS40MzQwNyBjIC0zLjU1NTEsLTMuNTU1MSAtNi40MTc1NSwtMTAuNDYzMjggLTYuMzYxMDIsLTE1LjM1MTUzIDAuMDkzNCwtOC4wNzk2NSAwLjQ5MzE1LC04LjM3MzUgNC4zOTYxOSwtMy4yMzE5IDQuODI0NjQsNi4zNTU2OSAxMy4zOTc5Nyw3LjQ1NjY2IDE2LjY4MjQxLDIuMTQyMzIgMS4xOTQzMiwtMS45MzI0MSAwLjU1Mjk1LC01LjEzMjAyIC0xLjQyNTIsLTcuMTEwMTcgLTUuMDgxMzIsLTUuMDgxMzIgLTQuNDY1NjEsLTExLjk5OTYzIDEuMDY3OTIsLTExLjk5OTYzIDYuMTUxMzcsMCAxNC43MjY3OSwxMi41MTQ3NyAxNC43MjY3OSwyMS40OTE5MSAwLDYuNjA2NzQgLTEzLjQ0NDQsMjAuNTIyOCAtMTkuODI3MjQsMjAuNTIyOCAtMS41Mzc4NSwwIC01LjcwNDc2LC0yLjkwODcyIC05LjI1OTg1LC02LjQ2MzggeiBtIDg2LjM0ODk3LDE4LjU4MzQxIGMgMTMuNDEwNzQsLTE0LjYwMjYzIDEyLjEwMzc2LC0zNy4wOTggLTMuMDk4MjUsLTUzLjMyNjM0IC03Ljg1MDU3LC04LjM4MDYgLTI1LjI5Mjk4LC05LjgyNTUyIC0zMi40MzE4NSwtMi42ODY2NCAtNi41ODc2MSw2LjU4NzYxIC0xMy4xNjQ2NSwzMi40OTMwMyAtMTAuNzIxMjIsNDIuMjI4NDEgNS4yMTEyMiwyMC43NjMxOCAzMi40MDA0MSwyOC44NjY1MiA0Ni4yNTEzMiwxMy43ODQ1NyB6IG0gLTI3LjQ1NTY1LC0yMy42MTQ1MiBjIC01LjMwNjIzLC0zLjcxNjY0IC03LjEyOTQxLC04LjE0OTc0IC02Ljk3ODA2LC0xNi45Njc0NyAwLjE2OTM1LC05Ljg2MDMzIDAuNjg0MywtMTAuNzQ5ODEgMi45NjE0NSwtNS4xMTQxNSAzLjM0NTczLDguMjgwMzIgMTAuMzYyOTIsMTEuNDA3MzQgMTYuNTE4MTQsNy4zNjA5IDMuODE3NTMsLTIuNTA5NjMgMy42MzkyOSwtMy42OTU5NyAtMS4xMDEwNCwtNy4zMjkwNyAtNi4zMjE4OSwtNC44NDUyMyAtNy41NTUwOCwtMTEuNzAxOTEgLTIuMTA0NjUsLTExLjcwMTkxIDQuODczNjQsMCAyMi4zMDQwMiwxOS4wNjY2NiAyMi4zMDQwMiwyNC4zOTc3OCAwLDUuMjAzMTYgLTEyLjM3NzM5LDE0LjM4NTAzIC0xOS4zOTEzOSwxNC4zODUwMyAtMi43NjQwNSwwIC04LjI1NzksLTIuMjY0MDIgLTEyLjIwODQ3LC01LjAzMTExIHogbSAxODkuOTYyOTIsLTE0LjI4ODg3IDMzLjkzNDk1LC0xMi43MzY4MiAtMzYuMzU4ODgsLTAuMTMxMjUgYyAtMzIuNTM5MiwtMC4xMTczNiAtMzYuMzU0MjQsMC40NjMwNyAtMzYuMzE0NzUsNS41MjQ3NSAwLjA0MDEsNS4xMjc1NyAzLjMzMDczLDIwLjI4Mzk1IDQuMzcyNywyMC4xMzk2NyAwLjIzNzIyLC0wLjAzMjkgMTUuNzAxNzcsLTUuNzkxMjQgMzQuMzY1OTgsLTEyLjc5NjQ4IHogbSAtNDQzLjQ5MzQzLC0yLjI3OTMgMy40NjgyNSwtMTAuMjg3NjEgLTMwLjQ2Njg2LC0xLjAyNDA0IGMgLTE2Ljc1Njc0NCwtMC41NjMyMiAtMzAuNDYzNTg0LC0wLjEzMjEzIC0zMC40NTk1OCwwLjk1ODA0IDAuMDA1OCwxLjU5NTEzIDUyLjUwNjU3LDIyLjEwNzA3IDUzLjY2MTc0LDIwLjk2NTUyIDAuMTgwMzUsLTAuMTc4NCAxLjg4ODkyLC00Ljk1MzcyIDMuNzk2NDUsLTEwLjYxMTkxIHogbSAyMDguOTA5MiwtMzEuODg2OTUgYyA3LjE2NjY3LDEuMTQ2IDE1LjI0OTgxLDQuMDc5MjQgMTcuOTYyNTYsNi41MTgzNSA0LjIxMjc5LDMuNzg3ODMgNi4wNDUyOCwzLjUyOTY2IDEyLjU2MjA3LC0xLjc2OTg1IDQuMTk2NDMsLTMuNDEyNSA5LjY1MDI2LC02LjIwNDU3IDEyLjExOTYzLC02LjIwNDU3IDIuNDY5MzksMCA0LjQ4OTgyLC0wLjcxMzA4IDQuNDg5ODIsLTEuNTg0NjcgMCwtMy4wMDkxOCAtNDYuNTM5NTQsLTc5LjIxMjUyIC00OC4zMTQ0NywtNzkuMTA5NjEgLTIuMDg1LDAuMTIwODcyIC00OS43ODYwMyw4MC4wODc5OCAtNTEuMjU0NjQsODUuOTI0MzcgLTAuNjE2MzQsMi40NDk1MiAxLjMxODA0LDMuMzUzNzEgNS4wNzM2NCwyLjM3MTYgMy4zMzgzNiwtMC44NzMgNy45NTQxNiwwLjY4MzI2IDEwLjI1NzI3LDMuNDU4MzYgMy43MzU0LDQuNTAwODcgNS4yNjEwOCw0LjE0MjI5IDE0LjEzMDY4LC0zLjMyMDk3IDguNDI2NDcsLTcuMDkwNDEgMTEuOTMwOCwtOC4wNDg4IDIyLjk3MzQ0LC02LjI4MzAxIHoiDQogICAgICAgc3R5bGU9ImZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MSIgLz4NCiAgICA8cGF0aA0KICAgICAgIHN0eWxlPSJmaWxsOiM2Mzk4YWE7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiDQogICAgICAgZD0ibSAzMDkuNTQ1NzksMTQwLjg3OTIyIGMgLTAuNTAwNzUsLTAuMjMzMTEgLTEuMTE4MDQsLTAuNzY3OTkgLTIuNTI3OCwtMi4xOTAzNSAtMS45MTE4OCwtMS45Mjg5NyAtMi42NzE4OCwtMi40OTAxMyAtNC4yNjEwOCwtMy4xNDYyOCAtMi4wODc5MSwtMC44NjIwNCAtNC4zNTQ5LC0xLjA5NDIzIC02LjQ4MjMxLC0wLjY2MzkxIC0xLjg5ODA4LDAuMzgzOTMgLTIuNDI0MzUsMC40MjUyNyAtMy4yODI0MiwwLjI1NzggLTEuNDMyMjQsLTAuMjc5NTMgLTEuOTQxNTcsLTEuMTQ5MjkgLTEuNTM1ODMsLTIuNjIyNzIgMC41MDU3MywtMS44MzY1NyA0LjMzNjkzLC04Ljk0MjU1IDEyLjAwODk5LC0yMi4yNzM4NyAxNS41ODM3LC0yNy4wNzg5ODggMzYuNTM2MjQsLTYxLjIyMDk2OCAzOC44NTA1NiwtNjMuMzA2NjYyIDAuMjU2MzEsLTAuMjMwOTk0IDAuMjY1LC0wLjIzMDk5NCAwLjUyMjQ4LDAgMS4zNzc2OCwxLjIzNTk3NiA5LjQ3NjIsMTMuNzI1ODg5IDIwLjU0MDM2LDMxLjY3ODI5OCAxNC45NjY5NiwyNC4yODUwMDQgMjcuNDExMDIsNDUuNjQzNzE0IDI3LjQxMTAyLDQ3LjA0NzcwNCAwLDAuODU3MjkgLTEuMzE2MDgsMS4zNzIxNSAtNC4wODU5MSwxLjU5ODQ1IC0zLjQ0MjI2LDAuMjgxMjQgLTcuNDI0NzgsMi4zMDE4OCAtMTIuODY4ODcsNi41MjkzNiAtMi41ODcxMiwyLjAwODk4IC0zLjY5MTI2LDIuNzU5MzMgLTQuOTUwNjIsMy4zNjQzOCAtMS4wNDkyOCwwLjUwNDExIC0xLjEzNjkyLDAuNTI0MzcgLTIuMjY4NTQsMC41MjQzNyAtMS4xMTM2OCwwIC0xLjIyNjYxLC0wLjAyNDkgLTIuMDk2MjMsLTAuNDYxMjggLTAuNTEyMTMsLTAuMjU3MDIgLTEuNTA0NjksLTAuOTQ5MyAtMi4yNDE1NSwtMS41NjM0MiAtMi4xNzg0OCwtMS44MTU2MSAtNC43OTkxOCwtMy4xMzYxNCAtOS4wNzE5NywtNC41NzEyNCAtNS40Mjk5NywtMS44MjM3NiAtMTEuMjQ0NTQsLTIuOTE4NCAtMTYuMTk1NTEsLTMuMDQ4OTYgLTMuOTA5MzQsLTAuMTAzMDggLTUuNzEyMDEsMC4yNDc5OCAtOC42NzYwMiwxLjY4OTYzIC0yLjQxOTg4LDEuMTc2OTggLTMuNTg2MjEsMi4wMTMxMSAtOS4xMjQ3NSw2LjU0MTQ1IC01LjYzMzc2LDQuNjA2MTcgLTcuNjM0NDIsNS41NjIwNSAtOS42NjQsNC42MTcyNSB6IiAvPg0KICAgIDxwYXRoDQogICAgICAgc3R5bGU9ImZpbGw6IzYzOThhYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSINCiAgICAgICBkPSJtIDEyOC42Mzc4NiwxNzAuNzM5IGMgLTEwLjE1OSwtMi45NjA3IC00NS41MDMxNzEsLTE2LjkxOTYyIC01MC40NTA5MjQsLTE5LjkyNTIzIC0wLjY4MjkxNiwtMC40MTQ4NCAtMC43MzgwOTgsLTAuNDc3ODcgLTAuNTQzMjA3LC0wLjYyMDM4IDEuMTMxNTYzLC0wLjgyNzQxIDEyLjMzNzk4MywtMS4yMzkwMSAyNS4wMDQwMzEsLTAuOTE4MzYgNS4wNTEzMSwwLjEyNzg4IDM1LjUwMTMyLDEuMTMzMjMgMzUuNTUwOSwxLjE3Mzc3IDAuMDk5NywwLjA4MTUgLTYuNTIxNjQsMTkuMjg4OCAtNy4wMzA1MSwyMC4zOTQzMyAtMC4yMTI1MSwwLjQ2MTcgLTAuNjUwNjMsMC40NDM2NyAtMi41MzAyOSwtMC4xMDQxMyB6IiAvPg0KICAgIDxwYXRoDQogICAgICAgc3R5bGU9ImZpbGw6IzYzOThhYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSINCiAgICAgICBkPSJtIDU0My42OTQxMywxNzUuMzEwNTUgYyAtMS4zODYyLC0yLjcxMjg3IC0zLjg4NzY5LC0xNC45NzA2NyAtMy45NjA3OCwtMTkuNDA4NTggLTAuMDI4NCwtMS43MjQyNCAwLjE4NjY3LC0yLjQyNzQxIDAuOTYwNiwtMy4xNDA4IDEuNzczNzgsLTEuNjM1MDEgNS4zNzkzOCwtMi4yMjMyIDE1LjI5MDE3LC0yLjQ5NDM0IDUuMDAzNDcsLTAuMTM2ODkgMjguMTAxOSwtMC4xNTc5NiA0NC40MTEyNywtMC4wNDA1IGwgMTEuNDI4NTksMC4wODIzIC0yNy41MTc3LDEwLjMxNDI3IGMgLTI1LjA5MjkyLDkuNDA1NCAtMzkuNjg0NzMsMTQuODQxMjYgLTQwLjIyNDkxLDE0Ljk4NDkgLTAuMTM1MTcsMC4wMzYgLTAuMjY5ODEsLTAuMDY3NCAtMC4zODcyNCwtMC4yOTcyMyBsIDAsMCB6IiAvPg0KICAgIDxwYXRoDQogICAgICAgc3R5bGU9ImZpbGw6IzYzOThhYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSINCiAgICAgICBkPSJtIDE3OC4wODgzNSwzMTUuNTE0MzMgYyAwLC0wLjc3MDc4IDMuMjY4OSwtNi41MzMxIDExLjU1Mzk1LC0yMC4zNjY5OCAxOS44NTExOCwtMzMuMTQ2MzEgMjguOTI3MTUsLTQ1LjE2MDEyIDQwLjA3MjkyLC01My4wNDQyOSA5Ljk3MTI3LC03LjA1MzM3IDE1LjMwMjc5LC0xMS45Mjk0IDIxLjI0NTM5LC0xOS40MzAzMyBsIDMuNjY0MDksLTQuNjI0OTIgNC45Mzk5LDQuODU2NTIgYyA4LjY0Nzg0LDguNTAxODkgMTMuODYxMywxMC45NjY2OCAyMy4yOTcxNywxMS4wMTQzMiAxMS41NDA1OCwwLjA1ODMgMjQuMTc4NDksLTYuMzg4MSAyNC4xNzg0OSwtMTIuMzMyOTkgMCwtMS4zMzk4IDAuOTU0MDQsLTIuNzIyMzYgMS44Nzg1NywtMi43MjIzNiAwLjM5MTMyLDAgMi42MTY4NiwwLjY4MzY1IDQuOTQ1NjUsMS41MTkyMyA2LjA2OTkyLDIuMTc3OSA5LjYzMDI4LDIuOTY1NDggMTQuNjA5MTIsMy4yMzE2NSA0LjkzOTk4LDAuMjY0MDkgOC41NDg0OCwtMC4xNzA0IDEzLjM1ODE3LC0xLjYwODQxIDQuNzI1NjEsLTEuNDEyODggNy40NDcwOSwtMi44NTkwNSAxNS41OTgzMywtOC4yODg4MiA0LjEwNzYsLTIuNzM2MTggNy41OTk1NCwtNC45NzQ4NyA3Ljc1OTg4LC00Ljk3NDg3IDAuMTYwMzMsMCAzLjEyNTM0LDEuNzE4OTYgNi41ODg5LDMuODE5OTEgMy40NjM1NiwyLjEwMDk1IDcuNjI1NDIsNC4zODEzMyA5LjI0ODU5LDUuMDY3NTEgMTEuMDY4NjIsNC42NzkxOCAyMy4wMjQ0NSw0LjM3MzkgMzMuOTcxMjYsLTAuODY3NDEgMS45NTc5NSwtMC45Mzc0NyA2LjU2NzkzLC0zLjczMDc0IDEwLjI0NDQsLTYuMjA3MjcgMy42NzY0OCwtMi40NzY1MyA2LjczNjEzLC00LjQ0NTc2IDYuNzk5MjMsLTQuMzc2MDYgMC4wNjMxLDAuMDY5NyAxLjQ1NjA1LDIuOTIwOCAzLjA5NTQ0LDYuMzM1NzggMS42Mzk0LDMuNDE0OTggMy42OTg5NSw3LjI2NjcgNC41NzY3OSw4LjU1OTM3IDMuODAwMDEsNS41OTU3OCA4LjE3NTg4LDkuNzUxNDEgMTQuMDgzNDMsMTMuMzc0NjQgNi4wODEyMiwzLjcyOTc1IDkuODMyMDYsOC42ODY4IDEwLjIxODgyLDEzLjUwNTA3IDAuMzgzNjcsNC43Nzk2OCAtMS43MDMyOSw5LjAxOTM5IC03LjcyMTg5LDE1LjY4NzIxIC00LjY5NzQ3LDUuMjA0MTkgLTUuODczMyw3LjIzNTQgLTUuODYxMTMsMTAuMTI0OTEgMC4wMTIyLDIuODkyNjIgMS43MDEwMyw2LjIyODU0IDQuNjY5NjQsOS4yMjM3OSA0LjgwNTMzLDQuODQ4NDQgMTIuMzQ2MDUsNi4yODc3NyAyMy40MzUzNCw0LjQ3MzE5IDIuNDc0MDgsLTAuNDA0ODQgNS41OTQ3OSwtMC43Mzc1NyA2LjkzNDkxLC0wLjczOTM4IDQuMjg1NTEsLTAuMDA2IDYuOTAzMTksMi4wOTU5NSAxMS44OTI1MSw5LjU0ODU5IDMuNDQzNTEsNS4xNDM2NSAxMC45NzM5NiwxNy43NTUwOCAxMC45NzM5NiwxOC4zNzgzNiAwLDAuMzI0MDcgLTAuMzUxNDUsMC41NTIwOCAtMC44NTA5NywwLjU1MjA4IC0xLjA1MTA5LDAgLTUuNjIzMTQsLTEuMjQzOCAtOC45MzIxNCwtMi40Mjk5NCAtNC4zNDg1LC0xLjU1ODc1IC01Ny4yNzIzOCwtMjIuMDA1MjYgLTc0Ljc0Nzg2LC0yOC44Nzc5NSAtNDYuNjYzNSwtMTguMzUxNjIgLTYyLjAyODA1LC0yNC4yMTI0NiAtNjkuNTM2NTcsLTI2LjUyNDg5IC04LjExNDE3LC0yLjQ5ODk1IC0xMy42NDAyOSwtMy4wODUyMiAtMTguMTI2NjEsLTEuOTIzMDYgLTUuNTc5OTYsMS40NDU0NiAtODEuNzIwNjcsMzAuODY4ODggLTEyNi4xMzI0NSw0OC43NDE5NSAtMjEuOTMxMTksOC44MjYgLTI0LjY3NzQ5LDkuODc1NzcgLTI4Ljc4MTE2LDExLjAwMTU5IC0zLjI2MzAzLDAuODk1MjEgLTMuMTQ0MDcsMC44ODI5NCAtMy4xNDQwNywwLjMyNDI2IHoiIC8+DQogIDwvZz4NCjwvc3ZnPg==');
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 20px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='json-config'],
+.exampleblock[data-lang=json] > .content .title {
+ background-position: 16px 80%;
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjE2MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KIDx0aXRsZT5KU09OIGxvZ288L3RpdGxlPgogPGRlZnM+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXJHcmFkaWVudDgzODUiPgogICA8c3RvcCBvZmZzZXQ9IjAiLz4KICAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZiIgb2Zmc2V0PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhckdyYWRpZW50MzAwMiIgeDE9Ii01NTMuMjciIHgyPSItNjY2LjEyIiB5MT0iNTI1LjkxIiB5Mj0iNDEzLjA1IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC45OTg4NCAwIDAgLjk5ODcgNjg5LjAxIC0zODguODQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50ODM4NSIvPgogIDxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyR3JhZGllbnQzMDA1IiB4MT0iLTY2Ni4xMiIgeDI9Ii01NTMuMjciIHkxPSI0MTMuMDQiIHkyPSI1MjUuOTEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLjk5ODg0IDAgMCAuOTk4NyA2ODkuMDEgLTM4OC44NCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ4Mzg1Ii8+CiA8L2RlZnM+CiA8ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogIDxwYXRoIGQ9Im03OS44NjUgMTE5LjFjMzUuMzk4IDQ4LjI1NSA3MC4wNC0xMy40NjkgNjkuOTg5LTUwLjU4Ny0wLjA2MDItNDMuODg2LTQ0LjU0MS02OC40MTQtNzAuMDE4LTY4LjQxNC00MC44OTIgMC03OS44MzYgMzMuNzk2LTc5LjgzNiA4MC4wMzYgMCA1MS4zOTYgNDQuNjQgNzkuODY1IDc5LjgzNiA3OS44NjUtNy45NjQ1LTEuMTQ2OC0zNC41MDYtNi44MzQtMzQuODYzLTY3Ljk2Ny0wLjIzOTg3LTQxLjM0NyAxMy40ODgtNTcuODY2IDM0LjgwNS01MC41OTkgMC40Nzc0MyAwLjE3NzA3IDIzLjUxNCA5LjI2NDUgMjMuNTE0IDM4Ljk1MSAwIDI5LjU2LTIzLjQyNyAzOC43MTUtMjMuNDI3IDM4LjcxNXoiIGNvbG9yPSIjMDAwMDAwIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50MzAwNSkiLz4KICA8cGF0aCBkPSJtNzkuODIzIDQxLjQwMWMtMjMuMzktOC4wNjE5LTUyLjA0MyAxMS4yMTYtNTIuMDQzIDQ5LjgyOSAwIDYzLjA0OCA0Ni43MjEgNjguNzcgNTIuMzg0IDY4Ljc3IDQwLjg5MiAwIDc5LjgzNi0zMy43OTYgNzkuODM2LTgwLjAzNiAwLTUxLjM5Ni00NC42NC03OS44NjUtNzkuODM2LTc5Ljg2NSA5Ljc0ODEtMS4zNSA1Mi41NDEgMTAuNTUgNTIuNTQxIDY5LjAzNyAwIDM4LjE0MS0zMS45NTMgNTguOTA1LTUyLjczNSA1MC4wMzMtMC40Nzc0My0wLjE3NzA3LTIzLjUxNC05LjI2NDUtMjMuNTE0LTM4Ljk1MSAwLTI5LjU2IDIzLjM2Ny0zOC44MTggMjMuMzY3LTM4LjgxOHoiIGNvbG9yPSIjMDAwMDAwIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50MzAwMikiLz4KIDwvZz4KPC9zdmc+Cg==');
+ background-repeat: no-repeat;
+ background-size: 20px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='maven'],
+.exampleblock[data-lang=maven] > .content .title {
+ background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDYyIDEwNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmb250LXN0eWxlPSJvYmxpcXVlIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZm9udC13ZWlnaHQ9ImJvbGQiPjx0ZXh0IGZvbnQtc2l6ZT0iOTYiIHRyYW5zZm9ybT0ic2NhbGUoMC45NDMsMS4wNikiIHg9IjgyIiB5PSI3NiI+bTwvdGV4dD48dGV4dCBmb250LXNpemU9IjgwIiB3b3JkLXNwYWNpbmc9IjAiIHg9IjE3MyIgeT0iODAiPjx0c3BhbiBmaWxsPSIjZmY2ODA0Ij5hPC90c3Bhbj52ZW48L3RleHQ+PC9nPjwvc3ZnPg==);
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 40px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='java'],
+.exampleblock[data-lang=java] > .content .title {
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDUxMS45OTggNTExLjk5OCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTExLjk5OCA1MTEuOTk4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojREIzODBFOyIgZD0iTTI1My40NjQsOTQuODY5Yy0yMy42NTgsMTYuNjM5LTUwLjQ3MSwzNS40OTgtNjQuODM4LDY2LjY5OQ0KCQljLTI0Ljk1NCw1NC40MzUsNTEuMDYyLDExMy44MTIsNTQuMzExLDExNi4zMTNjMC43NTUsMC41ODEsMS42NTksMC44NzEsMi41NiwwLjg3MWMwLjk1NywwLDEuOTE1LTAuMzI3LDIuNjkzLTAuOTc5DQoJCWMxLjUwOS0xLjI2MiwxLjkzNy0zLjQwNiwxLjAzMS01LjE1MmMtMC4yNzUtMC41My0yNy41NjEtNTMuNTMtMjYuNTQ3LTkxLjU1MmMwLjM1OS0xMy4yNDMsMTguODkyLTI4LjI2NiwzOC41MTItNDQuMTcxDQoJCWMxNy45Ny0xNC41NjgsMzguMzQtMzEuMDc5LDUwLjI1OC01MC4zOTRjMjYuMTY0LTQyLjUxNi0yLjkxNi04NC4zMjItMy4yMTMtODQuNzRjLTEuMTU1LTEuNjIyLTMuMjg3LTIuMjA5LTUuMTEtMS40MQ0KCQljLTEuODIxLDAuODA0LTIuODMsMi43NzMtMi40MTQsNC43MmMwLjA1OSwwLjI3Nyw1LjcxNCwyNy45MjMtMTAuMDIyLDU2LjQwNkMyODQuMjAzLDczLjI1LDI2OS45NTksODMuMjY4LDI1My40NjQsOTQuODY5eiIvPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiNEQjM4MEU7IiBkPSJNMzUzLjEzNywxMTMuNjE3YzEuNjY5LTEuMjU3LDIuMTU5LTMuNTUsMS4xNS01LjM4Yy0xLjAxMS0xLjgzLTMuMjExLTIuNjM3LTUuMTY1LTEuODk1DQoJCWMtNC4wMTksMS41MjgtOTguNDE2LDM3LjkxNS05OC40MTYsODEuODhjMCwzMC4zMDcsMTIuOTQ2LDQ2LjMxNywyMi4zOTksNTguMDA5YzMuNzA4LDQuNTg2LDYuOTA5LDguNTQ2LDcuOTY0LDExLjkyNw0KCQljMi45Nyw5Ljc0My00LjA2NiwyNy4zNTMtNy4wMjUsMzMuMzE3Yy0wLjg1MywxLjcxNC0wLjQzNSwzLjc5MiwxLjAxNiw1LjA0NGMwLjc4NCwwLjY3NywxLjc2MywxLjAyMSwyLjc0MywxLjAyMQ0KCQljMC44MzQsMCwxLjY3Mi0wLjI0OCwyLjM5Ni0wLjc1MmMxLjYyMy0xLjEyOCwzOS42NjctMjguMDI2LDMyLjg0NC02MC40MzNjLTIuNTQyLTEyLjMxOC04LjU5NS0yMS4zMTgtMTMuOTM2LTI5LjI2DQoJCWMtOC4yNzQtMTIuMzA1LTE0LjI1LTIxLjE5My01LjE4NC0zNy42MDlDMzA0LjU0NSwxNTAuMzM4LDM1Mi42NSwxMTMuOTgxLDM1My4xMzcsMTEzLjYxN3oiLz4NCjwvZz4NCjxnPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiM3M0ExRkI7IiBkPSJNMTA3LjQxOCwyOTguMjM2Yy0xLjYxOCw0Ljg0NS0wLjg1NCw5LjY1MSwyLjIwNywxMy45MDNjMTAuMjMzLDE0LjIwNyw0Ni40OCwyMi4wMjksMTAyLjA2OCwyMi4wMjkNCgkJYzAuMDAzLDAsMC4wMDUsMCwwLjAwNywwYzcuNTMyLDAsMTUuNDg0LTAuMTQ4LDIzLjYyOS0wLjQ0Yzg4Ljg3NS0zLjE4MSwxMjEuODM5LTMwLjg2OSwxMjMuMTk5LTMyLjA0Ng0KCQljMS40ODItMS4yODMsMS44NzgtMy40MTksMC45NTctNS4xNDdjLTAuOTIyLTEuNzI3LTIuOTA5LTIuNTk1LTQuODA4LTIuMDcyYy0zMS4zMDEsOC41NDYtODkuNzQ4LDExLjU4LTEzMC4yODgsMTEuNTgNCgkJYy00NS4zNjMsMC02OC40NjUtMy4yNjgtNzQuMTIxLTUuNjgxYzIuOTAyLTMuOTg1LDIwLjgwMi0xMS4xMDEsNDIuOTgzLTE1LjQ2NGMyLjEyLTAuNDE2LDMuNTc3LTIuMzc0LDMuMzY3LTQuNTI0DQoJCXMtMi4wMTYtMy43OS00LjE3Ny0zLjc5QzE3OS40MzksMjc2LjU4NCwxMTQuMjM0LDI3Ny42MjgsMTA3LjQxOCwyOTguMjM2eiIvPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiM3M0ExRkI7IiBkPSJNNDA0LjgxMiwyNjkuNzE4Yy0xOC4zMzEsMC0zNS43MTQsOS4xODgtMzYuNDQ2LDkuNTc3Yy0xLjY5NSwwLjkwOC0yLjU1NSwyLjg1Mi0yLjA5LDQuNzINCgkJYzAuNDY3LDEuODY1LDIuMTQ0LDMuMTc2LDQuMDY3LDMuMTc4YzAuMzg5LDAsMzkuMTAyLDAuMzE3LDQyLjYwOCwyMi40MzZjMy4xMDYsMTkuMDgyLTM2LjYyOSw1MC01Mi4yMDIsNjAuMzA0DQoJCWMtMS42ODIsMS4xMTMtMi4zMzUsMy4yNjMtMS41NTQsNS4xMjNjMC42NjUsMS41ODMsMi4yMDYsMi41NzMsMy44NjgsMi41NzNjMC4yOSwwLDAuNTg0LTAuMDMsMC44NzYtMC4wOTINCgkJYzMuNjk2LTAuNzkxLDkwLjQwNi0xOS44OTksODEuMjM4LTcwLjM4NEM0MzkuNTg0LDI3Ni4yMTMsNDIwLjEzOCwyNjkuNzE4LDQwNC44MTIsMjY5LjcxOHoiLz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojNzNBMUZCOyIgZD0iTTM0NS4zNDcsMzYzLjc1NWMwLjMwMi0xLjYxNy0wLjM3MS0zLjI2Mi0xLjcxNy00LjIwN2wtMjAuNzkxLTE0LjU2Mw0KCQljLTEuMDE0LTAuNzEtMi4yOTUtMC45MzMtMy40ODUtMC42MThjLTAuMjE3LDAuMDU1LTIxLjk1OSw1Ljc3MS01My41MjUsOS4yNzZjLTEyLjUyOCwxLjQwNS0yNi41NiwyLjE0Ny00MC41ODIsMi4xNDcNCgkJYy0zMS41NTgsMC01Mi4xOTItMy43MDgtNTUuMTk3LTYuNDI4Yy0wLjM5OC0wLjc2NC0wLjI3Mi0xLjExMS0wLjIwMS0xLjMwNGMwLjU0Ni0xLjUxOCwzLjQ3Mi0zLjMyMiw1LjM1OC00LjAzNg0KCQljMi4wODMtMC43NzEsMy4yMDYtMy4wMzMsMi41NTgtNS4xNTdjLTAuNjQ2LTIuMTI3LTIuODM3LTMuMzc4LTQuOTk5LTIuODU5Yy0yMC44NTYsNS4wMzMtMzEuMDU0LDEyLjA3MS0zMC4zMTIsMjAuOTE4DQoJCWMxLjMxOCwxNS42ODYsMzcuNjUsMjMuNzM3LDY4LjM2NSwyNS44NjVjNC40MTcsMC4zMDIsOS4xOTQsMC40NTUsMTQuMTk1LDAuNDU1YzAuMDAzLDAsMC4wMDUsMCwwLjAwOCwwDQoJCWM1MS4wNzQsMCwxMTYuNTUtMTYuMDI1LDExNy4yMDQtMTYuMTg4QzM0My44MjUsMzY2LjY2NiwzNDUuMDQ0LDM2NS4zNzUsMzQ1LjM0NywzNjMuNzU1eiIvPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiM3M0ExRkI7IiBkPSJNMTg4LjYwMiwzOTcuNDE5YzEuNTc1LTEuMDI0LDIuMjczLTIuOTcxLDEuNzE0LTQuNzY0Yy0wLjU1Ny0xLjc5My0yLjIzNC0yLjk3MS00LjExOC0yLjk0Ng0KCQljLTIuNzk1LDAuMDc0LTI3LjM0OSwxLjE4Mi0yOS4wNjgsMTYuODE1Yy0wLjUyLDQuNjcyLDAuODE4LDguOTQxLDMuOTc5LDEyLjY4NmM4LjgxNiwxMC40NDgsMzIuNjE0LDE2LjY1OCw3Mi43NDEsMTguOTg0DQoJCWM0Ljc0NywwLjI4NSw5LjU2OSwwLjQyOCwxNC4zMzQsMC40MjhjNTEuMDE1LDAsODUuMzczLTE1Ljk3Myw4Ni44MTItMTYuNjUzYzEuMzk1LTAuNjYsMi4zMTUtMi4wMzEsMi4zOTctMy41NzENCgkJcy0wLjY4Ny0zLjAwMS0yLjAwMy0zLjgwNmwtMjYuMjc1LTE2LjA0Yy0wLjkxMi0wLjU1Ni0yLjAwMy0wLjc0LTMuMDQzLTAuNTI3Yy0wLjE2NiwwLjAzNS0xNi44NDksMy40OTUtNDIuMDI2LDYuOTEzDQoJCWMtNC43NjQsMC42NDgtMTAuNzMsMC45NzctMTcuNzMsMC45NzdjLTI1LjE1LDAtNTMuMTI0LTQuMTA5LTU4LjQ4OS02LjhDMTg3Ljc0OSwzOTguNjEzLDE4Ny44NDgsMzk3Ljk3NSwxODguNjAyLDM5Ny40MTl6Ii8+DQoJPHBhdGggc3R5bGU9ImZpbGw6IzczQTFGQjsiIGQ9Ik0yMjQuNDA4LDQ4Ni44NWMxMTYuODU0LTAuMDk5LDE3OS41NzEtMjAuODgsMTkxLjY1My0zMy45NTdjNC4yNzctNC42MjYsNC43MzktOS4wMDYsNC4zNzYtMTEuODY3DQoJCWMtMC44OTgtNy4wNC03LjMxMS0xMS4zNS04LjAzOC0xMS44MThjLTEuNzU0LTEuMTI4LTQuMTA4LTAuODMzLTUuNDc2LDAuNzQ1Yy0xLjM2NSwxLjU3OC0xLjM5NywzLjg4NC0wLjAyNyw1LjQ2MQ0KCQljMC43MzcsMC45NDgsMS4xNjMsMi41MzUtMC45OTIsNC42OTJjLTQuODMsNC41MTEtNTMuNTQ1LDE4LjIwNC0xMzQuNjU2LDIyLjMxOGMtMTEuMTExLDAuNTc3LTIyLjc2NSwwLjg3MS0zNC42MzYsMC44NzMNCgkJYy03Mi42MjMsMC0xMjUuNzcyLTkuOTQ4LTEzMi43NDktMTUuNzQ0YzIuNjg5LTMuODY0LDIxLjQ4OS0xMC4wMzcsNDEuNDgyLTEzLjUyOWMyLjI1My0wLjM5MywzLjc3NS0yLjUxNiwzLjQyNi00Ljc3Ng0KCQljLTAuMzQ5LTIuMjU5LTIuNDMyLTMuODE0LTQuNzA5LTMuNTE5Yy0wLjU2NCwwLjA3Ny0yLjQ3OCwwLjE5MS00LjY5NCwwLjMyN2MtMzIuOTg4LDIuMDE0LTcxLjEwOSw2LjUwMy03My4wOTgsMjMuNQ0KCQljLTAuNjA0LDUuMTc5LDAuOTM1LDkuODgxLDQuNTc2LDEzLjk3M2M4LjkwOSwxMC4wMSwzNC41MTYsMjMuMzE5LDE1My41NTgsMjMuMzE5QzIyNC40MDYsNDg2Ljg1LDIyNC40MDYsNDg2Ljg1LDIyNC40MDgsNDg2Ljg1eiINCgkJLz4NCgk8cGF0aCBzdHlsZT0iZmlsbDojNzNBMUZCOyIgZD0iTTQzOS4wMTMsNDU2LjU3OGMtMS42NTItMC43NjQtMy42MDQtMC4zNzgtNC44MzYsMC45NTJjLTAuMTcxLDAuMTg1LTE3Ljc0LDE4LjU1Ni03MC41NjQsMjkuMzQ0DQoJCWMtMjAuMjIzLDQuMDUyLTU4LjE4Myw2LjEwNy0xMTIuODI2LDYuMTA3Yy01NC43NDUsMC0xMDYuODM4LTIuMTU0LTEwNy4zNTctMi4xNzZjLTIuMTc2LTAuMTA2LTQuMDM3LDEuNDc2LTQuMzMzLDMuNjE4DQoJCWMtMC4yOTcsMi4xNCwxLjA4Myw0LjE1OCwzLjE4NCw0LjY1OGMwLjU0MiwwLjEyOCw1NS4xMzUsMTIuOTE4LDEyOS43NzksMTIuOTE4YzM1LjgwMSwwLDcwLjYzOS0yLjkwNywxMDMuNTQ4LTguNjQ1DQoJCWM2MS4zNjEtMTAuNzU3LDY1LjY1Ny00MS4xODMsNjUuODEtNDIuNDczQzQ0MS42MzIsNDU5LjA3OCw0NDAuNjYyLDQ1Ny4zNDIsNDM5LjAxMyw0NTYuNTc4eiIvPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=');
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 20px 12px;
+ padding-left: 2.5em;
+}
+
+
+.multi-language-selector .language-option[data-lang='groovy'],
+.exampleblock[data-lang=groovy] > .content .title {
+ background-image: url('data:image/svg+xml;base64,PHN2Zw0KICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIg0KICAgd2lkdGg9IjYxNC4wNjA4NSINCiAgIGhlaWdodD0iMzAzLjU5ODYiDQogICB2ZXJzaW9uPSIxLjEiPg0KICA8Zw0KICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzUuMzk2NTk5LC0zMC41NTgxOTYpIj4NCiAgICA8cGF0aA0KICAgICAgIGQ9Im0gMTU0Ljk3Njg3LDMzMi42OTE2MiBjIDAsLTAuODA1ODcgMTAuODMxMjMsLTE4LjYyMTcyIDI0LjA2OTQsLTM5LjU5MDc2IDEzLjIzODE5LC0yMC45NjkwNSAyMi42NjA1NywtMzguNjIwNjYgMjAuOTM4NjcsLTM5LjIyNTc3IC0xLjcyMTkxLC0wLjYwNTEgLTcuNjc5OTIsMC40ODU2NyAtMTMuMjQwMDIsMi40MjM5MyAtMTYuNzQ1MjQsNS44Mzc0MyAtMjAuMTg2MDUsNC4yOTAxNiAtMzIuNjkzMDgsLTE0LjcwMTU1IC0xMy41MzI2NSwtMjAuNTQ5MDYgLTE0LjAxNzI0LC0yMi42Njk4MyAtNi45NjE1OCwtMzAuNDY2MjQgNC42MDg3NiwtNS4wOTI1NiA0LjMzMTU5LC02LjI3OTY3IC0zLjIzMTksLTEzLjg0MzE2IC00LjU1MDA5LC00LjU1MDEgLTguMjcyODksLTkuNjQzMDkgLTguMjcyODksLTExLjMxNzc2IDAsLTIuODE2NzkgLTMwLjk5MTQ1LC0xNS41ODkzMyAtNzkuOTg5NDk2LC0zMi45NjYxNSAtMTEuMTA5NjYsLTMuOTM5OTcgLTIwLjE5OTM3NSwtNy44MjkyOCAtMjAuMTk5Mzc1LC04LjY0MjkxIDAsLTAuODEzNjYgMjMuNDcwNzM4LC0xLjAwNDc2IDUyLjE1NzE5MSwtMC40MjQ2OSBsIDUyLjE1NzIxLDEuMDU0NjYgNS4wOTEyNywtOC4wMzAwMSBjIDIxLjUxNjQ0LC0zMy45MzU5MiA1NC4wMDk1MiwtNjQuNTg4MjEyIDY4LjQ2NzA1LC02NC41ODgyMTIgMy4wMTA2LDAgOS4xMjE0MSwyLjg2OTE4IDEzLjU3OTUzLDYuMzc1OTQ1IDcuMjU5NDYsNS43MTAyODMgOC4yNTY1LDkuMjQ4NjMyIDkuNTQ5OTQsMzMuODkxOTY3IDAuNzk0MywxNS4xMzM4MiAyLjQyNDIyLDI4LjQ5NjAxIDMuNjIxOTgsMjkuNjkzNzkgMS4xOTc3NSwxLjE5Nzc2IDQuOTk3NjksLTAuMzc0MjUgOC40NDQzMSwtMy40OTMzOSA0LjQwMTQsLTMuOTgzMjMgOS4wMzQ4NCwtNS4wNjMxMyAxNS41Njc2MSwtMy42MjgzIDYuNzY3NTYsMS40ODY0MSAxMC42MjcxLDAuNDY4OTUgMTQuMTY5MzgsLTMuNzM1NDMgNS4zMTM2LC02LjMwNjY2IDMxLjkwNTk2LC00OC45MzcyMDEgMzEuOTA1OTYsLTUxLjE0ODc0NCAwLC0wLjc1MTU4OCA1LjI2NTA5LC05Ljc1NzMwNiAxMS43MDAyMywtMjAuMDEyNzAzIDYuNDM1MDksLTEwLjI1NTM5NyAxMy44NDY2NCwtMjIuMDgwNjMxIDE2LjQ3MDA3LC0yNi4yNzgyODMgNC42NjU1OCwtNy40NjUyMDEgNS4zOTY2LC02LjU4MTczNSAzMy40MjY5Miw0MC4zOTg3MzYgMjguOTQxMjEsNDguNTA3MTY0IDQ0LjUxNzY3LDY2LjQwNjU1NCA1Mi4zMTU3LDYwLjExNzYzNCA1LjQ0MiwtNC4zODg4OSAzNC4wMDA1NSwtNC42Mzc5NCA0MS45ODI0NiwtMC4zNjYxNCA0LjUzNjY1LDIuNDI3OTMgNy40MTkxNiwyLjM5NjEgOS45MjQ4NCwtMC4xMDk2MiA1LjIwMDA3LC01LjIwMDA2IDE3LjY0OTgyLC00LjI5NDM3IDIwLjkwNDEyLDEuNTIwNzggMi41NjM5Myw0LjU4MTQ2IDMuMjE3ODQsNC41ODE0NiA3LjAyMDE0LDAgMi4zMDYwNiwtMi43Nzg2NyA5LjEzNjE5LC01LjA1MjA4IDE1LjE3ODAzLC01LjA1MjA4IDguNTM4ODQsMCAxMS43OTMzNiwxLjc3MzY3IDE0LjYxNDAzLDcuOTY0MzcgbCAzLjYyODgxLDcuOTY0MzYgNTYuMDkyMDMsLTEuOTg1OCBjIDMwLjg1MDYyLC0xLjA5MjIyIDU2LjA5MjA0LC0xLjI4Njg4IDU2LjA5MjA0LC0wLjQzMjU1IDAsMC44NTQyNyAtMjIuOTA2MDgsMTAuMDcxOTUgLTUwLjkwMjQxLDIwLjQ4MzcxIC0yNy45OTYzMiwxMC40MTE3MiAtNTEuMzY3LDE5LjI0MzA1IC01MS45MzQ4NCwxOS42MjUxMiAtMC41Njc4NSwwLjM4MjA3IDAuNjk4NDcsOS40OTI3MyAyLjgxNDA1LDIwLjI0NTg4IDUuNTA0NTcsMjcuOTc5MTcgMS45MTQ1OCw0Ni42MjU4OSAtMTEuOTI2MjksNjEuOTQ2MDQgLTYuMjA5LDYuODcyNjMgLTE2LjI4MzM4LDE0LjE0Mzk1IC0yMi4zODc1MywxNi4xNTg0OSAtNi4xMDQxNSwyLjAxNDU0IC0xMS4wOTg0NCw0LjM4NjE0IC0xMS4wOTg0NCw1LjI3MDE5IDAsMC44ODQwNiA2LjUxNTI1LDExLjY3ODkzIDE0LjQ3ODM1LDIzLjk4ODU5IDcuOTYzMDksMTIuMzA5NjkgMTMuMjgyOCwyMi4zODEyNSAxMS44MjE1MiwyMi4zODEyNSAtMi4zODUwNCwwIC02MC40Njk4NywtMjIuNDQyMzggLTE1MC43ODg5OCwtNTguMjYwNyAtMTcuODA5LC03LjA2MjU4IC0zNC4wMjY4MywtMTIuODQxMDkgLTM2LjAzOTYxLC0xMi44NDEwOSAtMy43NTM2MywwIC0zNi4xNjY5LDEyLjI4NjYyIC0xMzEuMjI0MjMsNDkuNzQyMDYgLTU1LjEyNTI1LDIxLjcyMTAzIC01Ny4yOTIxNywyMi40NzM0OCAtNTcuMjkyMTcsMTkuODk0NTEgeiBtIDExMy4xMTY0OCwtNTEuMjUyNjUgYyAyOS4zMjk0OSwtMTEuMzk1MDYgNTguNDE2NTcsLTIyLjUzMDggNjQuNjM3OTgsLTI0Ljc0NjA3IDEwLjcwMDY4LC0zLjgxMDE5IDE0LjI3OTE4LC0yLjg1NDkzIDY2LjI1Mzk0LDE3LjY4NjM0IDMwLjIxODI1LDExLjk0Mjc0IDYwLjAzMjUyLDIzLjU3NTg3IDY2LjI1MzkyLDI1Ljg1MTM0IDYuMjIxNDEsMi4yNzU1MiAxOS4wNDMxNyw3LjIyMDU5IDI4LjQ5Mjc1LDEwLjk4OTA4IDEwLjc3NTAzLDQuMjk3MDQgMTYuMjgyNTEsNS4zMzE2NiAxNC43NzEwOCwyLjc3NDg0IC0xNi44ODM3LC0yOC41NjExMyAtMTcuMzk5OCwtMjkuMDM3MTYgLTI5LjEwMDgzLC0yNi44NDIwNSAtMTQuMTEzNjEsMi42NDc3MiAtMjIuODc4OTcsLTAuMDY4NSAtMjcuMzgzNjksLTguNDg1NTQgLTIuOTIxMTIsLTUuNDU4MTYgLTIuMDI5NDQsLTguMTI3NTkgNS4yNTQ0MiwtMTUuNzMwMzEgMTAuODQ4ODcsLTExLjMyMzc3IDkuMTQ0NTcsLTIxLjc0MTQ0IC00Ljg0NDI5LC0yOS42MTA5OSAtNS4zNjc2NCwtMy4wMTk1OSAtMTIuMTQwNTksLTEwLjQ4MzcyIC0xNS4wNTEwMiwtMTYuNTg2OTcgbCAtNS4yOTE2OSwtMTEuMDk2ODIgLTExLjM0NTUxLDcuNjk5MjggYyAtMTMuOTQ0NTgsOS40NjMwNCAtMzAuOTUwNjIsOS45NTA2MyAtNDUuMTQ3NjQsMS4yOTQ0OCBsIC0xMC40NjQ4OCwtNi4zODA2NSAtMTIuMTU4NDEsOC4yNjI4NCBjIC0xMi4xNzQ2Miw4LjI3Mzg2IC0yNi4xOTEwOCw5LjM0MjggLTQwLjQzNzUyLDMuMDgzOTIgLTMuOTI0OTgsLTEuNzI0MzkgLTUuNjU1ODMsLTEuMDU0MTUgLTUuNjU1ODMsMi4xOTAwOCAwLDIuNTcxMTggLTMuNzA0MjksNi4zNjI2NSAtOC4yMzE4MSw4LjQyNTUzIC0xMy41NzQyLDYuMTg0NzkgLTI2LjgyMTA3LDQuNTQyNDcgLTM1LjgwMjI5LC00LjQzODc1IGwgLTguMTg5NDQsLTguMTg5NDQgLTYuNjA5ODIsOC40MDMwMyBjIC0zLjYzNTM5LDQuNjIxNjYgLTEyLjA0OTUyLDExLjgzNjk4IC0xOC42OTgwNSwxNi4wMzM5OCAtOC4yMjk2NSw1LjE5NTE4IC0xOC40MTc0MSwxNy44NzE4MiAtMzEuOTE2NCwzOS43MTM2MSAtMTAuOTA1NDksMTcuNjQ1NDYgLTE5LjgyODE2LDMyLjk4MDQyIC0xOS44MjgxNiwzNC4wNzc3NiAwLDEuMDk3MyA4LjM2MjU1LC0xLjUyNzM2IDE4LjU4MzQyLC01LjgzMjU5IDEwLjIyMDg5LC00LjMwNTIxIDQyLjU4MDI4LC0xNy4xNTA4NyA3MS45MDk3NywtMjguNTQ1OTMgeiBtIDI0OC43NjcyOSwtMTIuMjU4NDYgYyAyMi4yNTU1NywtMTIuNTA4MzMgMjcuNDE0MjQsLTM1LjY0ODA4IDE3LjU3Njg1LC03OC44NDMxOCAtOC4yMjE0LC0zNi4wOTk2MSAtMTIuMzI1NSwtNDcuOTEzMjcgLTE3LjE5NDk0LC00OS40OTU5NyAtMy4zNjkwMiwtMS4wOTUwMyAtMy44ODY3NCwwLjEwNjk5IC0xLjk4ODU4LDQuNjE2MzUgMTIuMzE1MTYsMjkuMjU3NzEgMTIuOTk5NjMsNDMuOTQ2NjIgMi4yNDAyMiw0OC4wNzU0MSAtNy4zOTE1MSwyLjgzNjQyIC0xNS4yMzIzOSwtNy43OTA3NSAtMjEuMzk5MDIsLTI5LjAwMzI2IC00Ljc3NTEyLC0xNi40MjU4NyAtOS43Njg2MSwtMjMuODI4MzcgLTEzLjUzMzg3LC0yMC4wNjMxMSAtMC45MDE1NywwLjkwMTYgMC42Nzg0OCw2LjEyMTE3IDMuNTExMjQsMTEuNTk5MTMgMi44MzI3Myw1LjQ3NzkgNi43MTcyMSwyMS45NzQ1NSA4LjYzMjE3LDM2LjY1OTIgMS45MTQ5NywxNC42ODQ2MiA1LjYxMzg1LDMwLjA2MDczIDguMjE5NzMsMzQuMTY5MTIgNi43NzE5OCwxMC42NzY2MSAxNy41NTEyOCw4LjEwMzYgMjQuNTIzODIsLTUuODUzODQgNi44OTM3MywtMTMuNzk5NzUgNy42NzI4NCwtNC42MDc4MSAwLjk2OTMsMTEuNDM2MDIgLTYuOTYwNzQsMTYuNjU5MzcgLTI3LjYzNDQyLDIxLjY1NDgxIC01MS41ODQxOCwxMi40NjQ0MiAtMy44MzMzLC0xLjQ3MDk2IC01LjEzMDM5LDAuMDUxNSAtNS4xMzAzOSw2LjAyMDk3IDAsNC4zOTQzMSAtMi45MzYxOCwxMS43MjI0NSAtNi41MjQ4OCwxNi4yODQ3IGwgLTYuNTI0ODgsOC4yOTUwNiA4Ljk0ODgxLDEuNTExMjMgYyAxNS40NDk0NSwyLjYwOTA5IDM2LjYzMzI4LC0wLjc3NjQyIDQ5LjI1ODYsLTcuODcyMjUgeiBtIC0zMjAuMzY2NSwtMjcuNTM3MzMgYyA0Ni40NTk2NSwtMTMuMzU0NSA1NC43NjE4OCwtMjguOTMwOTMgMzkuMzI4ODUsLTczLjc4NzgyIC0zLjU4MTg1LC0xMC40MTA3OSAtNi41MTI0MywtMjEuNjA5NzEgLTYuNTEyNDMsLTI0Ljg4NjU0IDAsLTExLjE1NzEyIC01LjYxMTUyLC02LjAwMTYxIC05LjgxNzEzLDkuMDE5NDMgLTUuNTYyMDMsMTkuODY1NjEgLTIyLjI5MTE1LDM2Ljc1MDUzIC0zNi4zNDUxNiwzNi42ODM2NCAtMTIuMjA1NDcsLTAuMDU4MiAtMTYuMTgyNTEsLTIuMjgwMDggLTIxLjIyMzc4LC0xMS44NTc2OCAtOS4wNDc0OCwtMTcuMTg4ODIgMC44MTQ2OSwtNDMuNTY3OTcgMjUuOTY5NTQsLTY5LjQ2MjcyIDE4LjQyNDMxLC0xOC45NjYzMDQgMjguNDg4OTMsLTIwLjY4Mzk2NSAyOC40ODg5MywtNC44NjIwNSAwLDI0LjY3MzIgLTE3LjAxMTM0LDYwLjk5NDcgLTI1Ljk3MzA5LDU1LjQ1NjA0IC00LjM4MjA1LC0yLjcwODI2IC0zLjY3MTM4LC0xNC42Njc1MiAxLjQxNzIyLC0yMy44NTAwOSA0LjMyNzM1LC03LjgwODgyIDMuNDQ4MTQsLTE5LjcwNzcxIC0xLjQ1NjIsLTE5LjcwNzcxIC01LjY4Njg5LDAgLTE2Ljk0NTQ3LDIwLjcxMTk2IC0xOC40MzMxOCwzMy45MTA3NCAtMS4zMTUxNSwxMS42NjgyNiAtMC40OTI4NiwxNC41MDU0NSA1LjA2NjUyLDE3LjQ4MDcyIDE5LjQ4MjQ0LDEwLjQyNjcgNDUuMDA1MzEsLTIxLjM5NTQ1IDQ2LjI5MDgzLC01Ny43MTU4NCAwLjY3NTA0LC0xOS4wNzMxODEgLTMuMDE2NzYsLTI0LjQ0MTEwNSAtMTQuNzc5MDYsLTIxLjQ4ODk1MSAtMTcuMTE4NzksNC4yOTY1NDMgLTYzLjIzNDgzLDYzLjc4NjY0MSAtNjMuMjM0ODMsODEuNTczNDYxIDAsMTMuOTEyOCA2Ljk4NzM3LDIzLjY5NzI4IDE5LjI4ODI3LDI3LjAwOTYgMjAuOTE0MTksNS42MzE2MiA0MS4xMzUzOSwtNC4zNzM4OSA1NS40NjMzLC0yNy40NDMzOCBsIDYuMDIxNzUsLTkuNjk1NzEgMC4wMTMyLDEzLjE3MjIzIGMgMC4wMTYyLDE5LjA3MzggLTEyLjQyNjE5LDI5LjEyNzQgLTUxLjY5ODE3LDQxLjc2NzkzIC05Ljc3NjQ5LDMuMTQ2OCAtMTguMTgzMzIsNi4wNTQ0MSAtMTguNjgxOCw2LjQ2MTM3IC0xLjgyMDU2LDEuNDg2MzIgMTYuNjg3MzksMjcuNDc1NzEgMTkuNTY2NDQsMjcuNDc1NzEgMS42MzI2MiwwIDExLjE5MTE1LC0yLjM2MzU5IDIxLjI0MTIzLC01LjI1MjM4IHogTSA0NzYuNDExLDIxNy45NjMwMSBjIDQuNjYzNDcsLTUuMTUzMSA1LjQ4NTUxLC0xMC43NTEwMyA0LjQ4NTc5LC0zMC41NDgyMyAtMS4wODczOSwtMjEuNTMzMzEgLTIuMjc3NDYsLTI1LjMzODUxIC0xMC42NjE0MywtMzQuMDg5NDkgLTE1LjE0ODgyLC0xNS44MTE5NCAtMzMuODYxMjMsLTExLjc3ODI4IC0yMi45MDgxOSw0LjkzODE0IDUuODIyNTYsOC44ODYzNyAxMi45MjU0LDcuMzY4NjQgMTAuNDE2NDEsLTIuMjI1ODEgLTEuOTk4NjQsLTcuNjQyNzYgMS43Mjk5OCwtNy44NDM1OCA4LjIyODM5LC0wLjQ0MzIyIDEyLjE5MzAxLDEzLjg4NTM3IDkuMTE1MzQsMzMuMTI2OTggLTUuMjk4NiwzMy4xMjY5OCAtOS44NjcxNiwwIC0xMi45NDE5NSwtNC4yMzE3NiAtMTkuMzczNTMsLTI2LjY2MzE4IC0yLjkzMDU5LC0xMC4yMjA4NyAtNi40OTk2NCwtMTguNTgzNDMgLTcuOTMxMjcsLTE4LjU4MzQzIC00Ljc2ODk5LDAgLTYuODkyODcsNC4yMDg3OCAtMy45MjcyMSw3Ljc4MjQgMS42MTA4OCwxLjk0MTEgNi4wNzIxOCwxNS44OTEyNyA5LjkxNDA0LDMxLjAwMDQxIDkuNjY5MDMsMzguMDI1OTYgMjMuMTc2NjYsNTEuMDQxNDUgMzcuMDU1NiwzNS43MDU0MyB6IG0gLTE4My43NzEyNSwwLjYwMzk1IGMgMS45ODk3OCwtMS4zMzUgMi44OTk3NSwtNy42NDg5MyAyLjA3ODY1LC0xNC40MjMgLTEuMzI0NDksLTEwLjkyNzAyIC0yLjA2NjYyLC0xMS43MjQxIC03Ljk3MjcsLTguNTYzMjcgLTguNDg3MzMsNC41NDIyNyAtMTcuNjA4MzksLTQuMDYzNTEgLTIwLjcwMjIyLC0xOS41MzI2IC0yLjM0NzA3LC0xMS43MzUzOCAtMy4wNjUyNiwtMTEuNTA0ODkgMTQuMDI1NzYsLTQuNTAxNDkgMi4xNDI4OCwwLjg3ODA4IDcuNTk2NzEsLTIuMTA0MDIgMTIuMTE5NjMsLTYuNjI2OTQgOC4yNzQwOCwtOC4yNzQwOCAxMC45OTgwMiwtMTguMjEyOTkgNC45OTE1NiwtMTguMjEyOTkgLTEuNzc3NTQsMCAtMy4yMzE5LDEuNDU0MzYgLTMuMjMxOSwzLjIzMTkgMCw0LjY0OTIzIC04Ljg0MjMxLDMuOTg5ODIgLTEwLjgzNDY1LC0wLjgwNzk3IC0xLjE2MjI0LC0yLjc5ODc5IC0zLjYzODA3LC0xLjgwNTkxIC04LjA1OTE1LDMuMjMxOSAtMy41MDk4NSwzLjk5OTQ4IC03Ljc5NjczLDcuMjcxNzggLTkuNTI2NDEsNy4yNzE3OCAtMS43Mjk2OSwwIC00LjA2NTYsLTMuMjcyMyAtNS4xOTA4OCwtNy4yNzE3OCAtMS45NzE5NSwtNy4wMDg1NiAtMi4yMTM2NiwtNy4wNTI3NyAtNi42NzczNywtMS4yMjE2OSAtMy45MTA2LDUuMTA4NTQgLTMuOTQ1NTcsNi43MzU4MyAtMC4yMjQ2MSwxMC40NTY2MSAzLjk0MDYyLDMuOTQwNjQgMTEuNDI2MTUsMzAuODcxMDIgMTEuNDI2MTUsNDEuMTA3NDQgMCwxMi43Mjg2NyAxNy41MjkzMywyMi43MzgzMiAyNy43NzgzLDE1Ljg2MjEgeiBtIDU4Ljk0MzA5LC0xNi44NzUzMSBjIDEyLjE0NTY3LC0xMi4xNDU2NyAxNS43NDQ1MiwtMzAuMzUxNDMgOS4xMjk0MywtNDYuMTgzNTcgLTUuMTcwMTYsLTEyLjM3Mzk3IC0xNC4xNDQ2NiwtMTcuMDA1MTYgLTI2Ljc5ODc4LC0xMy44MjkxOCAtOS40MDI2MywyLjM1OTkxIC0yMy43MjMxMSwyOS43NzY1OSAtMjMuNzczODcsNDUuNTE1MzYgLTAuMDc5MiwyNC41MjkwMiAyMy4yNTA1MywzMi42OTAwNSA0MS40NDMyMiwxNC40OTczOSB6IG0gLTIyLjA4MzQxLC0xOS40MzQwNyBjIC0zLjU1NTEsLTMuNTU1MSAtNi40MTc1NSwtMTAuNDYzMjggLTYuMzYxMDIsLTE1LjM1MTUzIDAuMDkzNCwtOC4wNzk2NSAwLjQ5MzE1LC04LjM3MzUgNC4zOTYxOSwtMy4yMzE5IDQuODI0NjQsNi4zNTU2OSAxMy4zOTc5Nyw3LjQ1NjY2IDE2LjY4MjQxLDIuMTQyMzIgMS4xOTQzMiwtMS45MzI0MSAwLjU1Mjk1LC01LjEzMjAyIC0xLjQyNTIsLTcuMTEwMTcgLTUuMDgxMzIsLTUuMDgxMzIgLTQuNDY1NjEsLTExLjk5OTYzIDEuMDY3OTIsLTExLjk5OTYzIDYuMTUxMzcsMCAxNC43MjY3OSwxMi41MTQ3NyAxNC43MjY3OSwyMS40OTE5MSAwLDYuNjA2NzQgLTEzLjQ0NDQsMjAuNTIyOCAtMTkuODI3MjQsMjAuNTIyOCAtMS41Mzc4NSwwIC01LjcwNDc2LC0yLjkwODcyIC05LjI1OTg1LC02LjQ2MzggeiBtIDg2LjM0ODk3LDE4LjU4MzQxIGMgMTMuNDEwNzQsLTE0LjYwMjYzIDEyLjEwMzc2LC0zNy4wOTggLTMuMDk4MjUsLTUzLjMyNjM0IC03Ljg1MDU3LC04LjM4MDYgLTI1LjI5Mjk4LC05LjgyNTUyIC0zMi40MzE4NSwtMi42ODY2NCAtNi41ODc2MSw2LjU4NzYxIC0xMy4xNjQ2NSwzMi40OTMwMyAtMTAuNzIxMjIsNDIuMjI4NDEgNS4yMTEyMiwyMC43NjMxOCAzMi40MDA0MSwyOC44NjY1MiA0Ni4yNTEzMiwxMy43ODQ1NyB6IG0gLTI3LjQ1NTY1LC0yMy42MTQ1MiBjIC01LjMwNjIzLC0zLjcxNjY0IC03LjEyOTQxLC04LjE0OTc0IC02Ljk3ODA2LC0xNi45Njc0NyAwLjE2OTM1LC05Ljg2MDMzIDAuNjg0MywtMTAuNzQ5ODEgMi45NjE0NSwtNS4xMTQxNSAzLjM0NTczLDguMjgwMzIgMTAuMzYyOTIsMTEuNDA3MzQgMTYuNTE4MTQsNy4zNjA5IDMuODE3NTMsLTIuNTA5NjMgMy42MzkyOSwtMy42OTU5NyAtMS4xMDEwNCwtNy4zMjkwNyAtNi4zMjE4OSwtNC44NDUyMyAtNy41NTUwOCwtMTEuNzAxOTEgLTIuMTA0NjUsLTExLjcwMTkxIDQuODczNjQsMCAyMi4zMDQwMiwxOS4wNjY2NiAyMi4zMDQwMiwyNC4zOTc3OCAwLDUuMjAzMTYgLTEyLjM3NzM5LDE0LjM4NTAzIC0xOS4zOTEzOSwxNC4zODUwMyAtMi43NjQwNSwwIC04LjI1NzksLTIuMjY0MDIgLTEyLjIwODQ3LC01LjAzMTExIHogbSAxODkuOTYyOTIsLTE0LjI4ODg3IDMzLjkzNDk1LC0xMi43MzY4MiAtMzYuMzU4ODgsLTAuMTMxMjUgYyAtMzIuNTM5MiwtMC4xMTczNiAtMzYuMzU0MjQsMC40NjMwNyAtMzYuMzE0NzUsNS41MjQ3NSAwLjA0MDEsNS4xMjc1NyAzLjMzMDczLDIwLjI4Mzk1IDQuMzcyNywyMC4xMzk2NyAwLjIzNzIyLC0wLjAzMjkgMTUuNzAxNzcsLTUuNzkxMjQgMzQuMzY1OTgsLTEyLjc5NjQ4IHogbSAtNDQzLjQ5MzQzLC0yLjI3OTMgMy40NjgyNSwtMTAuMjg3NjEgLTMwLjQ2Njg2LC0xLjAyNDA0IGMgLTE2Ljc1Njc0NCwtMC41NjMyMiAtMzAuNDYzNTg0LC0wLjEzMjEzIC0zMC40NTk1OCwwLjk1ODA0IDAuMDA1OCwxLjU5NTEzIDUyLjUwNjU3LDIyLjEwNzA3IDUzLjY2MTc0LDIwLjk2NTUyIDAuMTgwMzUsLTAuMTc4NCAxLjg4ODkyLC00Ljk1MzcyIDMuNzk2NDUsLTEwLjYxMTkxIHogbSAyMDguOTA5MiwtMzEuODg2OTUgYyA3LjE2NjY3LDEuMTQ2IDE1LjI0OTgxLDQuMDc5MjQgMTcuOTYyNTYsNi41MTgzNSA0LjIxMjc5LDMuNzg3ODMgNi4wNDUyOCwzLjUyOTY2IDEyLjU2MjA3LC0xLjc2OTg1IDQuMTk2NDMsLTMuNDEyNSA5LjY1MDI2LC02LjIwNDU3IDEyLjExOTYzLC02LjIwNDU3IDIuNDY5MzksMCA0LjQ4OTgyLC0wLjcxMzA4IDQuNDg5ODIsLTEuNTg0NjcgMCwtMy4wMDkxOCAtNDYuNTM5NTQsLTc5LjIxMjUyIC00OC4zMTQ0NywtNzkuMTA5NjEgLTIuMDg1LDAuMTIwODcyIC00OS43ODYwMyw4MC4wODc5OCAtNTEuMjU0NjQsODUuOTI0MzcgLTAuNjE2MzQsMi40NDk1MiAxLjMxODA0LDMuMzUzNzEgNS4wNzM2NCwyLjM3MTYgMy4zMzgzNiwtMC44NzMgNy45NTQxNiwwLjY4MzI2IDEwLjI1NzI3LDMuNDU4MzYgMy43MzU0LDQuNTAwODcgNS4yNjEwOCw0LjE0MjI5IDE0LjEzMDY4LC0zLjMyMDk3IDguNDI2NDcsLTcuMDkwNDEgMTEuOTMwOCwtOC4wNDg4IDIyLjk3MzQ0LC02LjI4MzAxIHoiDQogICAgICAgc3R5bGU9ImZpbGw6IzMzMzMzMztmaWxsLW9wYWNpdHk6MSIgLz4NCiAgICA8cGF0aA0KICAgICAgIHN0eWxlPSJmaWxsOiM2Mzk4YWE7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiDQogICAgICAgZD0ibSAzMDkuNTQ1NzksMTQwLjg3OTIyIGMgLTAuNTAwNzUsLTAuMjMzMTEgLTEuMTE4MDQsLTAuNzY3OTkgLTIuNTI3OCwtMi4xOTAzNSAtMS45MTE4OCwtMS45Mjg5NyAtMi42NzE4OCwtMi40OTAxMyAtNC4yNjEwOCwtMy4xNDYyOCAtMi4wODc5MSwtMC44NjIwNCAtNC4zNTQ5LC0xLjA5NDIzIC02LjQ4MjMxLC0wLjY2MzkxIC0xLjg5ODA4LDAuMzgzOTMgLTIuNDI0MzUsMC40MjUyNyAtMy4yODI0MiwwLjI1NzggLTEuNDMyMjQsLTAuMjc5NTMgLTEuOTQxNTcsLTEuMTQ5MjkgLTEuNTM1ODMsLTIuNjIyNzIgMC41MDU3MywtMS44MzY1NyA0LjMzNjkzLC04Ljk0MjU1IDEyLjAwODk5LC0yMi4yNzM4NyAxNS41ODM3LC0yNy4wNzg5ODggMzYuNTM2MjQsLTYxLjIyMDk2OCAzOC44NTA1NiwtNjMuMzA2NjYyIDAuMjU2MzEsLTAuMjMwOTk0IDAuMjY1LC0wLjIzMDk5NCAwLjUyMjQ4LDAgMS4zNzc2OCwxLjIzNTk3NiA5LjQ3NjIsMTMuNzI1ODg5IDIwLjU0MDM2LDMxLjY3ODI5OCAxNC45NjY5NiwyNC4yODUwMDQgMjcuNDExMDIsNDUuNjQzNzE0IDI3LjQxMTAyLDQ3LjA0NzcwNCAwLDAuODU3MjkgLTEuMzE2MDgsMS4zNzIxNSAtNC4wODU5MSwxLjU5ODQ1IC0zLjQ0MjI2LDAuMjgxMjQgLTcuNDI0NzgsMi4zMDE4OCAtMTIuODY4ODcsNi41MjkzNiAtMi41ODcxMiwyLjAwODk4IC0zLjY5MTI2LDIuNzU5MzMgLTQuOTUwNjIsMy4zNjQzOCAtMS4wNDkyOCwwLjUwNDExIC0xLjEzNjkyLDAuNTI0MzcgLTIuMjY4NTQsMC41MjQzNyAtMS4xMTM2OCwwIC0xLjIyNjYxLC0wLjAyNDkgLTIuMDk2MjMsLTAuNDYxMjggLTAuNTEyMTMsLTAuMjU3MDIgLTEuNTA0NjksLTAuOTQ5MyAtMi4yNDE1NSwtMS41NjM0MiAtMi4xNzg0OCwtMS44MTU2MSAtNC43OTkxOCwtMy4xMzYxNCAtOS4wNzE5NywtNC41NzEyNCAtNS40Mjk5NywtMS44MjM3NiAtMTEuMjQ0NTQsLTIuOTE4NCAtMTYuMTk1NTEsLTMuMDQ4OTYgLTMuOTA5MzQsLTAuMTAzMDggLTUuNzEyMDEsMC4yNDc5OCAtOC42NzYwMiwxLjY4OTYzIC0yLjQxOTg4LDEuMTc2OTggLTMuNTg2MjEsMi4wMTMxMSAtOS4xMjQ3NSw2LjU0MTQ1IC01LjYzMzc2LDQuNjA2MTcgLTcuNjM0NDIsNS41NjIwNSAtOS42NjQsNC42MTcyNSB6IiAvPg0KICAgIDxwYXRoDQogICAgICAgc3R5bGU9ImZpbGw6IzYzOThhYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSINCiAgICAgICBkPSJtIDEyOC42Mzc4NiwxNzAuNzM5IGMgLTEwLjE1OSwtMi45NjA3IC00NS41MDMxNzEsLTE2LjkxOTYyIC01MC40NTA5MjQsLTE5LjkyNTIzIC0wLjY4MjkxNiwtMC40MTQ4NCAtMC43MzgwOTgsLTAuNDc3ODcgLTAuNTQzMjA3LC0wLjYyMDM4IDEuMTMxNTYzLC0wLjgyNzQxIDEyLjMzNzk4MywtMS4yMzkwMSAyNS4wMDQwMzEsLTAuOTE4MzYgNS4wNTEzMSwwLjEyNzg4IDM1LjUwMTMyLDEuMTMzMjMgMzUuNTUwOSwxLjE3Mzc3IDAuMDk5NywwLjA4MTUgLTYuNTIxNjQsMTkuMjg4OCAtNy4wMzA1MSwyMC4zOTQzMyAtMC4yMTI1MSwwLjQ2MTcgLTAuNjUwNjMsMC40NDM2NyAtMi41MzAyOSwtMC4xMDQxMyB6IiAvPg0KICAgIDxwYXRoDQogICAgICAgc3R5bGU9ImZpbGw6IzYzOThhYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSINCiAgICAgICBkPSJtIDU0My42OTQxMywxNzUuMzEwNTUgYyAtMS4zODYyLC0yLjcxMjg3IC0zLjg4NzY5LC0xNC45NzA2NyAtMy45NjA3OCwtMTkuNDA4NTggLTAuMDI4NCwtMS43MjQyNCAwLjE4NjY3LC0yLjQyNzQxIDAuOTYwNiwtMy4xNDA4IDEuNzczNzgsLTEuNjM1MDEgNS4zNzkzOCwtMi4yMjMyIDE1LjI5MDE3LC0yLjQ5NDM0IDUuMDAzNDcsLTAuMTM2ODkgMjguMTAxOSwtMC4xNTc5NiA0NC40MTEyNywtMC4wNDA1IGwgMTEuNDI4NTksMC4wODIzIC0yNy41MTc3LDEwLjMxNDI3IGMgLTI1LjA5MjkyLDkuNDA1NCAtMzkuNjg0NzMsMTQuODQxMjYgLTQwLjIyNDkxLDE0Ljk4NDkgLTAuMTM1MTcsMC4wMzYgLTAuMjY5ODEsLTAuMDY3NCAtMC4zODcyNCwtMC4yOTcyMyBsIDAsMCB6IiAvPg0KICAgIDxwYXRoDQogICAgICAgc3R5bGU9ImZpbGw6IzYzOThhYTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSINCiAgICAgICBkPSJtIDE3OC4wODgzNSwzMTUuNTE0MzMgYyAwLC0wLjc3MDc4IDMuMjY4OSwtNi41MzMxIDExLjU1Mzk1LC0yMC4zNjY5OCAxOS44NTExOCwtMzMuMTQ2MzEgMjguOTI3MTUsLTQ1LjE2MDEyIDQwLjA3MjkyLC01My4wNDQyOSA5Ljk3MTI3LC03LjA1MzM3IDE1LjMwMjc5LC0xMS45Mjk0IDIxLjI0NTM5LC0xOS40MzAzMyBsIDMuNjY0MDksLTQuNjI0OTIgNC45Mzk5LDQuODU2NTIgYyA4LjY0Nzg0LDguNTAxODkgMTMuODYxMywxMC45NjY2OCAyMy4yOTcxNywxMS4wMTQzMiAxMS41NDA1OCwwLjA1ODMgMjQuMTc4NDksLTYuMzg4MSAyNC4xNzg0OSwtMTIuMzMyOTkgMCwtMS4zMzk4IDAuOTU0MDQsLTIuNzIyMzYgMS44Nzg1NywtMi43MjIzNiAwLjM5MTMyLDAgMi42MTY4NiwwLjY4MzY1IDQuOTQ1NjUsMS41MTkyMyA2LjA2OTkyLDIuMTc3OSA5LjYzMDI4LDIuOTY1NDggMTQuNjA5MTIsMy4yMzE2NSA0LjkzOTk4LDAuMjY0MDkgOC41NDg0OCwtMC4xNzA0IDEzLjM1ODE3LC0xLjYwODQxIDQuNzI1NjEsLTEuNDEyODggNy40NDcwOSwtMi44NTkwNSAxNS41OTgzMywtOC4yODg4MiA0LjEwNzYsLTIuNzM2MTggNy41OTk1NCwtNC45NzQ4NyA3Ljc1OTg4LC00Ljk3NDg3IDAuMTYwMzMsMCAzLjEyNTM0LDEuNzE4OTYgNi41ODg5LDMuODE5OTEgMy40NjM1NiwyLjEwMDk1IDcuNjI1NDIsNC4zODEzMyA5LjI0ODU5LDUuMDY3NTEgMTEuMDY4NjIsNC42NzkxOCAyMy4wMjQ0NSw0LjM3MzkgMzMuOTcxMjYsLTAuODY3NDEgMS45NTc5NSwtMC45Mzc0NyA2LjU2NzkzLC0zLjczMDc0IDEwLjI0NDQsLTYuMjA3MjcgMy42NzY0OCwtMi40NzY1MyA2LjczNjEzLC00LjQ0NTc2IDYuNzk5MjMsLTQuMzc2MDYgMC4wNjMxLDAuMDY5NyAxLjQ1NjA1LDIuOTIwOCAzLjA5NTQ0LDYuMzM1NzggMS42Mzk0LDMuNDE0OTggMy42OTg5NSw3LjI2NjcgNC41NzY3OSw4LjU1OTM3IDMuODAwMDEsNS41OTU3OCA4LjE3NTg4LDkuNzUxNDEgMTQuMDgzNDMsMTMuMzc0NjQgNi4wODEyMiwzLjcyOTc1IDkuODMyMDYsOC42ODY4IDEwLjIxODgyLDEzLjUwNTA3IDAuMzgzNjcsNC43Nzk2OCAtMS43MDMyOSw5LjAxOTM5IC03LjcyMTg5LDE1LjY4NzIxIC00LjY5NzQ3LDUuMjA0MTkgLTUuODczMyw3LjIzNTQgLTUuODYxMTMsMTAuMTI0OTEgMC4wMTIyLDIuODkyNjIgMS43MDEwMyw2LjIyODU0IDQuNjY5NjQsOS4yMjM3OSA0LjgwNTMzLDQuODQ4NDQgMTIuMzQ2MDUsNi4yODc3NyAyMy40MzUzNCw0LjQ3MzE5IDIuNDc0MDgsLTAuNDA0ODQgNS41OTQ3OSwtMC43Mzc1NyA2LjkzNDkxLC0wLjczOTM4IDQuMjg1NTEsLTAuMDA2IDYuOTAzMTksMi4wOTU5NSAxMS44OTI1MSw5LjU0ODU5IDMuNDQzNTEsNS4xNDM2NSAxMC45NzM5NiwxNy43NTUwOCAxMC45NzM5NiwxOC4zNzgzNiAwLDAuMzI0MDcgLTAuMzUxNDUsMC41NTIwOCAtMC44NTA5NywwLjU1MjA4IC0xLjA1MTA5LDAgLTUuNjIzMTQsLTEuMjQzOCAtOC45MzIxNCwtMi40Mjk5NCAtNC4zNDg1LC0xLjU1ODc1IC01Ny4yNzIzOCwtMjIuMDA1MjYgLTc0Ljc0Nzg2LC0yOC44Nzc5NSAtNDYuNjYzNSwtMTguMzUxNjIgLTYyLjAyODA1LC0yNC4yMTI0NiAtNjkuNTM2NTcsLTI2LjUyNDg5IC04LjExNDE3LC0yLjQ5ODk1IC0xMy42NDAyOSwtMy4wODUyMiAtMTguMTI2NjEsLTEuOTIzMDYgLTUuNTc5OTYsMS40NDU0NiAtODEuNzIwNjcsMzAuODY4ODggLTEyNi4xMzI0NSw0OC43NDE5NSAtMjEuOTMxMTksOC44MjYgLTI0LjY3NzQ5LDkuODc1NzcgLTI4Ljc4MTE2LDExLjAwMTU5IC0zLjI2MzAzLDAuODk1MjEgLTMuMTQ0MDcsMC44ODI5NCAtMy4xNDQwNywwLjMyNDI2IHoiIC8+DQogIDwvZz4NCjwvc3ZnPg==');
+ background-position: 16px 80%;
+ background-repeat: no-repeat;
+ background-size: 20px 12px;
+ padding-left: 2.5em;
+}
+
+.multi-language-selector .language-option[data-lang='kotlin'],
+.exampleblock[data-lang=kotlin] > .content .title {
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA2MCA2MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNjAgNjA7Ij4NCjxnPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iWE1MSURfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMTUuOTU5NCIgeTE9Ii0xMy4wMTQzIiB4Mj0iNDQuMzA2OCIgeTI9IjE1LjMzMzIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA2MSkiPg0KCQk8c3RvcCAgb2Zmc2V0PSI5LjY3NzAwMGUtMDIiIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDk1RDUiLz4NCgkJPHN0b3AgIG9mZnNldD0iMC4zMDA3IiBzdHlsZT0ic3RvcC1jb2xvcjojMjM4QUQ5Ii8+DQoJCTxzdG9wICBvZmZzZXQ9IjAuNjIxMSIgc3R5bGU9InN0b3AtY29sb3I6IzU1N0JERSIvPg0KCQk8c3RvcCAgb2Zmc2V0PSIwLjg2NDMiIHN0eWxlPSJzdG9wLWNvbG9yOiM3NDcyRTIiLz4NCgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzgwNkVFMyIvPg0KCTwvbGluZWFyR3JhZGllbnQ+DQoJPHBvbHlnb24gaWQ9IlhNTElEXzJfIiBzdHlsZT0iZmlsbDp1cmwoI1hNTElEXzNfKTsiIHBvaW50cz0iMCw2MCAzMC4xLDI5LjkgNjAsNjAgCSIvPg0KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNC4yMDkyIiB5MT0iNDguOTQwOSIgeDI9IjIwLjY3MzQiIHkyPSI2NS40MDUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA2MSkiPg0KCQk8c3RvcCAgb2Zmc2V0PSIwLjExODMiIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDk1RDUiLz4NCgkJPHN0b3AgIG9mZnNldD0iMC40MTc4IiBzdHlsZT0ic3RvcC1jb2xvcjojM0M4M0RDIi8+DQoJCTxzdG9wICBvZmZzZXQ9IjAuNjk2MiIgc3R5bGU9InN0b3AtY29sb3I6IzZENzRFMSIvPg0KCQk8c3RvcCAgb2Zmc2V0PSIwLjgzMzMiIHN0eWxlPSJzdG9wLWNvbG9yOiM4MDZFRTMiLz4NCgk8L2xpbmVhckdyYWRpZW50Pg0KCTxwb2x5Z29uIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfMV8pOyIgcG9pbnRzPSIwLDAgMzAuMSwwIDAsMzIuNSAJIi8+DQogICAgPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8yXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItMTAuMTAxNyIgeTE9IjUuODM2MiIgeDI9IjQ1LjczMTUiIHkyPSI2MS42Njk0IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNjEpIj4NCgkJPHN0b3AgIG9mZnNldD0iMC4xMDc1IiBzdHlsZT0ic3RvcC1jb2xvcjojQzc1N0JDIi8+DQoJCTxzdG9wICBvZmZzZXQ9IjAuMjEzOCIgc3R5bGU9InN0b3AtY29sb3I6I0QwNjA5QSIvPg0KCQk8c3RvcCAgb2Zmc2V0PSIwLjQyNTQiIHN0eWxlPSJzdG9wLWNvbG9yOiNFMTcyNUMiLz4NCgkJPHN0b3AgIG9mZnNldD0iMC42MDQ4IiBzdHlsZT0ic3RvcC1jb2xvcjojRUU3RTJGIi8+DQoJCTxzdG9wICBvZmZzZXQ9IjAuNzQzIiBzdHlsZT0ic3RvcC1jb2xvcjojRjU4NjEzIi8+DQoJCTxzdG9wICBvZmZzZXQ9IjAuODIzMiIgc3R5bGU9InN0b3AtY29sb3I6I0Y4ODkwOSIvPg0KCTwvbGluZWFyR3JhZGllbnQ+DQoJPHBvbHlnb24gc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8yXyk7IiBwb2ludHM9IjMwLjEsMCAwLDMxLjcgMCw2MCAzMC4xLDI5LjkgNjAsMCAJIi8+DQo8L2c+DQo8L3N2Zz4=');
+ background-position: 17px 80%;
+ background-repeat: no-repeat;
+ background-size: 11px 11px;
+ padding-left: 2.3em;
+}
+
+.multi-language-selector {
+ display: block;
+}
+
+.multi-language-selector .language-option[data-lang='yaml'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='toml'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='hocon'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='properties'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='groovy-config'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='json-config'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='java'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='maven'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+.multi-language-selector .language-option[data-lang='gradle'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='gradle-groovy'] {
+ background-position: 30px center;
+ padding-left: 54px;
+}
+
+.multi-language-selector .language-option[data-lang='gradle-kotlin'] {
+ background-position: 30px center;
+ padding-left: 56px;
+}
+
+.multi-language-selector .language-option[data-lang='groovy'] {
+ background-position: 20px center;
+ padding-left: 32px;
+}
+
+.multi-language-selector .language-option[data-lang='kotlin'] {
+ background-position: 30px center;
+ padding-left: 27px;
+}
+
+.multi-language-selector .language-option {
+ background-color: white;
+ border: 1px solid #f7f7f8;
+ border-radius: 4px 4px 0 0;
+ cursor: pointer;
+ display: inline-block;
+ font-weight: normal;
+ font-family: 'Lato', Arial, sans-serif;
+ margin: 0;
+ padding: 4px 20px;
+ min-width: 130px;
+ max-width: 320px;
+ text-align: center;
+ filter: grayscale(1);
+ -webkit-filter: grayscale(1);
+ opacity: 0.7;
+}
+
+.multi-language-selector .language-option.selected {
+ background-color: #f7f7f8;
+ color: #000000;
+ font-weight: bold;
+ filter: none;
+ -webkit-filter: none;
+ opacity: 1;
+}
+
+.hidden {
+ display: none;
+}
+
+.multi-language-sample {
+ border-radius: 0 0 4px 4px;
+}
diff --git a/3.9.1/css/pdf.css b/3.9.1/css/pdf.css
new file mode 100644
index 000000000..cd4700d87
--- /dev/null
+++ b/3.9.1/css/pdf.css
@@ -0,0 +1,160 @@
+@import "custom-pdf.css";
+
+/* page layout and page numbering */
+@page {
+ size: a4;
+ font-family:Arial;
+}
+
+@page :left {
+ @bottom-left {
+ content: counter(page);
+ vertical-align: middle;
+ margin: 0.8em 0;
+ font-size: 12pt;
+ }
+}
+
+@page :right {
+ @bottom-right {
+ content: counter(page);
+ vertical-align: middle;
+ margin: 0.8em 0;
+ font-size: 12pt;
+ }
+}
+
+.body {
+ margin: 0;
+ padding: 0;
+ font-size: 12pt;
+ background-color: white;
+}
+
+#navigation {
+ display:none;
+}
+
+#main {
+ margin: 0;
+ border: none;
+}
+
+#header {
+ margin:0;
+ padding:0;
+ background:url(../img/bg.png) no-repeat;
+}
+
+#header .images .rsalogo{
+ display:none;
+}
+
+.body #header .message{
+ color:#FFFFFF;
+ font-size:16px;
+ margin-left:60px;
+ margin-top:730px;
+ border-bottom:none;
+ text-align:left;
+}
+
+/* style overrides */
+
+.paragraph {
+ text-align:center;
+ margin: 0.2em 0;
+ padding: 0.2em 0;
+}
+
+div.project > h1 {
+ page-break-before: avoid;
+}
+
+h1 {
+ font-family: helvetica,arial,sans-serif;
+ font-size: 1.5em;
+ string-set: header content();
+ page-break-before: always
+}
+
+h1>a {
+ font-size: 1em;
+ string-set: header content();
+ page-break-before: always
+}
+
+h2 {
+ font-family: helvetica,arial,sans-serif;
+ font-size: 1.3em;
+}
+
+h3 {
+ font-family: helvetica,arial,sans-serif;
+ font-size: 1.2em;
+}
+
+h4 {
+ font-family: helvetica,arial,sans-serif;
+ font-size: 1.1em;
+}
+
+h1, h2, h3, h1>a, h2>a, h3>a {
+ color:#000000;
+}
+
+#toc div.tocItem {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+#toc div.tocItem a::after {
+ content: leader('.') target-counter(attr(href), page);
+ font-style: normal;
+}
+
+#col1 {
+ width: 100%;
+}
+
+#col2 {
+ width: 0;
+}
+
+#col2 .local {
+ display: none;
+}
+
+div.title {
+ font-size: 20px;
+}
+
+.code pre {
+ text-align: left;
+ padding-left:5px;
+ font-size: 0.85em;
+ line-height: 100%;
+ white-space: pre-wrap;
+ page-break-inside: avoid;
+}
+
+.bq {
+ white-space: pre-wrap;
+ page-break-inside: avoid;
+}
+
+.code, .bq {
+ text-align: left;
+ margin-bottom: 1em;
+}
+
+.warning, .note{
+ background-position:10px 10px;
+}
+
+.warning, .note, table {
+ margin-top: 1em;
+ margin-bottom: 1em;
+ page-break-inside: avoid;
+}
diff --git a/3.9.1/css/ref.css b/3.9.1/css/ref.css
new file mode 100644
index 000000000..adf22deda
--- /dev/null
+++ b/3.9.1/css/ref.css
@@ -0,0 +1,431 @@
+@import "tools.css";
+@import "skin.css";
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Body & Html.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+body {
+ font-family: Arial;
+}
+
+.body {
+ margin-left: 30px;
+ font-family: Tahoma, Verdana, Arial;
+ font-size:95%;
+}
+
+h1 {
+ font-family: Arial, Verdana, Tahoma;
+ border-bottom:1px solid #eeeeee;
+ font-size:1.2em;
+ margin-left:30px;
+ margin-top:50px;
+}
+
+h2 {
+ font-family: Arial, Verdana, Tahoma;
+ font-weight:normal;
+ font-style: italic;
+ font-size:1.0em;
+ margin-left:30px;
+}
+
+p {
+ margin-left:50px;
+}
+
+ul {
+
+ margin-left:50px;
+}
+
+ol {
+
+ margin-left:50px;
+}
+
+blockquote {
+ margin-left:50px;
+}
+
+/**
+* Wiki text stylesheet definitions.
+* @author Matthias L. Jugel
+* @version $Id: SnipSnap-Theme.snip,v 1.1.2.1 2004/01/26 14:07:31 leo Exp $
+*/
+
+.bold {
+ font-weight: bold;
+}
+
+.italic {
+ font-style: italic;
+}
+
+/************************************************/
+/* image positioning */
+img {
+ margin-top: 1px;
+ margin-bottom: 1px;
+ vertical-align: middle;
+}
+
+img.left {
+ display: block;
+ left: 0px;
+}
+
+img.right {
+ display: block;
+ right: 0px;
+}
+
+img.center {
+ text-align: center;
+}
+
+img.float-left {
+ float: left;
+ margin-top: 3px;
+ margin-right: 3px;
+ margin-bottom: 3px;
+}
+
+img.float-right {
+ float: right;
+ margin-top: 3px;
+ margin-left: 3px;
+ margin-bottom: 3px;
+}
+
+/*
+.graph-image {
+ position: relative;
+ width: 100%;
+}
+*/
+
+.heading-1 {
+ font-weight: bold;
+ font-size: 14px;
+ font-variant: small-caps;
+}
+
+.heading-1-1 {
+ font-size: 12px;
+ font-variant: small-caps;
+}
+
+.heading-1-1-1 {
+ font-size: 12px;
+}
+
+.quote {
+ font-style: italic;
+ color: inherit;
+ background-color: inherit;
+ font-family: inherit;
+ font-size: inherit;
+}
+
+.warning {
+ background-image: url(../img/warning.gif);
+ background-repeat: no-repeat;
+ background-position: 7 7;
+ border: 1px solid #CC0000;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left:50px;
+ padding: 10px;
+ padding-left: 40px;
+ line-height: 100%;
+ width: 85%;
+ background-color: #FFCCCC;
+}
+
+.note {
+ background-image: url(../img/note.gif);
+ background-repeat: no-repeat;
+ background-position: 7 7;
+ border: 1px solid #F0C000;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left:50px;
+ padding: 10px;
+ padding-left: 40px;
+ line-height: 100%;
+ width: 85%;
+ background-color: #FFFFCE;
+}
+/************************************************/
+/* code formatting */
+.bq {
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left:40px;
+ padding: 5px 5px 5px 5px;
+ padding-bottom: 15px;
+ color: inherit;
+ background-color: #F0F0F0;
+ border: 1px dashed black;
+ font-family: courier, courier new, monospace;
+ font-size: 12px;
+ line-height: 100%;
+ white-space: pre;
+ width: 90%;
+ overflow: auto;
+ overflow: scroll -moz-scrollbars-horizontal;
+ overflow-x: auto;
+}
+.code {
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left:40px;
+ padding: 5px 5px 5px 5px;
+ color: inherit;
+ background-color: #F0F0F0;
+ border: 1px dashed black;
+ font-family: courier, courier new, monospace;
+ font-size: 12px;
+ line-height: 100%;
+ white-space: pre;
+ width: 90%;
+ overflow: auto;
+ overflow: scroll -moz-scrollbars-horizontal;
+ overflow-x: auto;
+}
+/* Paragraphs are created inside code blocks after blank lines */
+.code p {
+ margin-left: 0px;
+}
+table .code {
+ margin-left:0px;
+}
+
+.java-keyword {
+ font-weight: bold;
+ background-color: inherit;
+}
+
+.java-object {
+ background-color: inherit;
+}
+
+.java-quote {
+ background-color: inherit;
+}
+
+.xml-keyword {
+ font-weight: bold;
+}
+
+.xml-tag {
+ color: #0000aa;
+ background-color: inherit;
+}
+
+/* weblog formatting */
+.blog-date {
+ display: block;
+ background-color: #f8f8f8;
+ color: black;
+ font-family: verdana, sans-serif;
+ font-size: 16px;
+ font-weight: bold;
+ margin-bottom: 10px;
+ width: 100%;
+}
+
+/* special formatting of a wiki table */
+.wiki-table {
+ border-style: solid;
+ border-color: black;
+ border-width: 0px 1px 1px 1px;
+ empty-cells: show;
+}
+
+.wiki-table td {
+ border-top: 1px solid black;
+ padding: 4px 4px 4px 4px;
+}
+
+.wiki-table th {
+ border-top: 1px solid black;
+ text-align: left;
+ color: inherit;
+ font-weight: bold; /* background-color: #DDEEFF; */
+ padding: 4px 4px 4px 4px;
+ font-size: 12px;
+}
+
+.wiki-table .table-odd {
+ color: inherit;
+ background-color: #F8F8F8;
+}
+
+.wiki-table .table-even {
+}
+
+/************************************************/
+/* list formatting */
+
+.list {
+}
+
+.list-title {
+ font-weight: bold;
+}
+
+.list ul {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ padding-left: 0px;
+ list-style-type: none;
+}
+
+/* wiki lists */
+
+ul.minus {
+ list-style-type: square;
+}
+
+ul.star {
+ list-style-type: disc;
+}
+
+ol.roman {
+ list-style-type: lower-roman;
+}
+
+ol.ROMAN {
+ list-style-type: upper-roman;
+}
+
+ol.alpha {
+ list-style-type: lower-alpha;
+}
+
+ol.ALPHA {
+ list-style-type: upper-alpha;
+}
+
+ol.greek {
+ list-style-type: lower-greek;
+}
+
+ol.GREEK {
+ list-style-type: upper-greek;
+}
+
+ol.hiragana {
+ list-style-type: hiragana;
+}
+
+ol.HIRAGANA {
+ list-style-type: hiragana-iroha;
+}
+
+ol.katakana {
+ list-style-type: katakana;
+}
+
+ol.KATAKANA {
+ list-style-type: katakana-iroha;
+}
+
+ol.HEBREW {
+ list-style-type: hebrew;
+}
+
+/************************************************/
+/* index formatting */
+.index-top {
+}
+
+.index-top th {
+ padding: 1px 1px 1px 1px;
+ text-align: left;
+ color: inherit;
+ font-weight: bold;
+ background-color: #d9e4f9;
+}
+
+.index {
+}
+
+.index td {
+ padding: 1px 1px 1px 1px;
+}
+
+.index th {
+ padding: 1px 1px 1px 1px;
+ text-align: left;
+ color: inherit;
+ font-weight: bold;
+ background-color: #d9e4f9;
+}
+
+/************************************************/
+/* calendar display */
+.calendar {
+ border-spacing: 0px;
+ font-size: 0.7em;
+}
+
+.calendar td {
+ text-align: right;
+ padding: 0px;
+}
+
+.calendar caption {
+ font-size: 1em;
+ text-align: left;
+ font-weight: bold;
+}
+
+.calendar .today {
+ border: 3px solid #cccccc;
+}
+
+li {
+ margin-bottom: 2px;
+ margin-top: 2px;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// CSS 3.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+.corner-all, #nav-summary #nav-summary-childs {
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+}
+
+#navigation a {
+ border-radius: 14px;
+ -moz-border-radius: 14px;
+ -webkit-border-radius: 14px;
+}
+
+#footer, #table-of-content a:hover, #navigation #nav-summary-childs a {
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.9);
+}
+
+.wiki-table th strong {
+ text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5);
+}
+
+#navigation a, #nav-summary #nav-summary-childs a:hover {
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.8);
+}
diff --git a/3.9.1/css/skin.css b/3.9.1/css/skin.css
new file mode 100644
index 000000000..6418c5921
--- /dev/null
+++ b/3.9.1/css/skin.css
@@ -0,0 +1,186 @@
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Color.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+body {
+ font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;;
+}
+body, .wiki-table th strong {
+ color: #444;
+}
+
+a,
+a:hover,
+a:focus,
+a:active,
+a:hover,
+#main .project strong,
+#table-of-content a:hover strong,
+#table-of-content a strong,
+.menu .menu-block h1,
+.menu a:hover,
+.local .local-title .toggle a,
+#navigation #nav-summary-childs a:hover,
+#main h1,
+#main h2 {
+ color: #feb672;
+ font-weight: bold;
+}
+
+#main .project h1, #table-of-content h2 {
+ color: #444;
+}
+
+#footer {
+ color: #999;
+}
+
+#footer a, .menu a, .local .local-title a, .local .local-title .toggle,
+ #navigation #nav-summary-childs a {
+ color: #333;
+}
+
+.java-keyword, .java-object {
+ color: #0911ff;
+}
+
+.java-quote {
+ color: #268000;
+}
+
+#navigation a, #nav-summary #nav-summary-childs a:hover {
+ color: white;
+}
+
+.toc-item a {
+ text-decoration: none;
+}
+
+.toc-item a:hover {
+ text-decoration: underline;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Background Color.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+#main {
+ background: white;
+}
+
+.code, #navigation #nav-summary-childs {
+ background: #F2f2F2;
+}
+
+
+#navigation .selected a {
+ background: #424649;
+}
+
+#navigation a:hover {
+ background: #db4800;
+}
+
+#navigation .selected a:hover, #navigation .active .button {
+ background: #db4800;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Background Image.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+
+.menu .menu-item {
+ background: url(../img/default/bullet.gif) no-repeat 2px 8px;
+}
+
+.local .local-title {
+ background: #F2F2F2 url(../img/default/separator-horizontal.gif) repeat-x 0 bottom;
+}
+
+.wiki-table th, #navigation {
+ background: #424649;
+}
+
+#navigation .separator {
+ background: url(../img/default/separator-menu.png) no-repeat 0 center;
+}
+
+.navTitle {
+ color:#fff;
+ background: url(../img/grails.svg) no-repeat 0 center;
+ background-size: 80px;
+ padding-left: 90px;
+ width: 180px;
+ float: right;
+ line-height: 3.1em;
+ height: 75px;
+ padding-top: 25px;
+}
+.btn-default {
+ background-color: #fff;
+ border-color: #ccc;
+ color: #333;
+}
+.btn {
+ -moz-user-select: none;
+ background-image: none;
+ border: 1px solid;
+ border-radius: 4px;
+ cursor: pointer;
+ display: inline-block;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857;
+ margin-bottom: 0;
+ padding: 6px 12px;
+ text-align: center;
+ vertical-align: middle;
+ white-space: nowrap;
+}
+.contribute-btn {
+ bottom: 40px;
+ float: right;
+ position: relative;
+ right: 0;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Border Color.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+#main {
+ border-color: #d3d3d3;
+ border-style: solid;
+}
+
+#navigation {
+ border-style: solid;
+ border-color: #7c7c7c;
+}
+
+.code {
+ border-style: dashed;
+ border-color: #333;
+}
+
+#navigation #nav-summary-childs {
+ border-style: solid;
+ border-color: #888;
+ border-top-color: #444;
+}
diff --git a/3.9.1/css/tools.css b/3.9.1/css/tools.css
new file mode 100644
index 000000000..b640414b2
--- /dev/null
+++ b/3.9.1/css/tools.css
@@ -0,0 +1,128 @@
+/*!
+ * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.1.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-square:before,.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Style de base.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+html {
+ font-size: 100%;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ font-size: .8em;
+ line-height: 1.2;
+ color: black;
+ background: white;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 1em 0 .5em 0;
+ line-height: 1.1;
+ font-weight: bold;
+ font-style: normal;
+}
+h1 {
+ font-size: 1.75em;
+}
+h2 {
+ font-size: 1.5em;
+}
+h3 {
+ font-size: 1.4em;
+}
+h4 {
+ font-size: 1.3em;
+}
+
+ul, ol {
+ margin: .75em 0 .75em 32px;
+ padding: 0;
+}
+
+p {
+ margin: 1em 0;
+}
+
+address {
+ margin: .75em 0;
+ font-style: normal;
+}
+
+a {
+ text-decoration: underline;
+}
+
+a:active {
+ outline: none;
+}
+a img {
+ border: none;
+}
+
+em {
+ font-style: italic;
+}
+
+strong {
+ font-weight: bold;
+}
+
+form, fieldset {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+
+input, button, select {
+ vertical-align: middle;
+}
+
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+// Clearfix.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+.clearfix:after
+{
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ font-size: 0;
+ height: 0;
+}
+
+.clearfix
+{
+ display: inline-block;
+}
+
+html[xmlns] .clearfix
+{
+ display: block;
+}
+
+* html .clearfix
+{
+ height: 1%;
+}
+
+
+#toggle-col1{
+ display: none;
+ float: right;
+ padding-left: 50px;
+}
diff --git a/3.9.1/fonts/FontAwesome.otf b/3.9.1/fonts/FontAwesome.otf
new file mode 100644
index 000000000..3461e3fce
Binary files /dev/null and b/3.9.1/fonts/FontAwesome.otf differ
diff --git a/3.9.1/fonts/fontawesome-webfont.eot b/3.9.1/fonts/fontawesome-webfont.eot
new file mode 100755
index 000000000..6cfd56609
Binary files /dev/null and b/3.9.1/fonts/fontawesome-webfont.eot differ
diff --git a/3.9.1/fonts/fontawesome-webfont.svg b/3.9.1/fonts/fontawesome-webfont.svg
new file mode 100755
index 000000000..a9f846950
--- /dev/null
+++ b/3.9.1/fonts/fontawesome-webfont.svg
@@ -0,0 +1,504 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/3.9.1/fonts/fontawesome-webfont.ttf b/3.9.1/fonts/fontawesome-webfont.ttf
new file mode 100755
index 000000000..5cd6cff6d
Binary files /dev/null and b/3.9.1/fonts/fontawesome-webfont.ttf differ
diff --git a/3.9.1/fonts/fontawesome-webfont.woff b/3.9.1/fonts/fontawesome-webfont.woff
new file mode 100755
index 000000000..9eaecb379
Binary files /dev/null and b/3.9.1/fonts/fontawesome-webfont.woff differ
diff --git a/3.9.1/guide/configurationreference.html b/3.9.1/guide/configurationreference.html
new file mode 100644
index 000000000..66b0d0c2f
--- /dev/null
+++ b/3.9.1/guide/configurationreference.html
@@ -0,0 +1,929 @@
+
+
+
+ Configuration Reference | Micronaut
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Configuration Reference
+
Version: 3.9.1
+
+
+
+
Micronaut Oraclecloud Atp Config Properties
+
🔗
+
+Table 1. Configuration Properties for AutonomousDatabaseConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+datasources.*.ocid
+java.lang.String
+
+
+
+datasources.*.wallet-password
+java.lang.String
+
+
+
+datasources.*.wallet-type
+com.oracle.bmc.database.model.GenerateAutonomousDatabaseWalletDetails$GenerateType
+
+
+
+datasources.*.service-alias
+java.lang.String
+
+
+
+
+
+
+
+
Micronaut Oraclecloud Certificates Config Properties
+
🔗
+
+Table 2. Configuration Properties for OracleCloudCertificationsConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.certificates.certificate-id
+java.lang.String
+ocid of certificate
+
+
+oci.certificates.version-number
+java.lang.Long
+version number of certificate
+
+
+oci.certificates.certificate-version-name
+java.lang.String
+certificate name
+
+
+oci.certificates.enabled
+java.lang.Boolean
+flag for enabling feature
+
+
+
+
+
+
+
Micronaut Oraclecloud Common Config Properties
+
🔗
+
+Table 3. Configuration Properties for OracleCloudAuthConfigurationProperties
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.pass-phrase
+java.lang.String
+
+
+
+oci.tenant-id
+java.lang.String
+
+
+
+oci.user-id
+java.lang.String
+
+
+
+oci.fingerprint
+java.lang.String
+
+
+
+oci.passphrase-characters
+char
+
+
+
+oci.region
+com.oracle.bmc.Region
+
+
+
+oci.private-key-file
+Readable
+The private key location.
+
+
+oci.private-key
+java.lang.String
+The private key as a string
+
+
+oci.passphrase
+java.lang.String
+Sets the passphrase
+
+
+
+
+
🔗
+
+Table 4. Configuration Properties for OracleCloudMetadataConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+micronaut.application.oraclecloud.metadata.enabled
+boolean
+
+
+
+micronaut.application.oraclecloud.metadata.url
+java.lang.String
+
+
+
+micronaut.application.oraclecloud.metadata.metadata-url
+java.lang.String
+
+
+
+micronaut.application.oraclecloud.metadata.instance-document-url
+java.lang.String
+
+
+
+micronaut.application.oraclecloud.metadata.vnic-url
+java.lang.String
+Default value: "http://169.254.169.254/opc/v1/vnics/" or "http://169.254.169.254/opc/v2/vnics/", depending on the value of {@link #v2Enabled}.
+
+
+micronaut.application.oraclecloud.metadata.v1-enabled
+boolean
+
+
+
+micronaut.application.oraclecloud.metadata.v2-enabled
+boolean
+
+
+
+
+
+
🔗
+
+Table 5. Configuration Properties for OracleCloudClientConfigurationProperties
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.client.connection-timeout-millis
+java.lang.Integer
+
+
+
+oci.client.read-timeout-millis
+java.lang.Integer
+
+
+
+oci.client.max-async-threads
+java.lang.Integer
+
+
+
+oci.client.disable-data-buffering-on-upload
+java.lang.Boolean
+
+
+
+oci.client.retry.termination-strategy
+com.oracle.bmc.waiter.TerminationStrategy
+
+
+
+oci.client.retry.delay-strategy
+com.oracle.bmc.waiter.DelayStrategy
+
+
+
+oci.client.retry.retry-condition
+com.oracle.bmc.retrier.RetryCondition
+
+
+
+oci.client.retry.retry-options
+com.oracle.bmc.retrier.RetryOptions
+
+
+
+oci.client.circuit-breaker.failure-rate-threshold
+int
+
+
+
+oci.client.circuit-breaker.slow-call-rate-threshold
+int
+
+
+
+oci.client.circuit-breaker.wait-duration-in-open-state
+java.time.Duration
+
+
+
+oci.client.circuit-breaker.permitted-number-of-calls-in-half-open-state
+int
+
+
+
+oci.client.circuit-breaker.minimum-number-of-calls
+int
+
+
+
+oci.client.circuit-breaker.sliding-window-size
+int
+
+
+
+oci.client.circuit-breaker.slow-call-duration-threshold
+java.time.Duration
+
+
+
+oci.client.circuit-breaker.writable-stack-trace-enabled
+boolean
+
+
+
+oci.client.circuit-breaker.record-http-statuses
+java.util.Set
+
+
+
+oci.client.circuit-breaker.record-exceptions
+java.util.List
+
+
+
+oci.client.circuit-breaker.record-processing-failures
+boolean
+
+
+
+oci.client.circuit-breaker.number-of-recorded-history-responses
+int
+
+
+
+
+
+
🔗
+
+Table 6. Configuration Properties for OracleCloudConfigFileConfigurationProperties
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.config.profile
+java.lang.String
+The profile to use.
+
+
+oci.config.path
+java.lang.String
+A custom path for the OCI configuration file.
+
+
+oci.config.enabled
+java.lang.Boolean
+Whether to enable or disable using the OCI configuration file.
+
+
+oci.config.session-token
+java.lang.Boolean
+Whether to enable the configuration of a {@link com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider}.
+
+
+
+
+
🔗
+
+Table 7. Configuration Properties for InstancePrincipalConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.config.instance-principal.enabled
+boolean
+Sets whether to enable instance principal authentication
+
+
+oci.config.instance-principal.metadata-base-url
+java.lang.String
+Get custom metadata base url.
+
+
+oci.config.instance-principal.session-key-supplier
+com.oracle.bmc.auth.SessionKeySupplier
+
+
+
+oci.config.instance-principal.intermediate-certificate-suppliers
+java.util.Set
+
+
+
+oci.config.instance-principal.federation-client-configurator
+com.oracle.bmc.http.ClientConfigurator
+
+
+
+oci.config.instance-principal.additional-federation-client-configurator
+com.oracle.bmc.http.ClientConfigurator
+
+
+
+oci.config.instance-principal.tenancy-id
+java.lang.String
+
+
+
+oci.config.instance-principal.circuit-breaker-configurator
+com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration
+
+
+
+oci.config.instance-principal.federation-endpoint
+java.lang.String
+
+
+
+oci.config.instance-principal.leaf-certificate-supplier
+com.oracle.bmc.auth.X509CertificateSupplier
+
+
+
+oci.config.instance-principal.detect-endpoint-retries
+int
+
+
+
+oci.config.instance-principal.timeout-for-each-retry
+int
+
+
+
+
+
+
+
+
Micronaut Oraclecloud Httpclient Netty Config Properties
+
🔗
+
+Table 8. Configuration Properties for OciSerdeConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.serde.date-format
+java.util.Optional
+
+
+
+oci.serde.time-write-shape
+SerdeConfiguration$TimeShape
+
+
+
+oci.serde.numeric-time-unit
+SerdeConfiguration$NumericTimeUnit
+
+
+
+oci.serde.locale
+java.util.Optional
+
+
+
+oci.serde.time-zone
+java.util.Optional
+
+
+
+oci.serde.included-introspection-packages
+java.util.List
+
+
+
+oci.serde.maximum-nesting-depth
+int
+
+
+
+oci.serde.write-binary-as-array
+boolean
+
+
+
+
+
+
🔗
+
+Table 9. Configuration Properties for OciSerializationConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.serde.serialization.always-serialize-errors-as-list
+boolean
+
+
+
+oci.serde.serialization.inclusion
+SerdeConfig$SerInclude
+
+
+
+
+
+
+
+
Micronaut Oraclecloud Oke Workload Identity Config Properties
+
🔗
+
+Table 10. Configuration Properties for OkeHttpClientConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.http-version
+HttpVersion
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.log-level
+LogLevel
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.event-loop-group
+java.lang.String
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.ssl-configuration
+SslConfiguration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.follow-redirects
+boolean
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.exception-on-error-status
+boolean
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.logger-name
+java.lang.String
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.default-charset
+java.nio.charset.Charset
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.channel-options
+java.util.Map
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.read-timeout
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.read-idle-timeout
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.connection-pool-idle-timeout
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.connect-timeout
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.connect-ttl
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.shutdown-quiet-period
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.shutdown-timeout
+java.time.Duration
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.num-of-threads
+java.lang.Integer
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.thread-factory
+java.lang.Class
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.max-content-length
+int
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.proxy-type
+java.net.Proxy$Type
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.proxy-address
+java.net.SocketAddress
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.proxy-username
+java.lang.String
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.proxy-password
+java.lang.String
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.proxy-selector
+java.net.ProxySelector
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.plaintext-mode
+HttpVersionSelection$PlaintextMode
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.alpn-modes
+java.util.List
+
+
+
+micronaut.http.client.micronaut.http.oci-oke.client.allow-block-event-loop
+boolean
+
+
+
+
+
+
🔗
+
+Table 11. Configuration Properties for OkeWorkloadIdentityConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.config.oke-workload-identity.enabled
+boolean
+Sets whether to enable instance principal authentication
+
+
+oci.config.oke-workload-identity.session-key-supplier
+com.oracle.bmc.auth.SessionKeySupplier
+
+
+
+oci.config.oke-workload-identity.intermediate-certificate-suppliers
+java.util.Set
+
+
+
+oci.config.oke-workload-identity.federation-client-configurator
+com.oracle.bmc.http.ClientConfigurator
+
+
+
+oci.config.oke-workload-identity.additional-federation-client-configurator
+com.oracle.bmc.http.ClientConfigurator
+
+
+
+oci.config.oke-workload-identity.metadata-base-url
+java.lang.String
+
+
+
+oci.config.oke-workload-identity.federation-endpoint
+java.lang.String
+
+
+
+oci.config.oke-workload-identity.detect-endpoint-retries
+int
+
+
+
+oci.config.oke-workload-identity.timeout-for-each-retry
+int
+
+
+
+oci.config.oke-workload-identity.leaf-certificate-supplier
+com.oracle.bmc.auth.X509CertificateSupplier
+
+
+
+oci.config.oke-workload-identity.circuit-breaker-configurator
+com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration
+
+
+
+oci.config.oke-workload-identity.tenancy-id
+java.lang.String
+
+
+
+oci.config.oke-workload-identity.circuit-breaker-config
+com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration
+
+
+
+oci.config.oke-workload-identity.token
+java.lang.String
+
+
+
+oci.config.oke-workload-identity.token-path
+java.lang.String
+
+
+
+
+
+
+
+
Micronaut Oraclecloud Vault Config Properties
+
🔗
+
+Table 12. Configuration Properties for OracleCloudVaultConfiguration$OracleCloudVault
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.vault.vaults[*].ocid
+java.lang.String
+The OCID of the vault that contains secrets that will be retrieved, decoded and set as config vars.
+
+
+oci.vault.vaults[*].compartment-ocid
+java.lang.String
+The compartment OCID where the vault resides.
+
+
+
+
+
🔗
+
+
+
🔗
+
+Table 14. Configuration Properties for OracleCloudVaultConfiguration
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.vault.vaults
+java.util.List
+A list of {@link OracleCloudVault} objects that contain secrets that will be retrieved, decoded and set into your application as config variables.
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/3.9.1/guide/index.html b/3.9.1/guide/index.html
new file mode 100644
index 000000000..28399fcf8
--- /dev/null
+++ b/3.9.1/guide/index.html
@@ -0,0 +1,3930 @@
+
+
+
+ Micronaut Oracle Cloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Table of Contents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Micronaut Oracle Cloud
+
+
Provides integration between Micronaut and Oracle Cloud
+
Version: 3.9.1
+
+
+
1 Introduction
+
+
+
+ Improve this doc
+
+
+
+
+
+
This module provides integration between Micronaut and the
+Oracle Cloud Infrastructure (OCI) SDK by giving you the ability to easily inject SDK clients into your Micronaut services and controllers. In addition to supporting the SDK’s blocking clients, the module provides reactive clients that use RxJava to provide async alternatives to the blocking clients in the SDK (an improvement upon the SDK’s 'out-of-the-box' async clients). This module also includes support for Oracle Cloud (serverless) Functions and Oracle Cloud Autonomous Database.
+
+
+
2 Release History
+
+
+
+ Improve this doc
+
+
+
+
+
+
For this project, you can find a list of releases (with release notes) here:
+
+
+
+
3 Breaking Changes
+
+
+
+ Improve this doc
+
+
+
+
+
+
This section will document breaking changes that may happen during milestone or release candidate releases, as well as major releases eg (1.x.x → 2.x.x).
+
+
+
Micronaut Oracle Cloud 2.2.0 breaking changes
+
+
+
In version 2.33.0, Oracle removed some dependencies from their Oracle Cloud SDK. If you relied on those dependencies being available, but did not declare them in your build file explicitly, they may now be missing. The solution is to add those dependencies to your own build file.
+
+
+
In general, we do not recommend depending on transitive dependencies of the Oracle Cloud SDK, as future versions may remove further dependencies.
+
+
+
The affected dependencies for this release are commons-codec
, commons-io
, and commons-logging
.
+
+
+
+
+
4 Quick Start
+
+
+
+ Improve this doc
+
+
+
+
+
+
To get started quickly, setup the Oracle Cloud CLI making sure you have run oci setup config
to configure local access to Oracle Cloud.
+
+
+
Then add dependencies on the Micronaut OracleCloud modules corresponding to OCI SDK clients you wish to use, for example Vault:
+
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-bmc-vault")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-bmc-vault</artifactId>
+</dependency>
+
+
+
+
+
Utilize Micronaut Injection to get an instance of the client in your application, e.g.:
+
+
+
+
All OCI SDK clients are supported.
+
+
+
5 Authentication
+
+
+
+ Improve this doc
+
+
+
+
+
+
The following authentication providers are supported in this module:
+
+
+
+
ConfigFileAuthenticationDetailsProvider
+
+
+
ConfigFileAuthenticationDetailsProvider uses a config file located at $USER_HOME/.oci/config
. Specify a profile or config file path within the config file via your application
configuration file:
+
+
🔗
+
+Table 1. Configuration Properties for OracleCloudConfigFileConfigurationProperties
+
+
+
+
+
+
+
+Property
+Type
+Description
+
+
+
+
+oci.config.profile
+java.lang.String
+The profile to use.
+
+
+oci.config.path
+java.lang.String
+A custom path for the OCI configuration file.
+
+
+oci.config.enabled
+java.lang.Boolean
+Whether to enable or disable using the OCI configuration file.
+
+
+oci.config.session-token
+java.lang.Boolean
+Whether to enable the configuration of a {@link com.oracle.bmc.auth.SessionTokenAuthenticationDetailsProvider}.
+
+
+
+
+
+
+
+
+
+
+In the Oracle Java SDK the environment variable OCI_CONFIG_FILE
doesn’t take precedence over the ~/.oci/config
if the file exists. Assign the OCI_CONFIG_FILE
to oci.config.path
. To change the order: oci.config.path: ${OCI_CONFIG_FILE}
+
+
+
+
+
+
+
+
SimpleAuthenticationDetailsProvider
+
+
+
+
+
+
+
oci.fingerprint=<value>
+oci.passphrase=<value>
+oci.private-key=<value>
+oci.private-key-file=<value>
+oci.region=<value>
+oci.tenant-id=<value>
+oci.user-id=<value>
+
+
+
+
+
oci:
+ fingerprint: <value>
+ passphrase: <value>
+ private-key: <value>
+ private-key-file: <value>
+ region: <value>
+ tenant-id: <value>
+ user-id: <value>
+
+
+
+
+
[oci]
+ fingerprint="<value>"
+ passphrase="<value>"
+ private-key="<value>"
+ private-key-file="<value>"
+ region="<value>"
+ tenant-id="<value>"
+ user-id="<value>"
+
+
+
+
+
oci {
+ fingerprint = "<value>"
+ passphrase = "<value>"
+ privateKey = "<value>"
+ privateKeyFile = "<value>"
+ region = "<value>"
+ tenantId = "<value>"
+ userId = "<value>"
+}
+
+
+
+
+
{
+ oci {
+ fingerprint = "<value>"
+ passphrase = "<value>"
+ private-key = "<value>"
+ private-key-file = "<value>"
+ region = "<value>"
+ tenant-id = "<value>"
+ user-id = "<value>"
+ }
+}
+
+
+
+
+
{
+ "oci": {
+ "fingerprint": "<value>",
+ "passphrase": "<value>",
+ "private-key": "<value>",
+ "private-key-file": "<value>",
+ "region": "<value>",
+ "tenant-id": "<value>",
+ "user-id": "<value>"
+ }
+}
+
+
+
+
+
+
+
+fingerprint
: the private key fingerprint]
+
+
+passphrase
: the private key passphrase]
+
+
+private-key
: the contents of your private key. Optionally, pass a path with private-key-file (see below).]
+
+
+private-key-file
: the path to the private key file (used in place of private-key above)]
+
+
+region
: e.g. us-phoenix-1
+
+
+tenant-id
: the tenancy OCID
+
+
+user-id
: the user OCID
+
+
+
+
+
+
+
InstancePrincipalsAuthenticationDetailsProvider
+
+
+
If your application is running in Oracle Cloud, you can authorize InstancePrincipalsAuthenticationDetailsProvider to make SDK calls and utilize Instance Principal authentication. See the documentation to enable this via dynamic groups and policies, and then enable it for the Oracle Cloud environment via the application-oraclecloud
configuration file with:
+
+
+
+
+
+
oci.config.instance-principal.enabled=true
+
+
+
+
+
oci:
+ config:
+ instance-principal:
+ enabled: true
+
+
+
+
+
[oci]
+ [oci.config]
+ [oci.config.instance-principal]
+ enabled=true
+
+
+
+
+
oci {
+ config {
+ instancePrincipal {
+ enabled = true
+ }
+ }
+}
+
+
+
+
+
{
+ oci {
+ config {
+ instance-principal {
+ enabled = true
+ }
+ }
+ }
+}
+
+
+
+
+
{
+ "oci": {
+ "config": {
+ "instance-principal": {
+ "enabled": true
+ }
+ }
+ }
+}
+
+
+
+
+
+
+
+
ResourcePrincipalAuthenticationDetailsProvider
+
+
+
ResourcePrincipalAuthenticationDetailsProvider is similar to instance principals , but used for Oracle Functions (serverless). See the documentation for instructions on how to configure the necessary dynamic group rules and policies to use Resource Principal auth with your serverless functions. Once the proper configuration is complete, your Micronaut driven serverless functions will be able to use the OCI SDKs.
+
+
+
+
+
OkeWorkloadIdentityAuthenticationDetailsProvider
+
+
+
If your application is running in Oracle Cloud OKE (Container Engine for Kubernetes), you can authorize /com/oracle/bmc/auth/okeworkloadidentity/OkeWorkloadIdentityAuthenticationDetailsProvider
to make SDK calls and utilize OKE Workload Identity authentication. See the documentation to enable this via dynamic groups and policies, and then enable it for the K8s environment via the application-k8s
configuration file with:
+
+
+
+
+
+
oci.config.oke-workload-identity.enabled=true
+
+
+
+
+
oci:
+ config:
+ oke-workload-identity:
+ enabled: true
+
+
+
+
+
[oci]
+ [oci.config]
+ [oci.config.oke-workload-identity]
+ enabled=true
+
+
+
+
+
oci {
+ config {
+ okeWorkloadIdentity {
+ enabled = true
+ }
+ }
+}
+
+
+
+
+
{
+ oci {
+ config {
+ oke-workload-identity {
+ enabled = true
+ }
+ }
+ }
+}
+
+
+
+
+
{
+ "oci": {
+ "config": {
+ "oke-workload-identity": {
+ "enabled": true
+ }
+ }
+ }
+}
+
+
+
+
+
+
Required dependency:
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-oke-workload-identity")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-oke-workload-identity</artifactId>
+</dependency>
+
+
+
+
+
+
+
+
SessionTokenAuthenticationDetailsProvider
+
+
+
+
+
+
+
oci.config.session-token=true
+
+
+
+
+
oci:
+ config:
+ session-token: true
+
+
+
+
+
[oci]
+ [oci.config]
+ session-token=true
+
+
+
+
+
oci {
+ config {
+ sessionToken = true
+ }
+}
+
+
+
+
+
{
+ oci {
+ config {
+ session-token = true
+ }
+ }
+}
+
+
+
+
+
{
+ "oci": {
+ "config": {
+ "session-token": true
+ }
+ }
+}
+
+
+
+
+
+
With the rest of the oci.config
configuration properties, you can use a non-default configuration file or use a different profile.
+
+
+
+
+
6 Available Modules
+
+
+
+ Improve this doc
+
+
+
+
+
+
The following modules are provided.
+
+
+
micronaut-oraclecloud-common
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-common")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-common</artifactId>
+</dependency>
+
+
+
+
+
Provides the common functionality and sets up the following beans:
+
+
+
+
+
micronaut-oraclecloud-httpclient-netty
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
+</dependency>
+
+
+
+
+
Provides an implementation of the OCI SDK client based on Netty and Micronaut Serialization.
+
+
+
+
+
+
+
+
+micronaut-oraclecloud-bmc-[OCI SDK Client]
modules must be used instead of the OCI Java SDK modules, as they are compatible with this client.
+
+
+
+
+
+
+
micronaut-oraclecloud-bmc-[OCI SDK Client]
+
+
OCI SDK client dependencies compatible with the micronaut-oraclecloud-httpclient-netty
.
+The modules also support injection of the OCI SDK client interfaces.
+Injection of Reactor or RxJava 2 clients is supported with the addition of one of the following dependencies:
+
+
+
dependency:io.micronaut.micronaut-reactor
+
+
+
+
implementation("io.micronaut.rxjava2:micronaut-rxjava2")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.rxjava2</groupId>
+ <artifactId>micronaut-rxjava2</artifactId>
+</dependency>
+
+
+
+
+
+
micronaut-oraclecloud-sdk
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-sdk")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-sdk</artifactId>
+</dependency>
+
+
+
+
+
Provides support for injecting any of the available SDK client interfaces.
+
+
+
+
+
+
+
+
+The module is only required when you want to use the OCI SDK clients with a Jersey implementation, as the
+Netty client implementations support Micronaut injection by default. For example to use Object Vault with
+OCI Jersey client you would define a dependency on this module as well as:
+
+
+
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-vault")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-vault</artifactId>
+</dependency>
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-common-httpclient-jersey")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
+</dependency>
+
+
+
+
+
+
micronaut-oraclecloud-sdk-rxjava2
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-sdk-rxjava2")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-sdk-rxjava2</artifactId>
+</dependency>
+
+
+
+
+
Provides support for injecting inject RxJava 2 client implementations.
+
+
+
+
+
+
+
+
+The module is only required when you want to use the OCI SDK clients with a Jersey implementation, as the
+Netty client implementations support Micronaut injection by default. For example to use Object Vault with
+OCI Jersey client you would define a dependency on this module as well as:
+
+
+
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-vault")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-vault</artifactId>
+</dependency>
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-common-httpclient-jersey")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
+</dependency>
+
+
+
+
+
+
micronaut-oraclecloud-sdk-reactor
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-sdk-reactor")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-sdk-reactor</artifactId>
+</dependency>
+
+
+
+
+
Provides support for injecting inject Reactor client implementations.
+
+
+
+
+
+
+
+
+The module is only required when you want to use the OCI SDK clients with a Jersey implementation, as the
+Netty client implementations support Micronaut injection by default. For example to use Object Vault with
+OCI Jersey client you would define a dependency on this module as well as:
+
+
+
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-vault")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-vault</artifactId>
+</dependency>
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-common-httpclient-jersey")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
+</dependency>
+
+
+
+
+
+
micronaut-oraclecloud-function
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-function")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-function</artifactId>
+</dependency>
+
+
+
+
+
Provides the OciFunction superclass that you can subclass to write Oracle Cloud Functions in Micronaut that can utilize Micronaut dependency injection.
+
+
+
+
micronaut-oraclecloud-function-http
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-function-http")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-function-http</artifactId>
+</dependency>
+
+
+
+
+
Provides the HttpFunction class that can be used as a handler to write HTTP API Gateway function handlers that delegate to regular Micronaut controllers.
+
+
+
+
micronaut-oraclecloud-atp
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-atp</artifactId>
+</dependency>
+
+
+
+
+
Provides support for configuring the data source connection for the UCP and HikariCP connection pools by specifying Oracle Cloud Autonomous Database configuration.
+
+
+
+
+
+
+
+
+The module generates the OracleWallet on startup.
+
+
+
+
+
+
+
micronaut-oraclecloud-micrometer
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-micrometer")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-micrometer</artifactId>
+</dependency>
+
+
+
+
+
+
+
micronaut-oraclecloud-vault
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-vault")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-vault</artifactId>
+</dependency>
+
+
+
+
+
+
+
7 OCI SDK Netty HTTP Client
+
+
+
+ Improve this doc
+
+
+
+
+
+
This module provides a netty client implementation for the Java OCI SDK. The client uses Micronaut Serialization .
+
+
+
Add a dependency to the micronaut-oraclecloud-httpclient-netty
module:
+
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-httpclient-netty")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-httpclient-netty</artifactId>
+</dependency>
+
+
+
+
+
For serialization to work correctly, use one of the micronaut OCI SDK modules instead of the OCI SDK modules. For example, for Object Store define the dependency:
+
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-bmc-objectstorage")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-bmc-objectstorage</artifactId>
+</dependency>
+
+
+
+
+
Migrate
+
+
Replace the com.oracle.oci.sdk:oci-java-sdk-common-httpclient-jersey
with the micronaut-oraclecloud-httpclient-netty
client and the com.oracle.oci.sdk:oci-java-sdk-bom
with micronaut-oraclecloud-bom
.
+
+
+
Then replace other OCI SDK modules with micronaut ones. To simplify the process, you can utilize the following regular expression:
+
+
+
+
+
<dependency>(\s*)<groupId>com.oracle.oci.sdk</groupId>(\s*)<artifactId>oci-java-sdk-([^<]+)</artifactId>(((?!</dependency>)[\s\S])+)</dependency>
+
+
+
+
+
+
<dependency>$1<groupId>io.micronaut.oraclecloud</groupId>$2<artifactId>micronaut-oraclecloud-bmc-$3</artifactId>$4</dependency>
+
+
+
+
+
+
com.oracle.oci.sdk:oci-java-sdk-([^:"')]+)
+
+
+
+
+
+
io.micronaut.oraclecloud:micronaut-oraclecloud-bmc-$1
+
+
+
+
If you plan to use the modules in a Micronaut application, add one of the micronaut-oraclecloud-sdk
, micronaut-oraclecloud-sdk-rxjava2
or micronaut-oraclecloud-sdk-reactor
modules.
+
+
+
+
Configuration
+
+
The jersey HTTP client can be configured through a ClientConfigurator
and StandardClientProperties
. Only some of these properties are supported for the netty client. Which properties are supported also depends on whether the netty client is used in a managed context, i.e. whether the SDK client is injected from an application context. The following properties are supported:
+
+
+
+
+StandardClientProperties.BUFFER_REQUEST
always supported
+
+
+StandardClientProperties.READ_TIMEOUT
supported only when the client is not managed
+
+
+StandardClientProperties.CONNECT_TIMEOUT
supported only when the client is not managed
+
+
+StandardClientProperties.ASYNC_POOL_SIZE
supported only when the client is not managed
+
+
+
+
+
All other properties, in particular those related to proxies or TLS configuration, are not supported. Instead, you can configure these settings through the normal Micronaut HTTP client configuration properties, with the special service name oci
, for example the micronaut.http.services.oci.read-timeout
property. For the managed netty client, this allows you to configure TLS, proxy settings, various timeouts and the pool size. The service name can be customized using the NettyClientProperties.SERVICE_ID
property.
+
+
+
+
8 Reactive Support
+
+
+
+ Improve this doc
+
+
+
+
+
+
In addition to the blocking clients, this module provides clients that use RxJava or Reactor to allow reactive programming with Micronaut for each SDK.
+
+
+
For RxJava 2 add the following module along with a micronaut-oraclecloud-sdk-[OCI SDK client]
module:
+
+
+
+
+
+
implementation("io.micronaut.rxjava2:micronaut-rxjava2")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.rxjava2</groupId>
+ <artifactId>micronaut-rxjava2</artifactId>
+</dependency>
+
+
+
+
+
For Reactor add the following module along with micronaut-oraclecloud-sdk-[OCI SDK client]
module:
+
+
+
+
For example, instead of ObjectStorageClient
, you can inject ObjectStorageRxClient
for RxJava 2 or ObjectStorageReactorClient
for Reactor to use the Object Storage API:
+
+
+
+
import com.oracle.bmc.objectstorage.model.BucketSummary;
+import com.oracle.bmc.objectstorage.model.CreateBucketDetails;
+import com.oracle.bmc.objectstorage.requests.CreateBucketRequest;
+import com.oracle.bmc.objectstorage.requests.DeleteBucketRequest;
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest;
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest;
+import com.oracle.bmc.objectstorage.responses.CreateBucketResponse;
+import io.micronaut.core.annotation.Nullable;
+import io.micronaut.http.annotation.Controller;
+import io.micronaut.http.annotation.Delete;
+import io.micronaut.http.annotation.Get;
+import io.micronaut.http.annotation.PathVariable;
+import io.micronaut.http.annotation.Post;
+import io.micronaut.oraclecloud.clients.reactor.objectstorage.ObjectStorageReactorClient;
+import io.micronaut.oraclecloud.core.TenancyIdProvider;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Controller("/os")
+public class BucketController implements BucketOperations {
+
+ private final ObjectStorageReactorClient objectStorage;
+ private final TenancyIdProvider tenancyIdProvider;
+ private final String defaultCompartmentId = System.getenv("COMPARTMENT_OCID");
+
+ public BucketController(ObjectStorageReactorClient objectStorage,
+ TenancyIdProvider tenancyIdProvider) { // (1)
+ this.objectStorage = objectStorage;
+ this.tenancyIdProvider = tenancyIdProvider;
+ }
+}
+
+
+
+
+
import com.oracle.bmc.objectstorage.model.CreateBucketDetails
+import com.oracle.bmc.objectstorage.requests.CreateBucketRequest
+import com.oracle.bmc.objectstorage.requests.DeleteBucketRequest
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest
+import com.oracle.bmc.objectstorage.responses.CreateBucketResponse
+import groovy.transform.CompileStatic
+import io.micronaut.core.annotation.Nullable
+import io.micronaut.http.annotation.Controller
+import io.micronaut.http.annotation.Delete
+import io.micronaut.http.annotation.Get
+import io.micronaut.http.annotation.PathVariable
+import io.micronaut.http.annotation.Post
+import io.micronaut.oraclecloud.clients.reactor.objectstorage.ObjectStorageReactorClient
+import io.micronaut.oraclecloud.core.TenancyIdProvider
+import reactor.core.publisher.Mono
+
+@CompileStatic
+@Controller('/os')
+class BucketController implements BucketOperations {
+
+ private final ObjectStorageReactorClient objectStorage
+ private final TenancyIdProvider tenancyIdProvider
+
+ BucketController(ObjectStorageReactorClient objectStorage,
+ TenancyIdProvider tenancyIdProvider) { // (1)
+ this.objectStorage = objectStorage
+ this.tenancyIdProvider = tenancyIdProvider
+ }
+}
+
+
+
+
+
import io.micronaut.oraclecloud.clients.reactor.objectstorage.ObjectStorageReactorClient
+import io.micronaut.oraclecloud.core.TenancyIdProvider
+import io.micronaut.http.annotation.Get
+import io.micronaut.http.annotation.PathVariable
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest
+import com.oracle.bmc.objectstorage.responses.ListBucketsResponse
+import com.oracle.bmc.objectstorage.requests.CreateBucketRequest
+import com.oracle.bmc.objectstorage.model.CreateBucketDetails
+import com.oracle.bmc.objectstorage.responses.CreateBucketResponse
+import com.oracle.bmc.objectstorage.requests.DeleteBucketRequest
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest
+import com.oracle.bmc.objectstorage.responses.DeleteBucketResponse
+import com.oracle.bmc.objectstorage.responses.GetNamespaceResponse
+import io.micronaut.core.annotation.Nullable
+import io.micronaut.http.annotation.Controller
+import io.micronaut.http.annotation.Delete
+import io.micronaut.http.annotation.Post
+import reactor.core.publisher.Mono
+
+@Controller("/os")
+class BucketController(private val objectStorage: ObjectStorageReactorClient,
+ private val tenancyIdProvider: TenancyIdProvider) // (1)
+ : BucketOperations {
+}
+
+
+
+
+
+1
+The ObjectStorageRxClient
is injected into the constructor.
+
+
+
+
+
Once you have a reference to the relevant reactive client, it is easier to compose non-blocking operations. The following example creates a bucket:
+
+
+
+
@Override
+@Post(value = "/buckets/{name}")
+public Mono<String> createBucket(String name) {
+
+ String compartmentId = defaultCompartmentId != null ? defaultCompartmentId : tenancyIdProvider.getTenancyId();
+
+ GetNamespaceRequest getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(compartmentId).build();
+ return objectStorage.getNamespace(getNamespaceRequest) // (1)
+ .flatMap(namespaceResponse -> {
+ CreateBucketRequest createBucketRequest = CreateBucketRequest.builder()
+ .namespaceName(namespaceResponse.getValue())
+ .createBucketDetails(CreateBucketDetails.builder()
+ .compartmentId(compartmentId)
+ .name(name)
+ .build())
+ .build();
+
+ return objectStorage.createBucket(createBucketRequest) // (2)
+ .map(CreateBucketResponse::getLocation); // (3)
+ });
+}
+
+
+
+
+
@Override
+@Post(value = '/buckets/{name}')
+Mono<String> createBucket(String name) {
+
+ String tenancyId = tenancyIdProvider.tenancyId
+ GetNamespaceRequest getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(tenancyId).build()
+ return objectStorage.getNamespace(getNamespaceRequest) // (1)
+ .flatMap(namespaceResponse -> {
+ CreateBucketRequest createBucketRequest = CreateBucketRequest.builder()
+ .namespaceName(namespaceResponse.value)
+ .createBucketDetails(CreateBucketDetails.builder()
+ .compartmentId(tenancyId)
+ .name(name)
+ .build())
+ .build()
+
+ return objectStorage.createBucket(createBucketRequest) // (2)
+ .map(CreateBucketResponse::getLocation) // (3)
+ }) as Mono<String>
+}
+
+
+
+
+
@Post(value = "/buckets/{name}")
+override fun createBucket(name: String): Mono<String> {
+ val tenancyId = tenancyIdProvider.tenancyId
+ val getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(tenancyId).build()
+ return objectStorage.getNamespace(getNamespaceRequest) // (1)
+ .flatMap { namespaceResponse: GetNamespaceResponse ->
+ val createBucketRequest = CreateBucketRequest.builder()
+ .namespaceName(namespaceResponse.value)
+ .createBucketDetails(CreateBucketDetails.builder()
+ .compartmentId(tenancyId)
+ .name(name)
+ .build())
+ .build()
+ objectStorage.createBucket(createBucketRequest) // (2)
+ .map { obj: CreateBucketResponse -> obj.location } // (3)
+ }
+}
+
+
+
+
+
+1
+First a request to obtain the namespace is sent
+
+
+2
+Then with the response the flatMap
operator is used to send another request to create a bucket
+
+
+3
+Finally the location of the bucket is returned in the response
+
+
+
+
+
9 Oracle Functions (Serverless)
+
+
+
+ Improve this doc
+
+
+
+
+
+
Oracle Functions are based on Project.fn . You can write simple functions targeting the Oracle Function environment by extending from the OciFunction superclass.
+
+
+
+
+
+
+
+
+Micronaut’s Oracle Function support can utilize GraalVM native-image
running within a Docker container. This will result in extremely responsive serverless functions utilizing very few Cloud resources.
+
+
+
+
+
+
This superclass enables dependency injection for the function. Note that the the function definition must conform to the following rules:
+
+
+
+
+The class must have a public no arguments constructor
+
+
+A public method that executes the function must be defined
+
+
+The class must be annotated with @Singleton
+
+
+
+
+
Micronaut support for Oracle Functions can be combined with the OCI SDK support to give your serverless functions access to the OCI SDKs as needed.
+
+
+
+
Creating a Function with a Gradle build
+
+
With Micronaut 2.1 and above you can create a new Oracle Function using Gradle as the build tool with the following command line command:
+
+
+
+
$ mn create-function-app myfunction --features oracle-function
+
+
+
+
This will create a Gradle build that sets up the Micronaut Gradle plugin. The only changes you need to make are to modify the build.gradle
and alter the dockerBuild
and dockerBuildNative
to point at the Oracle Cloud Registry you wish the publish the docker images for the function:
+
+
+
+
dockerBuild {
+ images = ["[REGION].ocir.io/[TENANCY_ID]/[REPOSITORY]/$project.name:$project.version"]
+}
+
+dockerBuildNative {
+ images = ["[REGION].ocir.io/[TENANCY_ID]/[REPOSITORY]/$project.name:$project.version"]
+}
+
+
+
+
The REGION
should be altered to your region, the TENANCY_ID
to your tenancy and the REPOSITORY
to the Docker repository you wish to publish to.
+
+
+
+
Creating a Function with a Maven build
+
+
With Micronaut 2.2 and above you can create a new Oracle Function using Maven as the build tool with the following command line command:
+
+
+
+
$ mn create-function-app myfunction --build=maven --features oracle-function
+
+
+
+
This will create a Maven build that sets up the Micronaut Maven plugin. The only changes you need to make are to modify the pom.xml
and and add these properties in the <properties>
section to point at the Oracle Cloud Registry you wish the publish the docker images for the function:
+
+
+
+
<jib.docker.image>[REGION].ocir.io/[TENANCY_ID]/[REPOSITORY]/${project.artifactId}</jib.docker.image>
+
+<jib.docker.tag>${project.version}</jib.docker.tag>
+
+
+
+
The REGION
should be altered to your region, the TENANCY_ID
to your tenancy and the REPOSITORY
to the Docker repository you wish to publish to.
+
+
+
Also add a property to define the full class name and package of the function class, e.g.
+
+
+
+
<exec.mainClass>com.mycompany.MyFunction</exec.mainClass>
+
+
+
+
+
Build
+
+
The following provides a serverless function example that uses the Object Storage API to list the available buckets:
+
+
+
+
import com.oracle.bmc.objectstorage.ObjectStorageClient;
+import com.oracle.bmc.objectstorage.model.BucketSummary;
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest;
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest;
+import io.micronaut.core.annotation.ReflectiveAccess;
+import io.micronaut.oraclecloud.core.TenancyIdProvider;
+import io.micronaut.oraclecloud.function.OciFunction;
+
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Singleton
+public class ListBucketsFunction extends OciFunction { // (1)
+
+ @Inject
+ ObjectStorageClient objectStorageClient; // (2)
+
+ @Inject
+ TenancyIdProvider tenantIdProvider;
+}
+
+
+
+
+
import com.oracle.bmc.objectstorage.ObjectStorageClient
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest
+import groovy.transform.CompileStatic
+import io.micronaut.core.annotation.ReflectiveAccess
+import io.micronaut.oraclecloud.core.TenancyIdProvider
+import io.micronaut.oraclecloud.function.OciFunction
+
+import jakarta.inject.Inject
+import jakarta.inject.Singleton
+
+@CompileStatic
+@Singleton
+class ListBucketsFunction extends OciFunction { // (1)
+
+ @Inject
+ ObjectStorageClient objectStorageClient // (2)
+
+ @Inject
+ TenancyIdProvider tenantIdProvider
+
+}
+
+
+
+
+
import com.oracle.bmc.objectstorage.ObjectStorageClient
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest
+import io.micronaut.core.annotation.ReflectiveAccess
+import io.micronaut.oraclecloud.core.TenancyIdProvider
+import io.micronaut.oraclecloud.function.OciFunction
+import jakarta.inject.Inject
+import jakarta.inject.Singleton
+
+@Singleton
+class ListBucketsFunction : OciFunction() { // (1)
+
+ @Inject
+ lateinit var objectStorageClient : ObjectStorageClient // (2)
+
+ @Inject
+ lateinit var tenantIdProvider: TenancyIdProvider
+
+}
+
+
+
+
+
+1
+A public class with a no argument constructor annotated with @Singleton
and extending from OciFunction
+
+
+2
+You can use the @Inject
annotation to inject SDK components
+
+
+
+
+
Once you have defined the function, define a public method that is the function handler, for example:
+
+
+
+
@ReflectiveAccess
+public List<String> handleRequest() {
+
+ GetNamespaceRequest getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(tenantIdProvider.getTenancyId()).build();
+ String namespace = objectStorageClient.getNamespace(getNamespaceRequest).getValue();
+
+ ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder()
+ .namespaceName(namespace)
+ .compartmentId(tenantIdProvider.getTenancyId())
+ .build();
+
+ return objectStorageClient.listBuckets(listBucketsRequest)
+ .getItems().stream().map(BucketSummary::getName)
+ .collect(Collectors.toList());
+}
+
+
+
+
+
@ReflectiveAccess
+List<String> handleRequest() {
+
+ GetNamespaceRequest getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(tenantIdProvider.tenancyId).build()
+ String namespace = objectStorageClient.getNamespace(getNamespaceRequest).value
+
+ ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder()
+ .namespaceName(namespace)
+ .compartmentId(tenantIdProvider.tenancyId)
+ .build()
+
+ return objectStorageClient.listBuckets(listBucketsRequest).items*.name
+}
+
+
+
+
+
@ReflectiveAccess
+fun handleRequest(): List<String> {
+
+ val getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(tenantIdProvider.tenancyId).build()
+ val namespace = objectStorageClient.getNamespace(getNamespaceRequest).value
+
+ val listBucketsRequest = ListBucketsRequest.builder()
+ .namespaceName(namespace)
+ .compartmentId(tenantIdProvider.tenancyId)
+ .build()
+
+ return objectStorageClient.listBuckets(listBucketsRequest)
+ .items.map { it.name }
+
+
+
+
The above example uses the Object Storage API to list the available buckets.
+
+
+
+
Docker Build
+
+
To build the Oracle Function with Gradle, run the ./gradlew dockerBuild
command or to build the GraalVM native image version run ./gradlew dockerBuildNative
.
+
+
+
To build the Oracle Function with Maven, run the ./mvnw package -Dpackaging=docker
command or to build the GraalVM native image version run ./mvnw package -Dpackaging=docker-native
.
+
+
+
+
Deploy
+
+
To deploy the Oracle Function as a Java function with Gradle, run ./gradlew dockerPush
to push the function to Oracle Container Registry, or to deploy the GraalVM native image version run ./gradlew dockerPushNative
.
+
+
+
To deploy the Oracle Function as a Java function with Maven, run ./mvnw deploy -Dpackaging=docker
to push the function to Oracle Container Registry, or to deploy the GraalVM native image version run ./mvnw deploy -Dpackaging=docker-native
.
+
+
+
Note that these commands only publish the function to Oracle Container Registry. To make the function invokable, use the Oracle Cloud UI to create the function, or use the fn
command line application to create the function from the container image:
+
+
+
Creating a Function from a Container Image
+
+
$ fn create function myapp myfunction [REGION].ocir.io/[TENANCY]/[REPOSITORY/[FUNCTION_NAME]:[FUNCTION_VERSION]
+
+## For example:
+$ fn create function myapp myfunction us-ashburn-1.ocir.io/mytenancy/myrepository/myfunction:1.0.0
+
+
+
+
+
+
+
+
+
+For Java functions that do not use Native Image you will need to pass --memory 512 --timeout 120
as Java functions occupy more memory that native functions.
+
+
+
+
+
+
If you publish a new image using ./gradlew dockerPush
or ./gradlew dockerPushNative
(or with Maven using ./mvnw deploy -Dpackaging=docker
or ./mvnw deploy -Dpackaging=docker-native
) for an existing function you can also update it with fn update
:
+
+
+
Updating an existing Function from a Container Image
+
+
$ fn update function myapp myfunction [REGION].ocir.io/[TENANCY]/[REPOSITORY/[FUNCTION_NAME]:[FUNCTION_VERSION]
+
+
+
+
+
+
10 Oracle Functions HTTP (Serverless)
+
+
+
+ Improve this doc
+
+
+
+
+
+
The micronaut-oraclecloud-function-http
module gives you the ability to write HTTP API Gateway function handlers that delegate to regular Micronaut controllers.
+
+
+
Since Micronaut 2.1 you can create HTTP functions with a Gradle build using the command line or via Micronaut Launch :
+
+
+
Creating a new Function with the CLI
+
+
$ mn create-app myfunction --features oracle-function
+
+
+
+
Since Micronaut 2.2 you can create HTTP functions with a Maven build using the command line or via Micronaut Launch :
+
+
+
Creating a new Function with the CLI
+
+
$ mn create-app myfunction --build=maven --features oracle-function
+
+
+
+
You can then create your controller just as you would a normal Micronaut controller.
+
+
+
+
import com.oracle.bmc.objectstorage.ObjectStorage;
+import com.oracle.bmc.objectstorage.model.BucketSummary;
+import com.oracle.bmc.objectstorage.model.CreateBucketDetails;
+import com.oracle.bmc.objectstorage.model.ListObjects;
+import com.oracle.bmc.objectstorage.model.ObjectSummary;
+import com.oracle.bmc.objectstorage.requests.CreateBucketRequest;
+import com.oracle.bmc.objectstorage.requests.DeleteBucketRequest;
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest;
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest;
+import com.oracle.bmc.objectstorage.requests.ListObjectsRequest;
+import io.micronaut.core.annotation.Nullable;
+import io.micronaut.core.util.CollectionUtils;
+import io.micronaut.http.MediaType;
+import io.micronaut.http.annotation.Controller;
+import io.micronaut.http.annotation.Delete;
+import io.micronaut.http.annotation.Get;
+import io.micronaut.http.annotation.PathVariable;
+import io.micronaut.http.annotation.Post;
+import io.micronaut.http.annotation.QueryValue;
+import io.micronaut.oraclecloud.core.TenancyIdProvider;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+@Controller("/os")
+public class BucketController {
+
+ private final ObjectStorage objectStorage;
+ private final TenancyIdProvider tenancyIdProvider;
+
+ public BucketController(ObjectStorage objectStorage,
+ TenancyIdProvider tenancyIdProvider) { // (1)
+ this.objectStorage = objectStorage;
+ this.tenancyIdProvider = tenancyIdProvider;
+ }
+}
+
+
+
+
+
import com.oracle.bmc.objectstorage.ObjectStorage
+import com.oracle.bmc.objectstorage.model.CreateBucketDetails
+import com.oracle.bmc.objectstorage.model.ListObjects
+import com.oracle.bmc.objectstorage.requests.CreateBucketRequest
+import com.oracle.bmc.objectstorage.requests.DeleteBucketRequest
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest
+import com.oracle.bmc.objectstorage.requests.ListObjectsRequest
+import groovy.transform.CompileStatic
+import io.micronaut.core.annotation.Nullable
+import io.micronaut.http.MediaType
+import io.micronaut.http.annotation.Controller
+import io.micronaut.http.annotation.Delete
+import io.micronaut.http.annotation.Get
+import io.micronaut.http.annotation.PathVariable
+import io.micronaut.http.annotation.Post
+import io.micronaut.http.annotation.QueryValue
+import io.micronaut.oraclecloud.core.TenancyIdProvider
+
+@CompileStatic
+@Controller('/os')
+class BucketController {
+
+ private final ObjectStorage objectStorage
+ private final TenancyIdProvider tenancyIdProvider
+
+ BucketController(ObjectStorage objectStorage,
+ TenancyIdProvider tenancyIdProvider) { // (1)
+ this.objectStorage = objectStorage
+ this.tenancyIdProvider = tenancyIdProvider
+ }
+}
+
+
+
+
+
import com.oracle.bmc.objectstorage.ObjectStorage
+import com.oracle.bmc.objectstorage.model.CreateBucketDetails
+import com.oracle.bmc.objectstorage.requests.CreateBucketRequest
+import com.oracle.bmc.objectstorage.requests.DeleteBucketRequest
+import com.oracle.bmc.objectstorage.requests.GetNamespaceRequest
+import com.oracle.bmc.objectstorage.requests.ListBucketsRequest
+import com.oracle.bmc.objectstorage.requests.ListObjectsRequest
+import io.micronaut.core.annotation.Nullable
+import io.micronaut.http.MediaType
+import io.micronaut.http.annotation.Controller
+import io.micronaut.http.annotation.Delete
+import io.micronaut.http.annotation.Get
+import io.micronaut.http.annotation.PathVariable
+import io.micronaut.http.annotation.Post
+import io.micronaut.http.annotation.QueryValue
+import io.micronaut.oraclecloud.core.TenancyIdProvider
+import java.util.Optional
+
+@Controller("/os")
+class BucketController(private val objectStorage: ObjectStorage,
+ private val tenancyIdProvider: TenancyIdProvider) { // (1)
+}
+
+
+
+
+
+1
+This example uses the micronaut-oraclecloud-sdk
module to perform Object Storage operations, so the ObjectStorage
client and TenancyIdProvider
are injected.
+
+
+
+
+
Next, add a controller method to list all of the buckets in a compartment:
+
+
+
+
@Get("/buckets{/compartmentId}")
+public List<String> listBuckets(@PathVariable @Nullable String compartmentId) {
+
+ String compartmentOcid = compartmentId != null ? compartmentId : tenancyIdProvider.getTenancyId();
+
+ GetNamespaceRequest getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(compartmentOcid).build();
+ String namespace = objectStorage.getNamespace(getNamespaceRequest).getValue();
+
+ ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder()
+ .namespaceName(namespace)
+ .compartmentId(compartmentOcid)
+ .build();
+
+ return objectStorage.listBuckets(listBucketsRequest)
+ .getItems()
+ .stream()
+ .map(BucketSummary::getName)
+ .collect(Collectors.toList());
+}
+
+
+
+
+
@Get('/buckets{/compartmentId}')
+List<String> listBuckets(@PathVariable @Nullable String compartmentId) {
+
+ String compartmentOcid = compartmentId ?: tenancyIdProvider.tenancyId
+
+ GetNamespaceRequest getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(compartmentOcid).build()
+ String namespace = objectStorage.getNamespace(getNamespaceRequest).value
+
+ ListBucketsRequest listBucketsRequest = ListBucketsRequest.builder()
+ .namespaceName(namespace)
+ .compartmentId(compartmentOcid)
+ .build()
+
+ return objectStorage.listBuckets(listBucketsRequest).items*.name
+}
+
+
+
+
+
@Get("/buckets{/compartmentId}")
+fun listBuckets(@PathVariable @Nullable compartmentId: String?): List<String> {
+ val compartmentOcid = compartmentId ?: tenancyIdProvider.tenancyId!!
+ val getNamespaceRequest = GetNamespaceRequest.builder()
+ .compartmentId(compartmentOcid).build()
+ val namespace = objectStorage.getNamespace(getNamespaceRequest).value
+ val listBucketsRequest = ListBucketsRequest.builder()
+ .namespaceName(namespace)
+ .compartmentId(compartmentOcid)
+ .build()
+ return objectStorage.listBuckets(listBucketsRequest).items
+ .map { it.name }
+}
+
+
+
+
Docker Build
+
+
To build the Oracle Function with Gradle, run the ./gradlew dockerBuild
command or to build the native version run ./gradlew dockerBuildNative
.
+
+
+
To build the Oracle Function with Maven, run the ./mvnw package -Dpackaging=docker
command or to build the native version run ./mvnw package -Dpackaging=docker-native
.
+
+
+
+
+
API Gateway
+
+
Once you have deployed your function you’ll need to create an API Gateway to route requests to your serverless deployment. The Micronaut router will call the proper controller function based on the incoming HTTP Request Method and the path.
+
+
+
First, create an API Gateway by selecting 'Developer Services', then 'API Gateway' from the Oracle Cloud console dashboard.
+
+
+
+
+
+
+
+
Click 'Create Gateway'.
+
+
+
+
+
+
+
+
Enter a name for the gateway, choose the compartment it is stored in, and the network and subnet.
+
+
+
+
+
+
+
+
When the gateway is Active
, click Deployments
, then Create Deployment
.
+
+
+
+
+
+
+
+
Provide a name for the deployment and enter a "Path Prefix". If necessary, configure any Authentication, CORS, or Rate Limiting and click Next
.
+
+
+
+
+
+
+
+
+The path prefix must match the path you used in your controller (e.g. @Controller("/os")
).
+
+
+
+
+
+
+
+
+
+
+
Enter route information.
+
+
+
+
+Enter /{path*}
as the Path. This will capture all incoming requests and the Micronaut router will match the incoming path and request method with the proper controller method.
+
+
+Choose ANY
for methods. Optionally, choose the necessary methods individually.
+
+
+Choose 'Oracle Functions' as the type.
+
+
+Choose the appropriate Oracle Functions application.
+
+
+Choose the function name that you used. This can be found in your function’s func.yaml
file.
+
+
+
+
+
+
+
+
+
+
Click 'Next', then review the deployment details and click 'Create'.
+
+
+
+
+
+
+
+
Your new deployment will be listed in 'Creating' state.
+
+
+
+
+
+
+
+
When your new deployment becomes 'Active', click the deployment to view the deployment details. Copy the 'Endpoint' - this is the base URL that you’ll use for your function invocations.
+
+
+
+
+
+
+
+
Test your functions by appending the proper controller path and one of your controller endpoints.
+
+
+
+
+
+
+
+
+
+
11 Oracle Autonomous Database
+
+
+
+ Improve this doc
+
+
+
+
+
+
Oracle Cloud Autonomous Database connection information and credentials are stored in the Oracle Wallet .
+
+
+
Micronaut can automatically generate and download the Wallet and configure the data source.
+
+
+
First you need the correct version of the Oracle Database driver and required modules. To ensure you are using the right version apply the 21.1.0.0 or above Oracle Database BOM with Gradle:
+
+
+
+
implementation platform("com.oracle.database.jdbc:ojdbc-bom:21.1.0.0")
+
+
+
+
+
+
<dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.oracle.database.jdbc</groupId>
+ <artifactId>ojdbc-bom</artifactId>
+ <version>21.1.0.0</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+
+
+
Secondly you need to add a dependency on the micronaut-oraclecloud-atp
module:
+
+
+
+
+
+
runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-atp")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-atp</artifactId>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
+
Then simply add a dependency to one of the Micronaut connection pool implementations.
+
+
+
+
+
+
+
+
+Automated configuration is currently supported only for the HikariCP and UCP connection pool.
+
+
+
+
+
+
+
+
+
runtimeOnly("io.micronaut.sql:micronaut-jdbc-ucp")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.sql</groupId>
+ <artifactId>micronaut-jdbc-ucp</artifactId>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
+
+
+
+
runtimeOnly("io.micronaut.sql:micronaut-jdbc-hikari")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.sql</groupId>
+ <artifactId>micronaut-jdbc-hikari</artifactId>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
+
+
+
+
+
+Note that micronaut-oraclecloud-atp
module is compatible with Java 11+.
+
+
+
+
+
+
To use automated data source configuration from the Wallet, provide a configuration similar to the following:
+
+
+
+
+
+
datasources.default.ocid=ocid1.autonomousdatabase.oc1.....
+datasources.default.walletPassword=micronaut.1
+datasources.default.username=foo
+datasources.default.password=bar
+
+
+
+
+
datasources:
+ default:
+ ocid: ocid1.autonomousdatabase.oc1.....
+ walletPassword: micronaut.1
+ username: foo
+ password: bar
+
+
+
+
+
[datasources]
+ [datasources.default]
+ ocid="ocid1.autonomousdatabase.oc1....."
+ walletPassword="micronaut.1"
+ username="foo"
+ password="bar"
+
+
+
+
+
datasources {
+ 'default' {
+ ocid = "ocid1.autonomousdatabase.oc1....."
+ walletPassword = "micronaut.1"
+ username = "foo"
+ password = "bar"
+ }
+}
+
+
+
+
+
{
+ datasources {
+ default {
+ ocid = "ocid1.autonomousdatabase.oc1....."
+ walletPassword = "micronaut.1"
+ username = "foo"
+ password = "bar"
+ }
+ }
+}
+
+
+
+
+
{
+ "datasources": {
+ "default": {
+ "ocid": "ocid1.autonomousdatabase.oc1.....",
+ "walletPassword": "micronaut.1",
+ "username": "foo",
+ "password": "bar"
+ }
+ }
+}
+
+
+
+
+
+
+
+ocid
specifies the autonomous database id
+
+
+walletPassword
encrypts the keys inside the wallet (at least eight characters long, includes at least one letter and either one numeric character or one special character)
+
+
+specify the database username
and password
+
+
+
+
+
+
+
+
+
+
+The username
and password
are not automatically generated and must be created in advance.
+
+
+
+
+
+
Module uses <db_name>_high
as a default service alias. This can be overriden with the serviceAlias
property.
+
+
+
+
+
12 Micrometer Support For Oracle Monitoring
+
+
+
+ Improve this doc
+
+
+
+
+
+
The OCI Monitoring service enables you to actively and passively monitor your cloud resources using the Metrics and Alarms features.
+
+
+
+
To begin, first add the standard dependencies for the Micronaut Micrometer module per the documentation .
+
+
+
Next, add a dependency on the micronaut-oraclecloud-micrometer
module:
+
+
+
+
+
+
runtimeOnly("io.micronaut.oraclecloud:micronaut-oraclecloud-micrometer")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-micrometer</artifactId>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
Don’t forget to add a dependency for the OCI SDK Monitoring module:
+
+
+
+
+
+
implementation("com.oracle.oci.sdk:oci-java-sdk-monitoring")
+
+
+
+
+
<dependency>
+ <groupId>com.oracle.oci.sdk</groupId>
+ <artifactId>oci-java-sdk-monitoring</artifactId>
+</dependency>
+
+
+
+
+
+
You can configure this Micrometer reporter using micronaut.metrics.export.oraclecloud
. The most commonly changed configuration properties are listed below:
+
+
+
+
+
+
+
+
+Name
+Description
+
+
+enabled
+Whether to enable the reporter. Could disable to local dev for example. Default: true
.
+
+
+applicationName
+Application name used as a common dimension. Default: ${micronaut.application.name}
.
+
+
+namespace
+Metrics namespace. Required.
+
+
+resourceGroup
+Metrics resource group.
+
+
+compartmentId
+Oracle Cloud compartment id. Default: the Oracle SDK tenantId.
+
+
+step
+How frequently to report metrics. Default: PT1M
(1 min). See java.time.Duration#parse(CharSequence)
.
+
+
+batchSize
+How many metrics send in one batch. Default: 50
(Max allowed number of metrics for current API).
+
+
+descriptions
+Boolean if meter descriptions should be sent to InfluxDB. Turn this off to minimize the amount of data sent on each scrape. Default: true
+
+
+
+
+
Example Oracle Cloud Config
+
+
+
+
micronaut.metrics.enabled=true
+micronaut.metrics.export.oraclecloud.enabled=true
+micronaut.metrics.export.oraclecloud.namespace=test
+micronaut.metrics.export.oraclecloud.resourceGroup=foo
+
+
+
+
+
micronaut:
+ metrics:
+ enabled: true
+ export:
+ oraclecloud:
+ enabled: true
+ namespace: test
+ resourceGroup: foo
+
+
+
+
+
[micronaut]
+ [micronaut.metrics]
+ enabled=true
+ [micronaut.metrics.export]
+ [micronaut.metrics.export.oraclecloud]
+ enabled=true
+ namespace="test"
+ resourceGroup="foo"
+
+
+
+
+
micronaut {
+ metrics {
+ enabled = true
+ export {
+ oraclecloud {
+ enabled = true
+ namespace = "test"
+ resourceGroup = "foo"
+ }
+ }
+ }
+}
+
+
+
+
+
{
+ micronaut {
+ metrics {
+ enabled = true
+ export {
+ oraclecloud {
+ enabled = true
+ namespace = "test"
+ resourceGroup = "foo"
+ }
+ }
+ }
+ }
+}
+
+
+
+
+
{
+ "micronaut": {
+ "metrics": {
+ "enabled": true,
+ "export": {
+ "oraclecloud": {
+ "enabled": true,
+ "namespace": "test",
+ "resourceGroup": "foo"
+ }
+ }
+ }
+ }
+}
+
+
+
+
+
+
+
13 OCI Application Performance Monitoring as a Tracing Endpoint
+
+
+
+ Improve this doc
+
+
+
+
+
+
You can use OCI Application Performance Monitoring (APM) as a drop-in replacement for Tracing in your Micronaut Applications.
+
+
+
OCI APM is a suite of services that give you insight into your applications and servers running in OCI via a small agent that runs on the machine and aggregates and reports metric data.
+It’s a nice service to monitor and diagnose performance issues.
+It also includes a Trace Explorer that is Zipkin (and Jaeger) compatible which we can use from our Micronaut applications (even without taking full advantage of APM via the Java Agent).
+
+
+
Add Dependencies
+
+
Micronaut Management
+
+
+
+
implementation("io.micronaut:micronaut-management")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut</groupId>
+ <artifactId>micronaut-management</artifactId>
+</dependency>
+
+
+
+
+
Micronaut Tracing
+
+
+
+
implementation("io.micronaut:micronaut-tracing")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut</groupId>
+ <artifactId>micronaut-tracing</artifactId>
+</dependency>
+
+
+
+
+
Brave Instrumentation
+
+
+
+
runtimeOnly("io.zipkin.brave:brave-instrumentation-http")
+
+
+
+
+
<dependency>
+ <groupId>io.zipkin.brave</groupId>
+ <artifactId>brave-instrumentation-http</artifactId>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
Zipkin Reporter
+
+
+
+
runtimeOnly("io.zipkin.reporter2:zipkin-reporter")
+
+
+
+
+
<dependency>
+ <groupId>io.zipkin.reporter2</groupId>
+ <artifactId>zipkin-reporter</artifactId>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
Open Tracing
+
+
+
+
implementation("io.opentracing.brave:brave-opentracing")
+
+
+
+
+
<dependency>
+ <groupId>io.opentracing.brave</groupId>
+ <artifactId>brave-opentracing</artifactId>
+</dependency>
+
+
+
+
+
+
Create APM Domain
+
+
Now, create an APM domain in the OCI console. We’ll share a single domain to group and trace all of our services.
+That may seem a bit confusing given the name "domain", but think of it more like a "project group" or an "environment" (you may want to create separate domains for QA, Test, Prod, etc.).
+Search for Application Performance Monitoring
and click Administration
.
+
+
+
+
+
+
+
+
In the left sidebar, click APM Domains
.
+
+
+
+
+
+
+
+
Click Create APM Domain
.
+
+
+
+
+
+
+
+
Name it, choose a compartment, and enter a description.
+
+
+
+
+
+
+
+
Once the domain is created, view the domain details.
+Here you’ll need to grab a few values, so copy the data upload endpoint (#1), private key (#2), and public key (#3).
+
+
+
+
+
+
+
+
Now we have what we need to construct a URL to plug in to our application configuration files.
+The Collector URL
format requires us to construct a URL by using the data upload endpoint
as our base URL and generate the path based on some choices including values from our private or public key.
+The format is documented here .
+Once we’ve constructed the URL path, we can add it to our application-oraclecloud
configuration file.
+
+
+
Example Oracle Cloud Config
+
+
+
+
micronaut.application.name=demo2
+tracing.zipkin.enabled=true
+tracing.zipkin.sampler.probability=1
+tracing.zipkin.http.url=https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com
+tracing.zipkin.http.path=/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]
+tracing.zipkin.supportsJoin=false
+
+
+
+
+
micronaut:
+ application:
+ name: demo2
+tracing:
+ zipkin:
+ enabled: true
+ sampler:
+ probability: 1
+ http:
+ url: https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com
+ path: /20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]
+ supportsJoin: false
+
+
+
+
+
[micronaut]
+ [micronaut.application]
+ name="demo2"
+[tracing]
+ [tracing.zipkin]
+ enabled=true
+ supportsJoin=false
+ [tracing.zipkin.sampler]
+ probability=1
+ [tracing.zipkin.http]
+ url="https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com"
+ path="/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]"
+
+
+
+
+
micronaut {
+ application {
+ name = "demo2"
+ }
+}
+tracing {
+ zipkin {
+ enabled = true
+ sampler {
+ probability = 1
+ }
+ http {
+ url = "https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com"
+ path = "/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]"
+ }
+ supportsJoin = false
+ }
+}
+
+
+
+
+
{
+ micronaut {
+ application {
+ name = "demo2"
+ }
+ }
+ tracing {
+ zipkin {
+ enabled = true
+ sampler {
+ probability = 1
+ }
+ http {
+ url = "https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com"
+ path = "/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]"
+ }
+ supportsJoin = false
+ }
+ }
+}
+
+
+
+
+
{
+ "micronaut": {
+ "application": {
+ "name": "demo2"
+ }
+ },
+ "tracing": {
+ "zipkin": {
+ "enabled": true,
+ "sampler": {
+ "probability": 1
+ },
+ "http": {
+ "url": "https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com",
+ "path": "/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]"
+ },
+ "supportsJoin": false
+ }
+ }
+}
+
+
+
+
+
+
If you want to keep these values out of the config file, you could set them as environment variables on the server like so:
+
+
+
Set ENV vars
+
+
export TRACING_ZIPKIN_HTTP_URL="https://[redacted].apm-agt.us-phoenix-1.oci.oraclecloud.com" export TRACING_ZIPKIN_HTTP_PATH="/20200101/observations/public-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=[public key]"
+
+
+
+
Your application will now send trace information to APM.
+
+
+
+
View Trace Data in APM
+
+
Go to the APM Trace Explorer in the OCI console.
+
+
+
+
+
+
+
+
Choose your APM domain in the top right and the time period that you’d like to view/search.
+
+
+
+
+
+
+
+
Choose one of the available pre-configured queries across the top.
+
+
+
+
+
+
+
+
View traces and spans:
+
+
+
+
+
+
+
+
Click a trace to view detailed info.
+
+
+
+
+
+
+
+
Click a span inside a trace to view detailed info and tagged values.
+
+
+
+
+
+
+
+
+
+
+
+
14 OCI Logging service
+
+
+
+ Improve this doc
+
+
+
+
+
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-logging")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-logging</artifactId>
+</dependency>
+
+
+
+
+
Create Oracle Cloud Custom Log
+
+
If you don’t have already a Log group you should create it.
+
+
+
+
+
+
+
+
+
Click on the "Create Custom log".
+
+
+
+
+
+
+
+
Choose name of your log and go to next step.
+
+
+
+
+
+
+
+
Choose "Add Configuration later" and finish the wizard.
+
+
+
+
+
+
+
+
Copy the OCID, you will need it later.
+
+
+
+
+
+
+
+
+
Logback configuration
+
+
Edit a src/main/resources/logback.xml
file and make it look like this:
+
+
+
src/main/resources/logback.xml
+
+
<configuration>
+
+ <appender name="ORACLE" class="io.micronaut.oraclecloud.logging.OracleCloudAppender">
+ <logId>ocid1.log.oc1.iad...</logId>
+ <!-- <blackListLoggerName>example.app.Application</blackListLoggerName> -->
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+ <layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
+ <jsonFormatter class="io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter" />
+ </layout>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="ORACLE" />
+ </root>
+</configuration>
+
+
+
+
In the logId
field of the OracleCloudAppender
put your log OCID.
+You can customize your JsonLayout with additional parameters the are available on official docs of Logback’s JsonLayout .
+
+
+
The OracleCloudAppender
supports blacklisting the loggers by specifying the logger name. That might come handy if you want to use level=DEBUG
or level=TRACE
for the root logger level.
+
+
+Table 1. Configurable OracleCloudAppender Appender Properties
+
+
+
+
+
+
+
+
+
+Property
+Type
+Required
+Default value
+Description
+
+
+
+
+logId
+String
+true
+/
+the Ocid of the log
+
+
+type
+String
+false
+host-name.application-name
+the type of the log
+
+
+subject
+String
+false
+application-name
+the subject of the log
+
+
+source
+String
+false
+host-name
+the source of the log
+
+
+publishPeriod
+Integer
+false
+100
+Time in ms between two batch publishing of logs
+
+
+maxBatchSize
+Integer
+false
+128
+Time maximum number of log lines that will be sent in one batch request
+
+
+queueSize
+Integer
+false
+128
+The size of publishing log queue
+
+
+blackListLoggerName
+List
+false
+empty
+List of logger names that won’t be published
+
+
+
+
+
+
+
+
+
+
+The logId
is also configurable through the application
and application-oraclecloud
configuration files with the oci.logging.logId
key, and it will be considered as the prime source of it.
+
+
+
+
+
+
+
OpenTelemetry and logging
+
+
If you are using the OpenTelemetry for tracing you can include traceId
and spanId
fields into your logs. First you have to add next dependency into your project:
+
+
+
+
+
+
runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-logback-mdc-1.0:1.16.0-alpha")
+
+
+
+
+
<dependency>
+ <groupId>io.opentelemetry.instrumentation</groupId>
+ <artifactId>opentelemetry-logback-mdc-1.0</artifactId>
+ <version>1.16.0-alpha</version>
+ <scope>runtime</scope>
+</dependency>
+
+
+
+
+
+
src/main/resources/logback.xml
+
+
<configuration>
+
+ <appender name="ORACLE" class="io.micronaut.oraclecloud.logging.OracleCloudAppender">
+ <logId>ocid1.log.oc1.iad...</logId>
+ <!-- <blackListLoggerName>example.app.Application</blackListLoggerName> -->
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+ <layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
+ <jsonFormatter class="io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter" />
+ </layout>
+ </encoder>
+ </appender>
+
+ <appender name="OTEL" class="io.opentelemetry.instrumentation.logback.v1_0.OpenTelemetryAppender">
+ <appender-ref ref="ORACLE" />
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="OTEL" />
+ </root>
+</configuration>
+
+
+
+
+
Emergency Appender
+
+
Since this appender is queuing up log messages and then writing them remotely, there are a number of situations which might result in log messages not getting remoted correctly. To address such scenarios you can configure the emergency appender to preserve those messages.
+
+
+
Inside your src/main/resources/logback.xml
you should add a new appender, in the example it is STDOUT
. Inside the OracleCloudAppender
add appender-ref
that points to the new crated appender.
+
+
+
src/main/resources/logback.xml
+
+
<configuration>
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <withJansi>true</withJansi>
+ <!-- encoders are assigned the type
+ ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+ <encoder>
+ <pattern>%cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="ORACLE" class="io.micronaut.oraclecloud.logging.OracleCloudAppender">
+ <appender-ref ref="STDOUT"/>
+ <logId>ocid1.log.oc1.iad.amaaaaaabnqp5kqao2yjg6xymuql7w25otmcoylqgnqymwsh3gaxm2j3qgtza</logId>
+ <blackListLoggerName>org.apache.http.impl.conn.PoolingHttpClientConnectionManager</blackListLoggerName>
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+ <layout class="ch.qos.logback.contrib.json.classic.JsonLayout">
+ <jsonFormatter class="io.micronaut.oraclecloud.logging.OracleCloudJsonFormatter" />
+ </layout>
+ </encoder>
+ </appender>
+
+ <root level="INFO">
+ <appender-ref ref="ORACLE" />
+ </root>
+</configuration>
+
+
+
+
+
Browsing the logs
+
+
When you have completed a setup, you can browse your logs on the Oracle Log Portal . Choose the log that you have created. In the "Explore Log" section you should be able to see your service logs.
+
+
+
+
+
+
+
+
If you have any troubles with configuring the Oracle Appender you can try to add <configuration debug="false">
into your logback configuration.
+
+
+
+
15 Secure Distributed Configuration with Oracle Cloud Vault
+
+
+
+ Improve this doc
+
+
+
+
+
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-vault")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-vault</artifactId>
+</dependency>
+
+
+
+
+
Then create a bootstrap
configuration file in src/main/resources/
and ensure your Authentication configuration is present in this file so you can authenticate with one of the supported mechanisms (config, instance principal, resource principal etc.).
+
+
+
Then add the following to the bootstrap
configuration file to specify Vault support:
+
+
+
+
+
+
micronaut.application.name=myapp
+micronaut.config-client.enabled=true
+oci.vault.config.enabled=true
+oci.vault.vaults[0].ocid=ocid1.vault.oc1.phx...
+oci.vault.vaults[0].compartment-ocid=ocid1.compartment.oc1...
+
+
+
+
+
micronaut:
+ application:
+ name: myapp
+ config-client:
+ enabled: true
+oci:
+ vault:
+ config:
+ enabled: true
+ vaults:
+ - ocid: ocid1.vault.oc1.phx...
+ compartment-ocid: ocid1.compartment.oc1...
+
+
+
+
+
[micronaut]
+ [micronaut.application]
+ name="myapp"
+ [micronaut.config-client]
+ enabled=true
+[oci]
+ [oci.vault]
+ [oci.vault.config]
+ enabled=true
+ [[oci.vault.vaults]]
+ ocid="ocid1.vault.oc1.phx..."
+ compartment-ocid="ocid1.compartment.oc1..."
+
+
+
+
+
micronaut {
+ application {
+ name = "myapp"
+ }
+ configClient {
+ enabled = true
+ }
+}
+oci {
+ vault {
+ config {
+ enabled = true
+ }
+ vaults = [{
+ ocid = "ocid1.vault.oc1.phx..."
+ compartmentOcid = "ocid1.compartment.oc1..."
+ }]
+ }
+}
+
+
+
+
+
{
+ micronaut {
+ application {
+ name = "myapp"
+ }
+ config-client {
+ enabled = true
+ }
+ }
+ oci {
+ vault {
+ config {
+ enabled = true
+ }
+ vaults = [{
+ ocid = "ocid1.vault.oc1.phx..."
+ compartment-ocid = "ocid1.compartment.oc1..."
+ }]
+ }
+ }
+}
+
+
+
+
+
{
+ "micronaut": {
+ "application": {
+ "name": "myapp"
+ },
+ "config-client": {
+ "enabled": true
+ }
+ },
+ "oci": {
+ "vault": {
+ "config": {
+ "enabled": true
+ },
+ "vaults": [{
+ "ocid": "ocid1.vault.oc1.phx...",
+ "compartment-ocid": "ocid1.compartment.oc1..."
+ }]
+ }
+ }
+}
+
+
+
+
+
+
One or many Vaults can be configured and each should include a ocid
and compartment-ocid
configuration entry. Note that the compartment-ocid
is not the vault compartment but a compartment from where the secrets will be fetched.
+
+
+
+
+
+
+
+
+If you only want this configuration to be active in the Oracle Cloud environment but not locally name the configuration file bootstrap-oraclecloud
(with the appropriate extension, such as .yml).
+
+
+
+
+
+
You’re now ready to go! You can access the config variables in a few different ways. If you create a secret with the name of SECRET_ONE
in your Oracle Cloud Vault, then it will be available to use in your application like any standard configuration variable:
+
+
+
+
@Value("${SECRET_ONE}") String secretOne;
+
+
+
+
You can also use @Property
:
+
+
+
+
@Property(name = "SECRET_ONE") String secretOne;
+
+
+
+
Vault retrieved values are always String
, but you can use @ConfigurationProperties` on a bean to provide properly typed configuration variables.
+
+
+
So if you were to create secrets in your Oracle Cloud Vault like so:
+
+
+
+
+
+
+
+
+Name
+Value
+
+
+
+
+MY_SECRETS_ONE
+Value One
+
+
+MY_SECRETS_TWO
+value two
+
+
+MY_SECRETS_THREE
+true
+
+
+MY_SECRETS_FOUR
+42
+
+
+MY_SECRETS_FIVE
+3.16
+
+
+
+
+
You could add a config bean, like so:
+
+
+
+
@ConfigurationProperties("my-secrets")
+public class Config {
+ private String one;
+ private String two;
+ private boolean three;
+ private int four;
+ private Double five;
+
+ /* getters/setters removed for brevity */
+}
+
+
+
+
Another option is to inject your variables into your configuration files which gives you the ability to store things like database passwords and API keys in your vault:
+
+
+
+
+
+
datasources.default.password=${DB_PASSWORD}
+
+
+
+
+
datasources:
+ default:
+ password: ${DB_PASSWORD}
+
+
+
+
+
[datasources]
+ [datasources.default]
+ password="${DB_PASSWORD}"
+
+
+
+
+
datasources {
+ 'default' {
+ password = "${DB_PASSWORD}"
+ }
+}
+
+
+
+
+
{
+ datasources {
+ default {
+ password = "${DB_PASSWORD}"
+ }
+ }
+}
+
+
+
+
+
{
+ "datasources": {
+ "default": {
+ "password": "${DB_PASSWORD}"
+ }
+ }
+}
+
+
+
+
+
+
+
16 Oracle Cloud Storage Support
+
+
+
+ Improve this doc
+
+
+
+
+
+
Micronaut provides a high-level, uniform object storage API that works across the major cloud providers: Micronaut Object Storage .
+
+
+
To get started, select the object-storage-oracle-cloud
feature in Micronaut Launch , or add the following dependency:
+
+
+
+
+
+
implementation("io.micronaut.objectstorage:micronaut-object-storage-oracle-cloud")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.objectstorage</groupId>
+ <artifactId>micronaut-object-storage-oracle-cloud</artifactId>
+</dependency>
+
+
+
+
+
+
+
17 OCI Certificate SSL Support
+
+
+
+ Improve this doc
+
+
+
+
+
+
To start using Oracle Cloud Certificates service first create certificate on OCI platform, add the following dependency to your project:
+
+
+
+
+
+
implementation("io.micronaut.oraclecloud:micronaut-oraclecloud-certificates")
+
+
+
+
+
<dependency>
+ <groupId>io.micronaut.oraclecloud</groupId>
+ <artifactId>micronaut-oraclecloud-certificates</artifactId>
+</dependency>
+
+
+
+
+
Copy ocid of your certificate:
+
+
+
+
+
+
+
+
+
+
+
+
+
+Before you create Certificate make sure that you have created required polices .
+
+
+
+
+
+
Add the following to the application
configuration file to enable ssl and Oracle Cloud Certificate support:
+
+
+
+
+
+
micronaut.server.ssl.enabled=true
+oci.certificates.enabled=true
+oci.certificates.certificate-id=ocid1.certificate.oc1.....
+
+
+
+
+
micronaut:
+ server:
+ ssl:
+ enabled : true
+oci:
+ certificates:
+ enabled: true
+ certificate-id: ocid1.certificate.oc1.....
+
+
+
+
+
[micronaut]
+ [micronaut.server]
+ [micronaut.server.ssl]
+ enabled=true
+[oci]
+ [oci.certificates]
+ enabled=true
+ certificate-id="ocid1.certificate.oc1....."
+
+
+
+
+
micronaut {
+ server {
+ ssl {
+ enabled = true
+ }
+ }
+}
+oci {
+ certificates {
+ enabled = true
+ certificateId = "ocid1.certificate.oc1....."
+ }
+}
+
+
+
+
+
{
+ micronaut {
+ server {
+ ssl {
+ enabled = true
+ }
+ }
+ }
+ oci {
+ certificates {
+ enabled = true
+ certificate-id = "ocid1.certificate.oc1....."
+ }
+ }
+}
+
+
+
+
+
{
+ "micronaut": {
+ "server": {
+ "ssl": {
+ "enabled": true
+ }
+ }
+ },
+ "oci": {
+ "certificates": {
+ "enabled": true,
+ "certificate-id": "ocid1.certificate.oc1....."
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+If you only want this configuration to be active in the Oracle Cloud environment but not locally name the configuration file application-oraclecloud
(with the appropriate extension, such as .yml).
+
+
+
+
+
+
In next table you can find useful parameters to further customize integration with Oracle Cloud Certificates:
+
+
+Table 1. Configurable Oracle Cloud Certificate properties
+
+
+
+
+
+
+
+
+
+Property
+Type
+Required
+Default value
+Description
+
+
+
+
+oci.certificates.enabled
+boolean
+false
+false
+Enable/Disable OCI Certificate feature
+
+
+oci.certificates.certificate-id
+java.lang.String
+true
+/
+the Ocid of the certificate
+
+
+oci.certificates.version-number
+long
+false
+/
+Version number of the certificate
+
+
+oci.certificates.certificate-version-name
+java.lang.String
+false
+/
+Version name of the certificate
+
+
+oci.certificates.refresh.frequency
+java.time.Duration
+false
+24h
+Refresh frequency for SSL Certificate
+
+
+oci.certificates.refresh.delay
+java.time.Duration
+false
+24h
+Initial refresh delay for refreshing SSL Certificate
+
+
+oci.certificates.refresh.retry.attempts
+int
+false
+3
+How many attempts to retry if refresh certificate process fails
+
+
+oci.certificates.refresh.retry.delay
+java.time.Duration
+false
+3
+How much to delay attempts in between retry if refresh certificate process fails
+
+
+
+
+
18 Guides
+
+
+
+ Improve this doc
+
+
+
+
+
+
See the following list of guides to learn more about working with Oracle Cloud in the Micronaut Framework:
+
+
+
+
19 Repository
+
+
+
+ Improve this doc
+
+
+
+
+
+
You can find the source code of this project in this repository:
+
+
+
+
+
+
+
+
+
diff --git a/3.9.1/img/api-gateway-menu.png b/3.9.1/img/api-gateway-menu.png
new file mode 100644
index 000000000..702c10050
Binary files /dev/null and b/3.9.1/img/api-gateway-menu.png differ
diff --git a/3.9.1/img/create-deployment-button.png b/3.9.1/img/create-deployment-button.png
new file mode 100644
index 000000000..04a13756f
Binary files /dev/null and b/3.9.1/img/create-deployment-button.png differ
diff --git a/3.9.1/img/create-gateway.png b/3.9.1/img/create-gateway.png
new file mode 100644
index 000000000..462a61be5
Binary files /dev/null and b/3.9.1/img/create-gateway.png differ
diff --git a/3.9.1/img/default/bullet.gif b/3.9.1/img/default/bullet.gif
new file mode 100644
index 000000000..4ec6a9ca0
Binary files /dev/null and b/3.9.1/img/default/bullet.gif differ
diff --git a/3.9.1/img/default/linear-gradient-green.png b/3.9.1/img/default/linear-gradient-green.png
new file mode 100644
index 000000000..a746c854a
Binary files /dev/null and b/3.9.1/img/default/linear-gradient-green.png differ
diff --git a/3.9.1/img/default/linear-gradient.png b/3.9.1/img/default/linear-gradient.png
new file mode 100644
index 000000000..ce9cab848
Binary files /dev/null and b/3.9.1/img/default/linear-gradient.png differ
diff --git a/3.9.1/img/default/separator-horizontal.gif b/3.9.1/img/default/separator-horizontal.gif
new file mode 100644
index 000000000..dc161f90b
Binary files /dev/null and b/3.9.1/img/default/separator-horizontal.gif differ
diff --git a/3.9.1/img/default/separator-menu.png b/3.9.1/img/default/separator-menu.png
new file mode 100644
index 000000000..669a68f61
Binary files /dev/null and b/3.9.1/img/default/separator-menu.png differ
diff --git a/3.9.1/img/default/separator-vertical.gif b/3.9.1/img/default/separator-vertical.gif
new file mode 100644
index 000000000..6a7d0d5e3
Binary files /dev/null and b/3.9.1/img/default/separator-vertical.gif differ
diff --git a/3.9.1/img/deployment-creating.png b/3.9.1/img/deployment-creating.png
new file mode 100644
index 000000000..68b9196b7
Binary files /dev/null and b/3.9.1/img/deployment-creating.png differ
diff --git a/3.9.1/img/deployment-details-basic.png b/3.9.1/img/deployment-details-basic.png
new file mode 100644
index 000000000..27123314e
Binary files /dev/null and b/3.9.1/img/deployment-details-basic.png differ
diff --git a/3.9.1/img/deployment-details.png b/3.9.1/img/deployment-details.png
new file mode 100644
index 000000000..164b5e01b
Binary files /dev/null and b/3.9.1/img/deployment-details.png differ
diff --git a/3.9.1/img/deployment-invocation.png b/3.9.1/img/deployment-invocation.png
new file mode 100644
index 000000000..85283a11c
Binary files /dev/null and b/3.9.1/img/deployment-invocation.png differ
diff --git a/3.9.1/img/deployment-review.png b/3.9.1/img/deployment-review.png
new file mode 100644
index 000000000..4b79c4d54
Binary files /dev/null and b/3.9.1/img/deployment-review.png differ
diff --git a/3.9.1/img/deployment-routes.png b/3.9.1/img/deployment-routes.png
new file mode 100644
index 000000000..aa11c8638
Binary files /dev/null and b/3.9.1/img/deployment-routes.png differ
diff --git a/3.9.1/img/gateway-details.png b/3.9.1/img/gateway-details.png
new file mode 100644
index 000000000..39eec1eb2
Binary files /dev/null and b/3.9.1/img/gateway-details.png differ
diff --git a/3.9.1/img/micronaut-logo-white.svg b/3.9.1/img/micronaut-logo-white.svg
new file mode 100644
index 000000000..19290c8ae
--- /dev/null
+++ b/3.9.1/img/micronaut-logo-white.svg
@@ -0,0 +1,74 @@
+
+
+
+ micronaut-logo-white
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/3.9.1/img/note.gif b/3.9.1/img/note.gif
new file mode 100644
index 000000000..1c9883b8f
Binary files /dev/null and b/3.9.1/img/note.gif differ
diff --git a/3.9.1/img/oci_certificate_ocid.png b/3.9.1/img/oci_certificate_ocid.png
new file mode 100644
index 000000000..2bb6cca5f
Binary files /dev/null and b/3.9.1/img/oci_certificate_ocid.png differ
diff --git a/3.9.1/img/oci_console_apm_admin.png b/3.9.1/img/oci_console_apm_admin.png
new file mode 100644
index 000000000..5c5b89008
Binary files /dev/null and b/3.9.1/img/oci_console_apm_admin.png differ
diff --git a/3.9.1/img/oci_console_apm_domain_details.png b/3.9.1/img/oci_console_apm_domain_details.png
new file mode 100644
index 000000000..5aa3ceb99
Binary files /dev/null and b/3.9.1/img/oci_console_apm_domain_details.png differ
diff --git a/3.9.1/img/oci_console_apm_domains.png b/3.9.1/img/oci_console_apm_domains.png
new file mode 100644
index 000000000..92a0aa8c6
Binary files /dev/null and b/3.9.1/img/oci_console_apm_domains.png differ
diff --git a/3.9.1/img/oci_console_create_apm_domain.png b/3.9.1/img/oci_console_create_apm_domain.png
new file mode 100644
index 000000000..18f464232
Binary files /dev/null and b/3.9.1/img/oci_console_create_apm_domain.png differ
diff --git a/3.9.1/img/oci_console_create_apm_domain_details.png b/3.9.1/img/oci_console_create_apm_domain_details.png
new file mode 100644
index 000000000..6ee546ec0
Binary files /dev/null and b/3.9.1/img/oci_console_create_apm_domain_details.png differ
diff --git a/3.9.1/img/oci_console_span_details.png b/3.9.1/img/oci_console_span_details.png
new file mode 100644
index 000000000..7c4f8c273
Binary files /dev/null and b/3.9.1/img/oci_console_span_details.png differ
diff --git a/3.9.1/img/oci_console_trace_explorer.png b/3.9.1/img/oci_console_trace_explorer.png
new file mode 100644
index 000000000..79b2e7e2f
Binary files /dev/null and b/3.9.1/img/oci_console_trace_explorer.png differ
diff --git a/3.9.1/img/oci_console_trace_explorer_choose_domain.png b/3.9.1/img/oci_console_trace_explorer_choose_domain.png
new file mode 100644
index 000000000..53c0a44e1
Binary files /dev/null and b/3.9.1/img/oci_console_trace_explorer_choose_domain.png differ
diff --git a/3.9.1/img/oci_console_trace_explorer_choose_query.png b/3.9.1/img/oci_console_trace_explorer_choose_query.png
new file mode 100644
index 000000000..774d8deec
Binary files /dev/null and b/3.9.1/img/oci_console_trace_explorer_choose_query.png differ
diff --git a/3.9.1/img/oci_console_trace_explorer_trace_details.png b/3.9.1/img/oci_console_trace_explorer_trace_details.png
new file mode 100644
index 000000000..74dcf70b1
Binary files /dev/null and b/3.9.1/img/oci_console_trace_explorer_trace_details.png differ
diff --git a/3.9.1/img/oci_console_trace_explorer_traces.png b/3.9.1/img/oci_console_trace_explorer_traces.png
new file mode 100644
index 000000000..2e52fe258
Binary files /dev/null and b/3.9.1/img/oci_console_trace_explorer_traces.png differ
diff --git a/3.9.1/img/oci_logging_create_log_group.png b/3.9.1/img/oci_logging_create_log_group.png
new file mode 100644
index 000000000..73de88a59
Binary files /dev/null and b/3.9.1/img/oci_logging_create_log_group.png differ
diff --git a/3.9.1/img/oci_logging_custom_log.png b/3.9.1/img/oci_logging_custom_log.png
new file mode 100644
index 000000000..143ecd7a1
Binary files /dev/null and b/3.9.1/img/oci_logging_custom_log.png differ
diff --git a/3.9.1/img/oci_logging_custom_log_create_step_1.png b/3.9.1/img/oci_logging_custom_log_create_step_1.png
new file mode 100644
index 000000000..4ed2672d1
Binary files /dev/null and b/3.9.1/img/oci_logging_custom_log_create_step_1.png differ
diff --git a/3.9.1/img/oci_logging_custom_log_create_step_2.png b/3.9.1/img/oci_logging_custom_log_create_step_2.png
new file mode 100644
index 000000000..31aa682c4
Binary files /dev/null and b/3.9.1/img/oci_logging_custom_log_create_step_2.png differ
diff --git a/3.9.1/img/oci_logging_explore_log.png b/3.9.1/img/oci_logging_explore_log.png
new file mode 100644
index 000000000..1f589fd40
Binary files /dev/null and b/3.9.1/img/oci_logging_explore_log.png differ
diff --git a/3.9.1/img/oci_logging_ocid.png b/3.9.1/img/oci_logging_ocid.png
new file mode 100644
index 000000000..900dd5d83
Binary files /dev/null and b/3.9.1/img/oci_logging_ocid.png differ
diff --git a/3.9.1/img/warning.gif b/3.9.1/img/warning.gif
new file mode 100644
index 000000000..c6acdec60
Binary files /dev/null and b/3.9.1/img/warning.gif differ
diff --git a/3.9.1/index.html b/3.9.1/index.html
new file mode 100644
index 000000000..b0dd78f55
--- /dev/null
+++ b/3.9.1/index.html
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
OracleCloudMetadataConfiguration.getUrl()
instead.