jsphinx.addnodesdocument)}( rawsourcechildren](docutils.nodescomment)}(hfaropt documentation master file, created by sphinx-quickstart on Tue Nov 24 23:19:35 2020. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.h]h Textfaropt documentation master file, created by sphinx-quickstart on Tue Nov 24 23:19:35 2020. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive.}(hhparenth uba attributes}(ids]classes]names]dupnames]backrefs] xml:spacepreserveutagnameh hhhhsource;/home/ec2-user/environment/faropt/sdk/docs/source/index.rstlineKubh section)}(hhh](h title)}(h"Welcome to faropt's documentation!h]h$Welcome to faropt’s documentation!}(hh2hh0hhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hh+hhh&h'h(Kubh compound)}(hhh]htoctree)}(hhh]h}(h]h]h]h]h!]hindexentries] includefiles]maxdepthKcaption Contents:globhidden includehiddennumberedK titlesonly rawentries] rawcaptionhUuh%hCh&h'h(K hh@ubah}(h]h]toctree-wrapperah]h]h!]uh%h>hh+hhh&h'h(Nubeh}(h]!welcome-to-faropt-s-documentationah]h]"welcome to faropt's documentation!ah]h!]uh%h)hhhhh&h'h(Kubh*)}(hhh](h/)}(hIndices and tablesh]hIndices and tables}(hhrhhphhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hhmhhh&h'h(Kubh bullet_list)}(hhh](h list_item)}(h:ref:`genindex`h]h paragraph)}(hhh]h pending_xref)}(hhh]h inline)}(hgenindexh]hgenindex}(hhhhubah}(h]h](xrefstdstd-refeh]h]h!]uh%hhhubah}(h]h]h]h]h!]refdochN refdomainhreftyperef refexplicitrefwarn reftargetgenindexuh%hh&h'h(Khhubah}(h]h]h]h]h!]uh%hh&h'h(Khhubah}(h]h]h]h]h!]uh%hhhhhh&h'h(Nubh)}(h:ref:`modindex`h]h)}(hhh]h)}(hhh]h)}(hmodindexh]hmodindex}(hhhhubah}(h]h](hstdstd-refeh]h]h!]uh%hhhubah}(h]h]h]h]h!]refdochN refdomainhՌreftyperef refexplicitrefwarnhmodindexuh%hh&h'h(Khhubah}(h]h]h]h]h!]uh%hh&h'h(Khhubah}(h]h]h]h]h!]uh%hhhhhh&h'h(Nubh)}(h:ref:`search` h]h)}(h :ref:`search`h]h)}(hhh]h)}(hsearchh]hsearch}(hhhhubah}(h]h](hstdstd-refeh]h]h!]uh%hhhubah}(h]h]h]h]h!]refdochN refdomainj reftyperef refexplicitrefwarnhsearchuh%hh&h'h(Khhubah}(h]h]h]h]h!]uh%hh&h'h(Khhubah}(h]h]h]h]h!]uh%hhhhhh&h'h(Nubeh}(h]h]h]h]h!]bullet*uh%h~h&h'h(Khhmhhubeh}(h]indices-and-tablesah]h]indices and tablesah]h!]uh%h)hhhhh&h'h(Kubh*)}(hhh](h/)}(h Using the SDKh]h Using the SDK}(hj<hj:hhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hj7hhh&h'h(Kubh*)}(hhh](h/)}(hFor a basic Walkthrough, do:h]hFor a basic Walkthrough, do:}(hjMhjKhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjHhhh&h'h(Kubh literal_block)}(hfrom faropt import FarOpt // init a FarOpt object fo = FarOpt() // point to your source code, with a main.py and any other files and/or subfolders fo.configure('../project/src/') // submit the job fo.submit() // print logs() fo.logs()h]hfrom faropt import FarOpt // init a FarOpt object fo = FarOpt() // point to your source code, with a main.py and any other files and/or subfolders fo.configure('../project/src/') // submit the job fo.submit() // print logs() fo.logs()}(hhhj[ubah}(h]h]h]h]h!]h#h$forcelanguagepythonhighlight_args}uh%jYh&h'h(K hjHhhubeh}(h]for-a-basic-walkthrough-doah]h]for a basic walkthrough, do:ah]h!]uh%h)hj7hhh&h'h(Kubh*)}(hhh](h/)}(hSaving and running a recipeh]hSaving and running a recipe}(hj{hjyhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjvhhh&h'h(K2ubjZ)}(h// add a recipe after submitting a job fo.add_recipe(recipe_name='routing-v1', maintainer='Dexter') // get unique recipe ID r_id = fo.get_recipe_id_from_description(description='routing-v1') // run this recipe fo.run_recipe(r_id)h]h// add a recipe after submitting a job fo.add_recipe(recipe_name='routing-v1', maintainer='Dexter') // get unique recipe ID r_id = fo.get_recipe_id_from_description(description='routing-v1') // run this recipe fo.run_recipe(r_id)}(hhhjubah}(h]h]h]h]h!]h#h$jijjpythonjl}uh%jYh&h'h(K4hjvhhubeh}(h]saving-and-running-a-recipeah]h]saving and running a recipeah]h!]uh%h)hj7hhh&h'h(K2ubh*)}(hhh](h/)}(h$For black box optimization problems:h]h$For black box optimization problems:}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjhhh&h'h(KAubjZ)}(hXfrom faropt.templates.blackbox import AsyncOpt // init an AsyncOpt object ao = AsyncOpt() // list existing models ao.list_models() // create a new model ao.create_model(bounds = [(-1.0,1.0), (-5.0,5.0), (-3,3)])], model_tag = 'engine1') // ask optimizer for a new point to evaluate ao.ask_model(modelname = ...) // tell the optimizer results of a evaluation ao.tell_model(xval = [0,0,1], fval = 0.5, modelname= ...s)h]hXfrom faropt.templates.blackbox import AsyncOpt // init an AsyncOpt object ao = AsyncOpt() // list existing models ao.list_models() // create a new model ao.create_model(bounds = [(-1.0,1.0), (-5.0,5.0), (-3,3)])], model_tag = 'engine1') // ask optimizer for a new point to evaluate ao.ask_model(modelname = ...) // tell the optimizer results of a evaluation ao.tell_model(xval = [0,0,1], fval = 0.5, modelname= ...s)}(hhhjubah}(h]h]h]h]h!]h#h$jijjpythonjl}uh%jYh&h'h(KBhjhhubeh}(h]#for-black-box-optimization-problemsah]h]$for black box optimization problems:ah]h!]uh%h)hj7hhh&h'h(KAubh*)}(hhh](h/)}(h Example codeh]h Example code}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjhhh&h'h(KXubh)}(h[See example code here - https://github.com/aws-samples/faropt/blob/master/tests/src/main.pyh](hSee example code here - }(hSee example code here - hjhhh&Nh(Nubh reference)}(hChttps://github.com/aws-samples/faropt/blob/master/tests/src/main.pyh]hChttps://github.com/aws-samples/faropt/blob/master/tests/src/main.py}(hjhjubah}(h]h]h]h]h!]refurijuh%jhjubeh}(h]h]h]h]h!]uh%hh&h'h(KZhjhhubjZ)}(hXn"""Capacited Vehicles Routing Problem (CVRP).""" # [START import] from __future__ import print_function from ortools.constraint_solver import routing_enums_pb2 from ortools.constraint_solver import pywrapcp from utils import * # [END import] # [START data_model] def create_data_model(): """Stores the data for the problem.""" data = {} data['distance_matrix'] = [ [ 0, 548, 776, 696, 582, 274, 502, 194, 308, 194, 536, 502, 388, 354, 468, 776, 662 ], //. //. //. //. //. # Solve the problem. # [START solve] solution = routing.SolveWithParameters(search_parameters) # [END solve] # Print solution on console. # [START print_solution] print('printing solutions') if solution: print_solution(data, manager, routing, solution) # [END print_solution] main()h]hXn"""Capacited Vehicles Routing Problem (CVRP).""" # [START import] from __future__ import print_function from ortools.constraint_solver import routing_enums_pb2 from ortools.constraint_solver import pywrapcp from utils import * # [END import] # [START data_model] def create_data_model(): """Stores the data for the problem.""" data = {} data['distance_matrix'] = [ [ 0, 548, 776, 696, 582, 274, 502, 194, 308, 194, 536, 502, 388, 354, 468, 776, 662 ], //. //. //. //. //. # Solve the problem. # [START solve] solution = routing.SolveWithParameters(search_parameters) # [END solve] # Print solution on console. # [START print_solution] print('printing solutions') if solution: print_solution(data, manager, routing, solution) # [END print_solution] main()}(hhhjubah}(h]h]h]h]h!]h#h$jijjpython3jl}uh%jYh&h'h(K]hjhhubeh}(h] example-codeah]h] example codeah]h!]uh%h)hj7hhh&h'h(KXubh*)}(hhh](h/)}(hLogs from the back end ...h]hLogs from the back end …}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjhhh&h'h(KubjZ)}(hX1598041071123 | Starting FarOpt backend 1598041071123 | ███████╗ █████╗ ██████╗ ██████╗ ██████╗ ████████╗ 1598041071123 | ██╔════╝██╔══██╗██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝ 1598041071123 | █████╗ ███████║██████╔╝██║ ██║██████╔╝ ██║ 1598041071123 | ██╔══╝ ██╔══██║██╔══██╗██║ ██║██╔═══╝ ██║ 1598041071123 | ██║ ██║ ██║██║ ██║╚██████╔╝██║ ██║ 1598041071123 | ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ . . . . .h]hX1598041071123 | Starting FarOpt backend 1598041071123 | ███████╗ █████╗ ██████╗ ██████╗ ██████╗ ████████╗ 1598041071123 | ██╔════╝██╔══██╗██╔══██╗██╔═══██╗██╔══██╗╚══██╔══╝ 1598041071123 | █████╗ ███████║██████╔╝██║ ██║██████╔╝ ██║ 1598041071123 | ██╔══╝ ██╔══██║██╔══██╗██║ ██║██╔═══╝ ██║ 1598041071123 | ██║ ██║ ██║██║ ██║╚██████╔╝██║ ██║ 1598041071123 | ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ . . . . .}(hhhj"ubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubeh}(h]logs-from-the-back-endah]h]logs from the back end ...ah]h!]uh%h)hj7hhh&h'h(Kubeh}(h] using-the-sdkah]h] using the sdkah]h!]uh%h)hhhhh&h'h(Kubh*)}(hhh](h/)}(hBack-end architectureh]hBack-end architecture}(hjGhjEhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjBhhh&h'h(Kubh*)}(hhh](h/)}(h/Fargate based serverless Numerical Optimizationh]h/Fargate based serverless Numerical Optimization}(hjXhjVhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjShhh&h'h(Kubj)}(hhh]h image)}(h;.. image:: ./FarOpt.png :target: ./FarOpt.png :alt: h]h}(h]h]h]h]h!]althuri ./FarOpt.png candidates}j.jusuh%jghjdh&h'h(Nubah}(h]h]h]h]h!]refuri ./FarOpt.pnguh%jhjShhh&h'h(Nubh)}(hXYThis architecture is a bare bones template of how you can run optimization models in a serverless fashion on Fargate. The Open source SDK can be used to submit optimization tasks and receive logs. Fargate will launch the container, run your code, push logs to cloudwatch and exit - you only pay for the seconds that this *optimzation task* runs.h](hXAThis architecture is a bare bones template of how you can run optimization models in a serverless fashion on Fargate. The Open source SDK can be used to submit optimization tasks and receive logs. Fargate will launch the container, run your code, push logs to cloudwatch and exit - you only pay for the seconds that this }(hXAThis architecture is a bare bones template of how you can run optimization models in a serverless fashion on Fargate. The Open source SDK can be used to submit optimization tasks and receive logs. Fargate will launch the container, run your code, push logs to cloudwatch and exit - you only pay for the seconds that this hjhhh&Nh(Nubh emphasis)}(h*optimzation task*h]hoptimzation task}(hoptimzation taskhjubah}(h]h]h]h]h!]uh%jhjubh runs.}(h runs.hjhhh&Nh(Nubeh}(h]h]h]h]h!]uh%hh&h'h(KhjShhubh)}(h'Currently supported frameworks inlcude:h]h'Currently supported frameworks inlcude:}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjShhubh enumerated_list)}(hhh](h)}(hPuLPh]h)}(hjh]hPuLP}(hjhjubah}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhjhhh&h'h(Nubh)}(hPyomoh]h)}(hjh]hPyomo}(hjhjubah}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhjhhh&h'h(Nubh)}(hOR Toolsh]h)}(hjh]hOR Tools}(hjhjubah}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhjhhh&h'h(Nubh)}(hJuMP (Julia) h]h)}(h JuMP (Julia)h]h JuMP (Julia)}(hjhjubah}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhjhhh&h'h(Nubeh}(h]h]h]h]h!]enumtypearabicprefixhsuffix.uh%jhjShhh&h'h(Kubeh}(h]/fargate-based-serverless-numerical-optimizationah]h]/fargate based serverless numerical optimizationah]h!]uh%h)hjBhhh&h'h(Kubeh}(h]back-end-architectureah]h]back-end architectureah]h!]uh%h)hhhhh&h'h(Kubh*)}(hhh](h/)}(hWhat's coming up?h]hWhat’s coming up?}(hj5hj3hhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hj0hhh&h'h(Kubj)}(hhh](h)}(hScheduling optimization jobsh]h)}(hjFh]hScheduling optimization jobs}(hjFhjHubah}(h]h]h]h]h!]uh%hh&h'h(KhjDubah}(h]h]h]h]h!]uh%hhjAhhh&h'h(Nubh)}(h!Demand forecasting using Forecasth]h)}(hj]h]h!Demand forecasting using Forecast}(hj]hj_ubah}(h]h]h]h]h!]uh%hh&h'h(Khj[ubah}(h]h]h]h]h!]uh%hhjAhhh&h'h(Nubh)}(h*Quantum Approximate Optimization Algorithmh]h)}(hjth]h*Quantum Approximate Optimization Algorithm}(hjthjvubah}(h]h]h]h]h!]uh%hh&h'h(Khjrubah}(h]h]h]h]h!]uh%hhjAhhh&h'h(Nubh)}(h0SageMaker RL solvers for certain problem types h]h)}(h.SageMaker RL solvers for certain problem typesh]h.SageMaker RL solvers for certain problem types}(hjhjubah}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhjAhhh&h'h(Nubeh}(h]h]h]h]h!]jjjhjjuh%jhj0hhh&h'h(Kubeh}(h]what-s-coming-upah]h]what's coming up?ah]h!]uh%h)hhhhh&h'h(Kubh*)}(hhh](h/)}(hHow to use this CDK projecth]hHow to use this CDK project}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjhhh&h'h(Kubh)}(hYou should explore the contents of this project. It demonstrates a CDK app with an instance of a stack (\ ``faropt_stack``\ ) which contains an Amazon SQS queue that is subscribed to an Amazon SNS topic.h](hhYou should explore the contents of this project. It demonstrates a CDK app with an instance of a stack (}(hjYou should explore the contents of this project. It demonstrates a CDK app with an instance of a stack (\ hjhhh&Nh(Nubh literal)}(h``faropt_stack``h]h faropt_stack}(h faropt_stackhjubah}(h]h]h]h]h!]uh%jhjubhO) which contains an Amazon SQS queue that is subscribed to an Amazon SNS topic.}(hQ\ ) which contains an Amazon SQS queue that is subscribed to an Amazon SNS topic.hjhhh&Nh(Nubeh}(h]h]h]h]h!]uh%hh&h'h(Khjhhubh)}(hDThe ``cdk.json`` file tells the CDK Toolkit how to execute your app.h](hThe }(hThe hjhhh&Nh(Nubj)}(h ``cdk.json``h]hcdk.json}(hcdk.jsonhjubah}(h]h]h]h]h!]uh%jhjubh4 file tells the CDK Toolkit how to execute your app.}(h4 file tells the CDK Toolkit how to execute your app.hjhhh&Nh(Nubeh}(h]h]h]h]h!]uh%hh&h'h(Khjhhubh)}(hXThis project is set up like a standard Python project. The initialization process also creates a virtualenv within this project, stored under the .env directory. To create the virtualenv it assumes that there is a ``python3`` executable in your path with access to the ``venv`` package. If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv manually once the init process completes.h](hThis project is set up like a standard Python project. The initialization process also creates a virtualenv within this project, stored under the .env directory. To create the virtualenv it assumes that there is a }(hThis project is set up like a standard Python project. The initialization process also creates a virtualenv within this project, stored under the .env directory. To create the virtualenv it assumes that there is a hjhhh&Nh(Nubj)}(h ``python3``h]hpython3}(hpython3hjubah}(h]h]h]h]h!]uh%jhjubh, executable in your path with access to the }(h, executable in your path with access to the hjhhh&Nh(Nubj)}(h``venv``h]hvenv}(hvenvhj%ubah}(h]h]h]h]h!]uh%jhjubh package. If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv manually once the init process completes.}(h package. If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv manually once the init process completes.hjhhh&Nh(Nubeh}(h]h]h]h]h!]uh%hh&h'h(Khjhhubh)}(h3To manually create a virtualenv on MacOS and Linux:h]h3To manually create a virtualenv on MacOS and Linux:}(hjAhj?hhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjhhubjZ)}(h$ python3 -m venv .envh]h$ python3 -m venv .env}(hhhjMubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubh)}(h{After the init process completes and the virtualenv is created, you can use the following step to activate your virtualenv.h]h{After the init process completes and the virtualenv is created, you can use the following step to activate your virtualenv.}(hj_hj]hhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjhhubjZ)}(h$ source .env/bin/activateh]h$ source .env/bin/activate}(hhhjkubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubh)}(hKIf you are a Windows platform, you would activate the virtualenv like this:h]hKIf you are a Windows platform, you would activate the virtualenv like this:}(hj}hj{hhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjhhubjZ)}(h% .env\Scripts\activate.bath]h% .env\Scripts\activate.bat}(hhhjubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubh)}(hLOnce the virtualenv is activated, you can install the required dependencies.h]hLOnce the virtualenv is activated, you can install the required dependencies.}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjhhubjZ)}(h!$ pip install -r requirements.txth]h!$ pip install -r requirements.txt}(hhhjubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubh)}(hOAt this point you can now synthesize the CloudFormation template for this code.h]hOAt this point you can now synthesize the CloudFormation template for this code.}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjhhubjZ)}(h $ cdk synthh]h $ cdk synth}(hhhjubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubh)}(hYou can now begin exploring the source code, contained in the hello directory. There is also a very trivial test included that can be run like this:h]hYou can now begin exploring the source code, contained in the hello directory. There is also a very trivial test included that can be run like this:}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(KhjhhubjZ)}(h$ pytesth]h$ pytest}(hhhjubah}(h]h]h]h]h!]h#h$jijjhtmljl}uh%jYh&h'h(Khjhhubh)}(hTo add additional dependencies, for example other CDK libraries, just add to your requirements.txt file and rerun the ``pip install -r requirements.txt`` command.h](hvTo add additional dependencies, for example other CDK libraries, just add to your requirements.txt file and rerun the }(hvTo add additional dependencies, for example other CDK libraries, just add to your requirements.txt file and rerun the hjhhh&Nh(Nubj)}(h#``pip install -r requirements.txt``h]hpip install -r requirements.txt}(hpip install -r requirements.txthjubah}(h]h]h]h]h!]uh%jhjubh command.}(h command.hjhhh&Nh(Nubeh}(h]h]h]h]h!]uh%hh&h'h(Khjhhubh*)}(hhh](h/)}(h&Useful commands for the back end stackh]h&Useful commands for the back end stack}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%h.hjhhh&h'h(Kubh)}(hhh](h)}(h.``cdk ls`` list all stacks in the apph]h)}(hj,h](j)}(h ``cdk ls``h]hcdk ls}(hcdk lshj1ubah}(h]h]h]h]h!]uh%jhj.ubh$ list all stacks in the app}(h$ list all stacks in the apphj.ubeh}(h]h]h]h]h!]uh%hh&h'h(Khj*ubah}(h]h]h]h]h!]uh%hhj'hhh&h'h(Nubh)}(hA``cdk synth`` emits the synthesized CloudFormation templateh]h)}(hjSh](j)}(h ``cdk synth``h]h cdk synth}(h cdk synthhjXubah}(h]h]h]h]h!]uh%jhjUubh4 emits the synthesized CloudFormation template}(h4 emits the synthesized CloudFormation templatehjUubeh}(h]h]h]h]h!]uh%hh&h'h(KhjQubah}(h]h]h]h]h!]uh%hhj'hhh&h'h(Nubh)}(hH``cdk deploy`` deploy this stack to your default AWS account/regionh]h)}(hjzh](j)}(h``cdk deploy``h]h cdk deploy}(h cdk deployhjubah}(h]h]h]h]h!]uh%jhj|ubh: deploy this stack to your default AWS account/region}(h: deploy this stack to your default AWS account/regionhj|ubeh}(h]h]h]h]h!]uh%hh&h'h(Khjxubah}(h]h]h]h]h!]uh%hhj'hhh&h'h(Nubh)}(h=``cdk diff`` compare deployed stack with current stateh]h)}(hjh](j)}(h ``cdk diff``h]hcdk diff}(hcdk diffhjubah}(h]h]h]h]h!]uh%jhjubh1 compare deployed stack with current state}(h1 compare deployed stack with current statehjubeh}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhj'hhh&h'h(Nubh)}(h+``cdk docs`` open CDK documentation h]h)}(h*``cdk docs`` open CDK documentationh](j)}(h ``cdk docs``h]hcdk docs}(hcdk docshjubah}(h]h]h]h]h!]uh%jhjubh open CDK documentation}(h open CDK documentationhjubeh}(h]h]h]h]h!]uh%hh&h'h(Khjubah}(h]h]h]h]h!]uh%hhj'hhh&h'h(Nubeh}(h]h]h]h]h!]j-j.uh%h~h&h'h(Khjhhubh)}(hEnjoy!h]hEnjoy!}(hjhjhhh&Nh(Nubah}(h]h]h]h]h!]uh%hh&h'h(Mhjhhubeh}(h]&useful-commands-for-the-back-end-stackah]h]&useful commands for the back end stackah]h!]uh%h)hjhhh&h'h(Kubeh}(h]how-to-use-this-cdk-projectah]h]how to use this cdk projectah]h!]uh%h)hhhhh&h'h(Kubeh}(h]h]h]h]h!]sourceh'uh%hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(h.N generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj5error_encodingUTF-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh' _destinationN _config_files]pep_referencesN pep_base_url https://www.python.org/dev/peps/pep_file_url_templatepep-%04drfc_referencesN rfc_base_urlhttps://tools.ietf.org/html/ tab_widthKtrim_footnote_reference_spacefile_insertion_enabled raw_enabledKsyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xformembed_stylesheetcloak_email_addressesenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(hjhgj4j1j?j<jsjpjjjjjj j7j4j-j*j%j"jjjj jju nametypes}(hjNj4Nj?NjsNjNjNjNj7Nj-Nj%NjNjNjNuh}(hgh+j1hmj<j7jpjHjjvjjj jj4jj*jBj"jSjj0j jjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startKid_startKparse_messages]transform_messages] transformerN decorationNhhub.