# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

from oslo_config import cfg

from keystone.conf import utils


driver = cfg.StrOpt(
    'driver',
    default='sql',
    help=utils.fmt("""
Entrypoint for the OAuth backend driver in the keystone.oauth1 namespace.
"""))

request_token_duration = cfg.IntOpt(
    'request_token_duration',
    default=28800,
    help=utils.fmt("""
Duration (in seconds) for the OAuth Request Token.
"""))

access_token_duration = cfg.IntOpt(
    'access_token_duration',
    default=86400,
    help=utils.fmt("""
Duration (in seconds) for the OAuth Access Token.
"""))


GROUP_NAME = __name__.split('.')[-1]
ALL_OPTS = [
    driver,
    request_token_duration,
    access_token_duration,
]


def register_opts(conf):
    conf.register_opts(ALL_OPTS, group=GROUP_NAME)


def list_opts():
    return {GROUP_NAME: ALL_OPTS}

@@ -684,16 +684,17 @@
 %22%22%0AEntry
+ 
 point fo
@@ -727,16 +727,17 @@
  in the 
+%60
 keystone
@@ -743,16 +743,17 @@
 e.oauth1
+%60
  namespa
@@ -756,16 +756,112 @@
 espace.%0A
+Typically, there is no reason to set this option unless you are providing a%0Acustom entry point.%0A
 %22%22%22))%0A%0Ar
@@ -918,32 +918,43 @@
 oken_duration',%0A
+    min=0,%0A
     default=2880
@@ -979,36 +979,33 @@
 fmt(%22%22%22%0A
-Duration (in
+Number of
  seconds
 ) for th
@@ -988,33 +988,32 @@
 umber of seconds
-)
  for the OAuth R
@@ -1020,24 +1020,197 @@
 equest Token
+ to remain valid after being%0Acreated. This is the amount of time the user has to authorize the token.%0ASetting this option to zero means that request tokens will last forever
 .%0A%22%22%22))%0A%0Aacc
@@ -1267,24 +1267,35 @@
 _duration',%0A
+    min=0,%0A
     default=
@@ -1328,28 +1328,25 @@
 %22%22%22%0A
-Duration (in
+Number of
  seconds
 ) fo
@@ -1341,17 +1341,16 @@
  seconds
-)
  for the
@@ -1368,16 +1368,237 @@
 ss Token
+ to remain valid after being%0Acreated. This is the amount of time the consumer has to interact with the%0Aservice provider (which is typically keystone). Setting this option to zero%0Ameans that access tokens will last forever
 .%0A%22%22%22))%0A

Improve keystone.conf [oauth1] documentation